In recent years, we often hear “We work according to agile methodology“, “we use scrum in development”, and similar. But what is agile and is it possible to use it in the development of embedded devices?
What is Agile?
If you look in the dictionary for the explanation of the word, you will find this definition: “Able to move your body quickly and easily”, but then you wonder what it has to do with device development and how to use it.
Agile methodology is an iterative approach to software development that emphasizes collaboration, adaptability, and customer feedback. It breaks down projects into smaller increments, allowing teams to deliver working software more frequently and respond to changing requirements effectively. Agile fosters a culture of continuous improvement and encourages close communication among cross-functional team members.
This is what is explained in Manifesto for Agile Software Development, written by The Agile Alliance – a group of 17 software pioneers, back in 2001, as a response to the shortcomings of traditional, linear development methods, such as the Waterfall model, which often led to lengthy development cycles, rigid planning, and difficulties in adapting to changing requirements.
Agile methodology has many frameworks – Scrum, Kanban, Extreme Programming (XP), Lean Software Development, Large Scale Agile, and many more. Each framework provides a set of practices, roles, and ceremonies to support Agile principles and help teams organize their work effectively.
Iron Triangle Paradigm Shift
The Iron Triangle model represents three chief constraints in project management: Time, Cost, and Scope. This model is helpful for making reasonable trade-offs among these constraints. For example, a project can be completed faster (time) by increasing the budget (cost) or cutting the scope.
In the traditional Waterfall approach, the scope is fixed. This means that if you want to ensure a product has all the required features, time and cost should be adjusted. This approach is typically used in standard embedded development. For example, the scope details are defined upfront, within defined time and cost, but in the meantime, cost has been cut. What is done is that you extend time, so you don’t need to lower quality.
On the other hand, in the Agile approach, time (sprints) and cost are fixed, while the scope varies. Agile focuses on implementing high-priority requirements from the product backlog, and adapting to evolving requirements. For example, if the budget is unexpectedly cut during the project, the team collaborates with stakeholders to re-prioritize the backlog, focusing on delivering the highest-value features within the new budget constraints. The scope is adjusted dynamically, ensuring the most critical functionalities are delivered without compromising quality or extending time.