Tips for getting started with and implementing an agile product development process
For the consumer goods industry, agile product development offers the key advantage that it enables user involvement. You can react to the very latest user and consumer trends and conduct continuous market research.
1. A common language shared by all disciplines
Over the last few years, Zühlke has been working hard on transplanting agile ways of working rooted in software development to the development process for networked consumer goods made up of embedded software, electronics, mechanical components and often an IoT solution.
A key requirement for effective agile product development is good communication between all of the different disciplines involved. That means that all of these disciplines need to agree a common technical terminology. The term ‘prototype’ is a good example. Whereas, for a software developer, a prototype is a fairly throwaway object, as it represents a very early design model, for a mechanical engineer a prototype is the result of a lengthy development process and is almost production quality.
That’s why you should create a shared glossary featuring crystal clear terms such as ‘software prototype’ and ‘device prototype’. This kind of common language is essential for reducing misunderstandings and facilitating communication between different disciplines.
2. The systems integration plan
With a nod to release planning in Scrum, here at Zühlke we use a systems integration plan which acts as a key element for controlling joint agile product development.
Based on the system requirements (for example in the form of a system backlog), the team defines the sequence of development steps. They then set deadlines for when specific versions of the electronics, mechanics and software should be able to work together. Each discipline has to work towards these integration points. On top of all that, it’s also important that infrastructure, testing and documentation activities don’t get forgotten. Once the team has committed to a systems integration plan, you’re already well on the way to agile product development.
3. Continuous systems integration, not big bang
Now we come to identifying and dealing with risk. Agile projects enable us to tackle risks at an early stage. In software development, continuous integration is a key, established method of tackling and managing at the earliest possible stage the risks involved in integrating software modules.
For a product development project, however, continuous integration of the software alone, followed by a big bang integration of the finished software with the hardware and the finished system is just not good enough. Even if every discipline has done a nice tight job up to this point, integration will always throw up a multitude of details resulting in unplannable cycles of analysis and correction.
So we’ve extended the concept of continuous integration to cover all of the disciplines involved in product development. Software integration starts out on an evaluation board and gets moved onto the real project hardware at the earliest possible opportunity. In the same way, the mechatronic systems also get integrated with the hardware as early as physically possible. That means any obstacles to integration are dealt with at an early stage. And to reduce testing costs, we automate many of the steps involved in integration.
Take, for example, an Internet of Things product. Development work on the device, the app and the backend continuously flows together. Attention also needs to be paid to ever changing market and user requirements. Agile methods help you integrate the individual components correctly and keep your complex project under control.
4. Save time by failing early
If you do experience failure, it doesn’t really matter. Fail fast, fail cheap is the mantra – the earlier you recognise a problem, the more time you have to tackle it. This also gives you the opportunity to terminate a project that isn’t going to be commercially successful at an early stage and make more profitable use of the budget assigned to the project. Here at Zühlke, we have been applying this agile principle for years by using agile product development to develop complete consumer products.
5. Organise your teams right
Our final tip is that teams should be centred around a subassembly or feature rather than a specific discipline.
The graphic shows an interdisciplinary team composed of mechanical engineers, electrical engineers and software engineers. As the product status progresses from ‘lab model’, to ‘integration model’ and finally to ‘close-to-production model’, the development teams are repeatedly reshuffled. The key factor in shaping these teams is how much of what sort of expertise is required at each stage of development. The teams are not fixed, they adapt depending on circumstances. A range of different experts come together during product development depending on requirements.
Take these five tips on board, and you’re already well on your way to a successful agile product development process.