Product Development

Evaluating a Software Product Development

You have seen my earlier post on Product Development and Chess and now we will see how to evaluate a Software Product.

These are broadly classified into 6 areas,

1. Fundamentals

Product Vision : Is Product Vision articulated clearly?

Breadth and Depth of Features : Are these relevant and important
Focus : Is the Product Focus maintained across different features
Product Roadmap: Is the Product Roadmap Articulated and Clearly understood
Presentation : If the Product is already live, is it Presented to users in
clean and uncluttered way
Ease of Use : Does it support all types of users including novice users
Technology Stack : Is Technology Stack easy and clean

  • Does the framework support easy Integration
  • Does the framework support for Web Services
  • Does the framework support configurability
  • Framework can be easily followed and adhered to by teams like 3 tier  Architecture

Product Enhancements : Does the stack support features that can be built easily
Deployment : How is the deployment environment, is it easy to maintain,
Does deployment platform cover how it can scale and address fail-overs.

2. Implementation

Development Designs: Product Designs are Articulated, Clearly identifying Design Considerations and Limitations.
Development Coding Practices : Follows Coding Practices, Strictly follows Framework, Is Code Base Organized, Development of Features follows guidelines.
Unit Tests : Does the Product Teams follow Test Driven Development and cover basic unit tests to check sanity of changes.
Development Tools : Basic Tools for Versioning is strictly followed
Developer Productivity : Does the team follow advanced tools like Automated Build Management.
Developer Productivity : Many a times the developers needs to understand what and how certain thing happened, so are there clear logging mechanism, are there notifications sent out on failures.
Product Testing : Are the standard testing practices followed with dedicated product testing teams. Do the testing team understand the product and its Domain well?.
Testing Regression Automation : Are there Automation Roadmap laid out for Product, does it cover all regression tests using automated tools.

3. Monitoring

Clear Requirements :
How are the requirements mapped to product roadmap.
How are the product Requirements tracked, is it done using effective tools.
Requirements Prioritization : Are the requirements prioritized from roadmap into different releases, are there any tools used for creating funnel of all critical features to be developed.
Product Release Process : Are there standard processes followed to track releases, how is this managed, does it follow any methodology like AGILE, SCRUM.
Product Release Tracking : How is the Progress Monitored, Tracked and Reported, effective use of tools will help the teams.
Bug Tracking : Are the product teams using tools and clear procedures for tracking bugs.
Deployment Environment : Are there clear deployment process, does the product team have different environments like Development, Staging , Production Environment.
Deployment Monitoring : Are monitoring tools setup, including fail-overs, are there fail-over notifications sent out to team from the deployment platforms.
Deployment Periodic Maintenance : Are there clear procedures on periodic maintenance like Backups, cleanups, storage and utilization.
Product Defects and Issues : Are there processes defined to log, track, monitor production defects using tools.

4. Non Functional Requirements

Reliable and Fault Tolerant : How are the features implemented, does the system function as designed.
Scalable : Is the product scalable, in case many users access system suddenly how does it scale and support.
Modular : Is the code modular , are the common functions re-used.
Maintainable : How easy is it to maintain code, do they code follow best practices like comments in code.
Security Implementation : Are security addressed in designs and implementations, does it handle SQL Injections, Script Injections, URL inserts?.
Security in Deployed Environment : How is security addressed in deployed environments, are there proper folder access setup, have you setup security groups for restricted access to servers, are there proper encryption/tokens followed in areas like Password, Web Services?.
Performance : Is the product rendering basic functions within acceptable limits, are there mechanisms to check if queries used are optimized.
Multi Lingual Support: Is the product envisioned for various Geographies/ Languages, does it support multi lingual functions by design.

5. Implementation Team

Team Goals : Does the Team understand the goals, what they are working on, do they understands what are the priorities with respect to roadmap?.
Team Roles : Are the team roles clearly defined and followed, remember in startup or small teams, every role is important, sometimes in smaller teams multiple roles could be played by same team member.
Team Cohesion : Is Team working as a single unit and works together to achieve the goals, are there discrete teams working on the product which functions in independent mode and not look at overall product goal and roadmap?.
Team Communications : Does the Team follow open communication channels, does it use any tools for communications, do the team share required information across different functions like Sales, Marketing, Customers
Team Progress : Does team understand the progress and have scheduled checkpoints and obtain feedback from the stakeholders and customers periodically?.

“Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.” Albert Einstein

6. Drivers and Dependencies

Non- IT : Are there mechanisms to track non-IT requirements on product like How to Video / Product Guides / Product Training
Compliance : Is the product catching up with Compliance related changes, these could be compliance related to government regulations, How are these managed in prioritizations?.
Standards : Is the Product part of pre-defined standards in the industry, how is the change prioritized within product roadmap, these could be ANSI , Global Industry related specifications.
Customer Relationship: Are there mechanisms to get customer inputs and feedbacks, how are these plugged into the product roadmap and prioritized, what are the tools used to manage these.

In case you are interested to get the product evaluation spreadsheet which I prepared for these purposes, please leave a comment with your ID or message me, I will be happy to share the same.