Agile Manifesto & Bringing Agile Methods to Hardware Development
This post is also available in: Français (French)
Today, manufacturers need to produce more and more in an ever shorter time and users are more fussy about the quality. The products must match their expectations to have real value. Adopting the agile hardware development methods would save time and improve final quality. The software industry has already made this methodological transition that challenges us to revolutionize our approach to the design of physical objects.
Agile Methods from Software to Hardware
Agile methods are a set of methods used by developers since the end of the ’90s. Today, they are the more popular project management approach in software development.
Agile methods differ from the previous method called “waterfall”, where the project is carried out in successive stages until its final state. With agile, the goal is to reach as quickly as possible to a simple but functional version of the product that can be tested by users. This step by step development is critical to obtain feedback early, be able to continuously improve it, and detect and fix impediments early.
The popularity of agile methods in the hardware industries is about the same as it was in the software in the early ’90s. Some precursors do practice it, while it still remains a strange approach to others.
The 2001 Agile Manifesto
The Agile Manifesto was written in 2001 after two days of discussions between various personalities in the software industry. It is a manifesto for software development based on 4 values and 12 articles.
The manifesto tells us the benefits of emphasizing people and interactions, achieving a minimum viable product and working with the customer. It also points out some elements that usually act as obstacles. For example, following a long-term plan, focusing on the negotiation of the contract, focusing on the processes rather than on the individuals, or requiring extensive documentation before doing the first action.
We can say that agility makes it possible to adapt to changes. Adapting this state of mind to the hardware development opens an interesting perspective. Fostering flexibility among individuals makes teams more productive, efficient and their work more enjoyable.
The 2008 Agile Manifesto for Hardware
Joe Justice, an American Scrummaster, wrote the Agile Manifesto for Hardware. This manifesto adapts the principles of the one for the software described above. To allow changes to be made even late during the process and to reduce costs, it proposes four principles:
- The use of production tools that allow flexibility
- The use of few materials and which are compatible with the fastest tools available to us
- The use of minimalist design (which is still elegant)
The use of models and prototypes is crucial in this design method. This allows to constantly test the product. To enable you to work with this approach, there are several things to consider.
It is necessary first to modularize the project. Cutting it into several phases reduces the risks. This avoids reviewing the entire project if one part does not work or does not meet the expectations. It is important to design each module independent from the others. For example, you can separate them according to the time required for their evaluation. Thus, other teams can continue to iterate in their corner.
The interfaces and connections must allow their complete independence to the modules. So, you have to deal with it before designing the modules. The integration of iterated modules must be continuous and systematic. If possible, it must be automated.
To constantly improve the product, as in the agile manifesto for the software, it is necessary to test the product. Joe Justice proposes to use the method of test data development and data-driven development. It also proposes to take advantage of the internet of objects (IOT) as soon as possible to analyze the projects. And within the teams, communication and collective work must be improved.
The most important point in Joe Justice’s hardware manifesto is getting a product at the end of every sprint that can be shipped in its current state. You can obtain a physical prototype in working order, or virtual one that can be tested. Using new technologies such as augmented reality facilitates this prototyping and iteration scheme by reducing costs.
Finally, put forward communication and collective work within the teams create a climate that allows actors to find creative solutions to solve the problems they face. Teams must be multidisciplinary, and members can be in turn mentors and learners. Facilitating communication between members creates a great emulation within the team. They are invested in several design phases and can help even when they are not specialists in the current subject.
Agile Hardware Development
The original agile manifesto was adapted for hardware projects by Joe Justice for the Wikispeed project. This former Scrum developer has enunciated 4 principles and several strategies that aim to speed up the design process and facilitate iterations.
These principles are complementary and are based on modularity, the choice of production tools that favoring flexibility and the search for a reduced number of materials.
The goal is to constantly test the project (through data-driven development) and to get a functional product at the end of each iteration cycle, where the enhanced modules are integrated. Technology and especially virtual reality can help you in this whole process of iteration.
Teamwork is a central point of the method. The different skills and the emulation within the team are elements that value the project. The teams must be multidisciplinary and put forward the internal communication.