Product Development Skillset

My understanding of product development phases and areas where I have been able to grow through first-hand experiences.

While every that I have been involved in developing has been different, there have been learnings from each engagement that have helped me in building better systems progressively.

This is a very broad outline of stacks of product development where I possess deep technical hands-on knowledge.

For larger, multi-year product development strategies, I tend to break the product development lifecycle into three broad phases:

1. Early development

This is the part of development where there are high number of unknowns and having existing or past experience with building similar solutions provides a much higher probability of success. This is also the phase where key architectural decisions need to be made to govern the initial version of a product. It is important to have the skills to execute multiple experiments and possess the adaptability required to pivot and fail fast.

While goals vary by the kind of customer that the product targets (e.g. internal enterprise users, professional consumers for a niche domain, or general consumers), most products target an initial subset of users to validate the "MVP" (minimum viable product) or (something I prefer) "ETP" (Earliest Testable Product). Most of the development efforts are focused around gathering early feedback through customer surveys and adapting the outcomes based on the survey results.

2. Scaling and resiliency

Once a product has crossed the threshold of early adoption, the development focus shifts towards supporting an increase in concurrent users, handling larger amounts of data, and providing better performance and uptime of service. During the early stages of increasing customer adoption, it is critical to ensure high quality of user experience. This requires solidifying the technical stack to build observability and insights while creating a system that can scale to handle dynamic usage. The ability to recover quickly, either through roll-backs or patches, is one of the most important requirements at this point.

The early development phase focuses on quickly building a product that solves a problem for an identified set of users, but often requires trade-offs on cost or efficiency. However, as users increase, the development team needs to identify solutions that provide better operational costs to outcome ratios.

3. Run-the-business

In this continuing phase of development, the focus is on building the right processes to continuously optimise the product. This includes product offering features, cloud infrastructure enhancements, data-driven analytics and insights, and interoperability across other product offerings.

Development teams need to build processes to identify errors or degradations as early as possible. Integrating the cloud and client infrastructure with observability tools that drive intelligent alerts when humans need to get involved is key to continued success. Changes to systems that are used for production workflows by many businesses and individuals, need better validations. At this point, the pipeline needs to be robust enough so that dev teams can trust it to find flaws consistently. Incomplete or unreliable test automation means slower change frequencies, which often become a cause for organisations slipping behind their competitors.

While there are many other areas that need deep focus for any product development, the ones I've listed here are invariably always the most important ones for any product development. I have been a part of projects that have gone through all the phases, as well as some where I was involved in only one or two of these phased. There have also been projects that have not made it past the first phase. All of these have been sources of learnings for me, and they have allowed me to bring a more experienced view into future engagements.