Product Maturity
Rohit Vaze
Agile Coach | Product Mindset | Humanizing Software Development | Product Engineering
Conceptualizing, developing and releasing a software product into the market is a daunting task. It may seem easy on paper to start with an idea (or a vision) and then see it blossom into a great product which is loved by its target audience as well as the investors. But years of blood and sweat go into creating something that will hit the sweet spot and achieve the goal it set out to accomplish. It is a constant battle between investment and the “value” derived from it. Several versions later the product becomes stable and gathers a loyal customer base. But with an increase in the number of adopters, the challenges of the product engineering team increase exponentially. It is surely not as easy as continuously adding new features to meet rising demand of customers. The product has to reach a stage of “maturity” which creates a strong foundation for the future releases that can withstand the market mood swings and competition onslaught. We are talking here about engineering maturity and not about strategic maturity, which is a totally different concept. So, how do you determine whether a product is mature or not? Following are some constructs that I think determine the engineering maturity of a product.
Managing Complexity
The sign of a mature product is how well it can manage complexity. As you go on adding features to the product based on feedback from your customers, emerging market trends and technological advancements, the user experience takes a hit. There is so much that you can accomplish with the product that the user may feel overwhelmed by it. Hence, it requires a radical shift in the user experience strategy which will make core feature set easy to interact with, and discovering and consuming additional features becomes a less of a chore. The Pareto principle comes into play here which states that 80% of the people will use only 20% of the product features. So, it becomes very important to identify the core feature set to make it readily available and easily usable within the realms of the established UX framework.
Faster Releases
Releasing a product to the market is always a business decision. But the engineering team has to be mature enough to enable the business to make sound release decisions. In a lot of cases, the setup and the capability of the engineering team decides the scope, feasibility and frequency of releases. This model has to be flipped to facilitate development cadence and on-demand release. On-demand release should be treated as a conceptual model here. We are not aiming for weekly or daily releases here but ensuring that our processes, tools, practices and people are aligned to enable frequent releases. Faster releases also required robust automation framework to handle constant regression. This will help the business to make release decisions to cater to customer needs and to keep competition in check.
Ease of maintenance
With so many features being released frequently, there is bound to be a lot of code being written by multiple teams at once. This requires the code to be extremely maintainable and the technical debt to be kept at bay. Supporting features and various versions of the product also requires the code to be standardized and easily maintainable. In the product support lifecycle, the lead and cycle time for fixing issues should not be wildly affected by inconsistencies related to code quality, regression, and release and deployment pipelines
Customizability
No matter how many features are added to the core product, customer will always demand customizations to suit their needs. The decision to allow customizations to the core product is strategic but if you chose to go that route, the product architecture and engineering practices should be robust enough to support it. If customizations are introduced as add-ons, a framework needs to be developed to allow these add-ons to upgrade easily to the newest version of the product without rendering them deprecated.
I am just scraping the surface here and this is not an exhaustive list. I have touched upon these four pillars of a mature product at a very high level. These are not simple things to achieve and require years of strategic planning, measured investment and incredible foresight to keep abreast with emerging market trends. But the benefits derived from these constructs is huge and engineering maturity ensures product longevity and strategic sustenance.
DGM-Agile Coach at John Deere
4 年I think this is great
Data Capability Lead| Change Management
4 年A mature product also demonstrates exceptional Quality. Not only in terms of product perspective but also from the POV of judgemental perspective, value perspective, customer perspective, and value perspective. I glance into these perspectives will provide the organization with a sense of organic maturity and stability and eliminate the differences between perceived maturity Vs actual maturity.