Framework for Evaluating Software Platforms
Pic by en.unesco.org

Framework for Evaluating Software Platforms

I was trying to create a framework which can be used for evaluating Software Platforms. This actually can very long article but I have tried to just mention key points briefly. Happy to share details on specific point you need more details on. Looking forward your feedback to further solidify the framework.

So, first thing, what is Software Platform? Let's define it formally. I choose to use definition from Forbes Article by Adrian Bridgwater as this simplifies for someone to understand a Software Platform. 

Software Platform: ‘Platform’ allows fast and cost effective development and deployment of a new type of customer facing, front office business application.

So, a Software Platform won't be of any use to end user but it helps build another Software (which in most cases will be used by end users). 

To evaluate a Software Platform one need to understand what are key Architectural Principles for building a Software platform. Given these architectural principles, one need to identify what are the key architectural principles which matter for current requirements and need to evaluate platform against those. Note that not all architectural principles may matter for given requirement. 

What are the Architectural Principles of Software Platform?

Below are the key Architectural Principles, details are outlined further down:


  • Usability: key usability of Software Platform is that it should streamline your product development, make development agile and speed-up overall development
  • Performance: check if performance meets minimum criteria i.e. it's not too slow / frustrating for users to use, and utilizes hardware resources well
  • Security: Confirm that all data in platform is secure (i.e. all sensitive data is encrypted over wire & in database). Provide role bases access control (RBAC) and meets all Audit & regulatory requirements
  • Integration: Check if it integrates with all required data platforms for input / output (i.e. databases, apis, excel exports). Key thing is, it should be able to connect to take data / put data in master
  • Versioning: integrates with version control software or manages versioning
  • Maintainable: Updating and Upgrading should be easy and not time consuming
  • Scalable / Recoverable: Can be scaled up/down based on the workloads. If system goes does, there should steps to recover in quick time
  • Analytics & Monitoring: Provides out of box analytics and also provide option for custom analytics
  • Alerting: ability to send alerts in certain scenarios
  • Automation: ability to automate tasks like releases and running batch job etc
  • Reusability: should support reusability i.e. if team A has created something, Team B should have easy way of easy same piece via Platform
  • Machine Learning: If platform provides certain ML capability, there are lot of other guidelines (may be separate article) but at high level it should be accurate with learning capabilities, explainable, reproducible and should continue to gather data for future use

How to evaluate a Software Platform?

Now we have list of key Architectural principles, next step is identifying which of these Architectural principles matter for current requirement. You should evaluate platform against these selected Architectural Principles. Along with these selected Architectural Principles, other key things to focus on during evaluation are listed below:

  • Competitive platforms: What are other competitive platforms available in market. Have best of these been evaluated against same criteria and compared against? Usually analyst from research firms (Gartner, Forrestor, IDC etc.) publish comparative matrices.
  • CxO strategy: What is current CxO strategy of the firm? Are there any approved platform already for given requirements? Are there any criteria defined by CxO (Budget and other) for evaluating new products?
  • Cost & Licensing: How much budget is available? What type of licensing is available? Are those suitable for budgeting prospective?
  • Professional Support: What kind of professional support is available for Product? Is this enough for your business requirements?
  • Limitation: What are limitations in product or in which scenario product doesn't work? Does these matter for you? 


Thank you for reading through this. Looking forward for your feedback.

Exactly what I was looking for - thanks so much!

Like
Reply

this was very useful!

Like
Reply

Very nicely written Kapil! Kudos !!!

To view or add a comment, sign in

More articles by Kapil Kathuria

Others also viewed

Explore content categories