I am a principal engineer that architects software and also a Certified Scrum Master. I have been in a Scrum team for about 4 years now.
At times I find it interesting and confusing when people talk about Agile and what Agile is. I hear people talk processes that must be followed and metrics that should be measured. But, I don’t think that is what Agile is about.
When I think about Agile I think back to the Agile Manifesto.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Processes and metrics are important but I don’t believe that they are part of Agile. I think that looking at the above manifesto and thinking about the definition of Agile.
Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
Read more at: https://en.wikipedia.org/wiki/Agile_software_development
I feel being agile means that we are having constant communication with our partners and team members. We are collecting requirements and refining requirements on an ongoing basis. We are showing our results soon and regularly. We are able to adapt to changes in requirements as they are identified and not use a process to stop change.
I think as we dig deeper into Agile and other methodologies that we find some of the processes that people talk of like code reviews, swarming and sprint planning. But I don’t think these themselves are Agile, they are just a way of being agile using other agile methodologies. I also think that many of these processes are very good and use them myself.
But, I think that like the manifesto says “Individuals and interactions over processes and tools“, we need to put individuals first and the personal interactions are vital to being agile. Processes and tools are secondary to the people and communications.
I would like to start a short series where I dig deep into the Agile Manfesto and think about it and write my thoughts. I would love to hear your thoughts also as we go on this exploration. I believe in learning as often as possible and keeping an ongoing dialog.