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.

Product Development

Product Development and Chess

Wonder how it is related, basically we can learn a lot of things from the Game of Chess.

  • This was in my high school and we had to play chess which was in the final round. I was thinking it would be a easy game,but my opponent turned out to be very difficult, we played 3 games all drawn in 2 days, I finally won the 4th game, I still remember how I was waiting for one wrong move to draw the game as I was in a very bad shape.

    We learn to stay focused, have patience, endurance and never give up, these characteristics are very important in a startup product development.

    Just like we prepare before every match on who is our opponent, how are we going to play what will be our likely moves, we have to pretty much begin Product Development only after knowing the problem we are solving, understand what we need to do and break down the problem into achievable goals.

    There is a saying “Customer is King” , in chess once you capture the opponent King you win, but we have to navigate through all the opponent pawn(Queen, Rook, Knight..) win over them before we reach the King, much the same way for a product team knowing a customer alone is not enough, but also know the factors that influences the customer, the entire eco-system has to be understood, all the customer stakeholders however big or small matter to the success of the product.

    Getting to the opponent King can be done in multiple ways, but we have to plan how we get there. Similarly when we are solving a particular problem in the product development there will be multiple solutions on our way, we need to evaluate each of these options and identify the right one. This can be the one which is easy or it can be one which can be solved quickly or something designed to never fail. We need to pick the right one and track it through every step.

    Chess has many pawns which make a team, these are of different types, each play different roles in achieving goals and have their own capabilities, also limitations. The same can be said of product teams, each team member have different skill sets, each team player do different roles and all of them work to a common goal

    In a chess game we try to protect each pawn and this is not based on importance or on their strengths (like Queen, Rook, Knight),drawing a parallel in a product team it is imperative to retain all product team members, this should be done irrespective of the role played by team member, the more people we loose the bigger the impact.

    While playing chess we would have got OMG situations, it could happen when we commit mistake and hoping opponent will overlook the same or the opponent has done a mind blowing move. This can put you off gear but never too late, what you do is to re-strategies, in product development also we get into OMG moments it is very important for us to re-prioritize and re-plan during such moments.

    Finally chess or any other game will always give you opportunities to bounce back just wait for such moments and grab them, same hold good for Products also

    I will be putting a few more thoughts on what are the important parameters for a successful product and how we can evaluate product development with scorecard very soon…