In general, we underestimate the scope of the processes that we live with. In a product environment, many think that the development process begins when we decide to start building the product. In reality, it starts when we have ideas and begin to evolve them into potential products. The development process continues long past the first shipment, to the decision to discontinue distributing the product and beyond. These processes need to be supported by internal systems, whether they are electronic or manual.
Not all development processes are equal, or suited for your type of business or product. Many variations abound, and a combination of techniques is prbably most suitable for your company. Selecting the right process is a tradeoff between factors like:
- predictability vs flexibility
- optimization vs adaptation
- efficiency vs innovation
Key factors in selecting your development process include:
- How well do you know your customers and product requirements?
- How well known are the technologies you are using?
- What are your team's skill levels?
Are you delivering your products in a consistent, high quality manner? An audit of your current development process may turn up significant opportunities to improve your productivity and quality.
The traditional waterfall process is characterized by a serial progression from through Plan - Design - Build - Test. In these processes, all of the information must be gathered, processed and approved before the next step is started. Here is an example of a best-in-class serial development process. A typical example of this process is the construction of a house. All plans must be approved before construction begins, and the majority of the "testing" or inspection happens when the product is completed. Waterfall process do not work well where the requirements cannot be nailed down early in the process, or a significant technology risk exists.
More recently, iterative processes have been used to reduce the development time of new projects. These differ from the waterfall processes in that several (many) iterations of the Design - Build - test cycle are used to create the product. Iterations can be based on an approach using product feature breakdowns, or on an incremental refinement of the overall product functionality. The key in these iterative approaches is to determine what will be done in each short iteration, and how success will be measured. Iterative processes allow the requirements and performance targets to evolve with the participation of customers as the project evolves. Here is an example of a best-in-class iterative development process.
How can we help?
The first step in any change is to understand where you are now. Informal processes need to be documented before they can be improved upon or discarded. Research into industry best practices based on your needs can show you where you can go.
Documenting the plan as it takes shape simplifies its introduction and engages the key stakeholders who are critical to the success of the process. Involvement of the development team also helps to break down the organizational barriers to innovation, further facilitating implementation of the new processes.
Training in specific areas may be needed to drive specific points home. We have developed course materials that specifically addresses the needs of your staff.
- Planning for Designers
- Choosing a Project Management Style
- Decision Making
- Problem Solving and Troubleshooting
Once a new plan has been introduced, a system to monitor its effectiveness needs to be put into place. Starting from the ground up, the processes themselves need to be thought through before implementation. This can help avoid excessive effort spent on optimizing a minor process element at the expense of something more critical to your business.
Some interesting perspectives on project development processes can be found in our reference section.