Agile was born as an alternative to the process and document-heavy way of developing software that relied on intense planning, such as Waterfall. The big problem was that planning and documenting took away focus from what really matters - delivering quality to customers. There was no outside feedback from end-users or customers until the very end of the development process.
Agile is solving all these problems through continuously launching smaller pieces of working software, getting feedback from users early on, and constantly improving the working process along the way.
This article is part of a more comprehensive guide: Demystifying Agile in Software Development. Make sure you get yours!
We wanted to understand what are the key ingredients of an Agile way of working, so we spoke to nine Agile experts and practitioners to get their insights.
Key ingredients of an Agile way of developing software
Motivation is critical in adopting Agile because it gives teams and organizations the drive, the “why are we doing this?”.
“I believe the motivation to adopt Agile is one of the first ingredients - what benefits are you hoping to achieve or what negative consequences are you trying to prevent? I’ve seen a few “forced” Agile implementations where companies wanted to adopt Agile because everyone is doing Agile. Still, they hadn’t identified a problem to solve, so there was no real drive for change. When you have the motivation, you’ll know how to make the transition to Agile.” Agile Consultant, Rolf Consulting
When you have a solid motivation to transition to Agile, your team buy-in comes as a byproduct.
|“I think it’s important to work with a team open to changes and have buy-in from the entire team. Inside the project I work for, we eventually created a setup that accommodates how people prefer to work and with our product needs, having both a Scrum and a Kanban team.” Alexandra Filip, Scrum Master, Wirtek|
#2 The right mindset: accountability & continuous improvement
Agile is more than a collection of practices and methodologies; it’s a mindset to begin with.
In the Agile mindset the entire team is well connected to the vision for the product and what they want to achieve, are collectively responsible for delivering what they committed to and for achieving the desired level of quality. This is a significant change of mindset from more traditional approaches where a project manager assigns tasks and holds people accountable - in an Agile team, members hold each other accountable.
|“One of the most common challenges we face is the change of mindset - especially with people with little or no prior experience of working in an Agile environment. Mindset is hard to change - you can always adapt processes, but it’s not as easy to change your mindset and get to a place where you commit to delivering a set of features by the end of the sprint and hold to that commitment - as much as you can.” Mircea Alexandru, Software Development Manager, Mark Information|
Agile mindset also implies searching for better ways to work - looking to continuously learn and improve the process.
|“The key is continuous learning and experimenting, inspect and adapt. Keep trying to improve things, 1% improvement today. And to do that, you need to be as transparent as possible, as legally and ethically is allowed.” Ralph van Roosmalen, Agile Consultant, Agile Strides|
|“The continuous evaluation process that happens in retrospective meetings is critical for me. It goes hand in hand with the kaizen concept - you never settle and think everything is well, you know there is always something you can do better, and you focus on improving one item at a time.” Mircea Alexandru, Software Development Manager, Mark Information|
|“Retrospective meetings are the starting point for improvement. Having healthy retrospective meetings where all team members are encouraged to contribute and speak about what they think worked well and didn’t helps the process overall. When the team doesn’t take the retrospectives seriously, there is no real progress, and you end up demotivated.” Vasi Axinte, Senior Software Developer, Wirtek|
|“Being preoccupied with continuous improvement, reflecting on what you can do better and change what didn’t go well - I think that is the essence; whether it’s internal processes, team interaction, interaction with users.” Adina Balea, Director of Software Engineering Services, Wirtek|
Intense collaboration inside the team and with end-users or customers is a prerequisite of an Agile way of working. As one of the principles behind the Agile Manifesto states, “Business people and developers must work together daily throughout the project.”
The collaboration aspect has multiple implications. The development team collaborates with business people to gather product requirements and with customers or end-users to gather feedback early on. Inside the development team, members frequently communicate instead of working separately & handing over the work to the next person.
|“I believe collaboration is a key ingredient for Agile software development, together with a constant focus on business value and appropriate level of quality.” Raluca Meyer, Founder & CEO, Viralink|
|“In agile teams, the collaboration is intense, you work all the time with all the people in the team. Regardless of whether you work in the same space or remote, you have in place collaboration methods, such as a coding environment, code review environment.” Adina Balea, Director of Software Engineering Services, Wirtek|
#4 Transparency and visibility in the team
For an Agile team to be able to move fast and make decisions, the team needs transparency.
The entire team should understand the product’s vision, the limitations of the product, users’ feedback and have direct access to all the information to make decisions and deliver the best version of the product at a given time.
|“When it’s a project manager or an architect that makes the decisions, you cannot be agile - you can’t adapt easily and react fast, it takes time for a decision to be made, and that makes the development process longer.” Adina Balea, Director of Software Engineering Services, Wirtek|
|“Be transparent about everything you do, have a learning mindset, and continuously inspect and adapt. That is the key for me for being Agile.” Ralph van Roosmalen, Agile Consultant, Agile Strides|
#5 Self-sufficient, self-organizing team
An agile team collaborates intensively and communicates as often and as transparent as possible, and they make decisions on their own, intending to deliver the best possible product at a given time.
For that to happen, the team needs to be self-organizing (they don’t need a project manager to assign tasks and keep track of progress, the team members hold themselves accountable) and self-sufficient (they need to have all the knowledge, both business and technical, and skills).
|“I believe it’s important to have the right people in the Agile team- people who have the right skills, both technical and non-technical ones. Non-technical skills for me means communication, cooperation, transparency, and integrity.” Ionuț Pop, Scrum Master, Wirtek|
|“It’s essential to have the needed roles inside the Agile team. The Product Owner is essential, as well as the Scrum Master. And ideally, you want to keep a stable componence of the team.” Flaviu Zapca, Co-founder, CoreBuild|
|Adina Balea supports this idea too, saying, “One of the most common challenges we faced was having a Product Owner in the team who did not really have the vision of the product we were building. In those situations, it took a lot of time for him to answer the team’s questions, why a certain feature is needed or why it should work in a certain way. And that ultimately created frustration and diminished motivation in the team”.|
#6 Direct relationship with end-users or with client
To keep a short feedback loop, the Agile team needs to be in direct contact with the client or end-users, no middle man involved. It helps them understand why a specific feature should work a certain way, limitations in implementations, what the users are trying to achieve. And this can be best done by having direct contact with users and clients.
|“For us, working with the end-users directly makes a big difference. For example, one of our clients developed a software application for children with Autism. Our team had the chance to spend time with them and observe how they actually used the application. It’s end-users who can tell you best what they need from your product.” Adina Balea, Director of Software Engineering Services, Wirtek|
With such a wide adoption of Agile, can we say the essence of the philosophy is diluted? Or is it enough to adopt Agile practices such as planning and retrospective meetings to be Agile?
While it's not easy to give a straight answer, what we can conclude is this.
Teams that have a strong motivation to adopt Agile, a mindset of accountability, and continuous improvement are best positioned to benefit from it. They focus on what will bring the most value for their product now, collaborate intensely, and ask for feedback fast, learn and adapt. And for that, they need a transparent environment and access to all the needed skills and information.
Special thanks to our contributors for sharing their insights and ideas with us:
Ralph van Roosmalen, Founder & Agile Consultant, Agile Strides
Raluca Meyer, Founder &CEO, Viralink
Flaviu Zapca, Co-founder, CoreBuild
Alexandra Filip, Scrum Master, Wirtek
Adina Balea, Director of Software Engineering Services, Wirtek
Ionuț Pop, Scrum Master, Wirtek
Mircea Alexandru, Software Development Manager, Mark Information
Vasi Axinte, Senior Software Developer, Wirtek