Product Development in a Lean and Agile world
The Stages of the Product Development Process
The stages in Product development largely depend on the product development methodology that is employed. However, there are a general set of steps a product manager would take when faced with the task of developing a product. They are:
- Conceive: At this stage, there is an idea for a product or a new feature to add to an existing product. The idea is raw and untested at this stage. Ideas for new products come from anywhere. A founder could have conceived it, who then takes steps to assess the opportunity before creating a team and building out the product. New ideas could also come from a team competing in a hackathon. While ideas for a feature for an existing product could come from anybody in the company. It is up to the product manager the evaluate the viability of the idea.
- Plan: Here the founding team or product team brainstorms on what strategy they will employ in other to execute. Because it is a new product the team would have to validate the idea while making sure they properly understand the product’s value proposition and have established clear-cut business objectives. Here it must also be determined whether or not there is a market for the product. The planning stage for a new feature for an existing product is similar, the product manager must make sure that the new feature is in line with the product’s value proposition, meets business objectives and most importantly it is what users want.
- Develop: The product manager works alongside a cross-functional team to build the product. They might create mocks and wireframes to show what they hope to build at a low level. It is at this stage the product manager should create a Product Requirement Document. The document spells out what is being built, who it is being built for, why it is being built, including features, behavior, and functionality. The Product Requirement Document aligns the team and makes sure everybody moves in the same direction and solves the same problem.
-Iterate: The product team should not just launch immediately after the product's first iteration is complete. Instead, they would test the product with users to gauge their reaction to it, fix any issues that they might have missed while in development and make improvements. Some product teams will not have built out the entire product, just the bare bone functionalities that would help validate the product in the ideas of the users. This combination of essential features is called a Minimum Viable Product.
-Launch: After the product might have gone through several iterations and have has met all the requirements set by the product manager. The product is launched to the public for target customers to use. If the product is a success it enters a steady state where the development team should continue improving on the product. In the case where the product isn’t a success, the development team and other relevant stakeholders would decide whether to pivot, maintain or kill the product.
The product manager is held responsible for the success of a product. Product managers create the product road map and implement strategies. Also communicating the strategy so the cross-functional team is aligned towards the same goal.
During the product development process, the product manager sets out to carry out their responsibility while managing the risk of failure and limited resources. Two techniques will aid a product manager in managing those risks. They are Lean Management and Agile Development.
A bit of History
Before discussing the two techniques, here is a bit of history. In post-war Japan, shortages and cash flow problems forced industries to develop just-in-time manufacturing. Taiichi Ohno and Eiji Toyoda (the nephew of Toyota’s founder and eventually chief executive and chairman of Toyota Motor) took an idea proposed by Neil H. McElroy at Procter & Gamble and ran with it.
Neil H. McElroy wrote a plan that is a description of “Brand Men” and their absolute responsibility for a brand – from tracking sales to managing the product, advertising, and promotions. Uniquely he outlined that the way to do this was through thorough field testing and client interaction. Very similar to the roles and responsibilities of the modern product manager.
The team at Toyota built on that idea and created the Toyota Production System. It focused on continuous improvement while eliminating waste in the production process. It also had two important principles; Kaizen - improving the business continuously while always driving for innovation and evolution and Genchi Genbutsu – to go to the source to find the facts to make correct decisions.
It is clear now how impactful the principles developed by Neil and the Toyota team are on product management as we know it.
Lean Management
Lean management is designed to increase quality and efficiency by eliminating waste of resources like time, money, and effort. It is a business methodology so it is sometimes called lean production or lean manufacturing. The goal with lean management is to produce the best and provide the most valuable services or products for customers at the right price.
Principles of Lean Management
-Defining Value; This principle is focused on the customer’s needs. It is solving customer problems that a product can provide value. Any activity that does not bring value to the product and the customer is considered waste.
- Value Stream Mapping; At this point, you map out your business process or the workflow of your company to determine which processes may be unnecessary. Identifying actions and resources to be eliminated in other maximize efficiency.
-Create Continuous Workflow; Once you have your value stream figured out, the step would be to make sure the workflow is smooth and continuous. This principle is focused on achieving speed and efficiency while making sure all operational tasks are completed without a dip in quality.
-Create a Pull System; Here you create a flow system where just enough materials and resources to create the required products on time and in a continuous fashion. This allows you to optimize resources to make your actual needs for the product.
-Continuous Improvement; The idea is to make sure that your systems are iterative and not static. That periodic checks are made and each principled applied is continuously and consistently improved on. This is achieved by effective and open communication with members of the team so everybody shares ideas and insights.
Benefits of Lean Management
-Applying lean management means your product would always be competitive because the strives for continuous improvement.
-Better use of resources
-Greater customer satisfaction
Agile Development
Agile was developed as a way to better manage software development projects. Emerged in late 1990 to address the need for an alternate to a heavyweight documentation-driven process. The Agile Manifesto was written in February 2001 by 17 leading software developers. They came up with the following statement of value;
-Individuals and interactions over process and tools
-Working software over comprehensive documentation
-Customer collaboration over contract negotiation
-Responding to change over following a plan
It is believed that software development projects which use Agile are 3 times more likely to succeed than projects that use the sequential software development process called the Waterfall Model. Agile development takes an iterative approach to software development whose core values are responsiveness and adaptability.
The Agile Development process is more than its frameworks; it focuses on solutions that evolve through collaboration between self-organizing cross-functional teams using the best method for their particular context.
Key Agile Features
-Focus on people; Agile strongly focuses on people and the best ways to allow those people to do their best work.
-Customer involvement; It is the customer’s needs that determine the scope of the project, what is prioritized, give feedback for improvement of the work. Agile development is customer-centric.
-Cross-Functional Teams; The teams include different areas of expertise working to deliver the product to the customer
-Trust; Building trust by open communication is a key feature in Agile.
-Incremental Work; The software is delivered to the customer in short increments. Doing this is very important to keep the process iterative.
-Time Boxes; A predetermined amount of time that should be exceeded. This is what keeps Agile development fast. The amount of time required to complete a certain task would be determined by the development team.
Truly Agile is a combination of frameworks that can have a lasting positive impact on your development process. It is up to you to research them and determine the right combination that works for your team. To that end Agile is a mindset, its values are well articulated, and adding your context to them will ease your team into the development process.
To conclude combining these two very useful methodologies depends largely on your specific context. When applied to that context you are bound to see positive results. Understanding which parts and bits are useful to you and your team is key.