Like many, when I first encountered the term “agile software development,” I thought it was an excuse for a cowboy culture: low planning, low documentation, run as fast as you can and assume that each person’s brilliance will take care of everything. Since it came up in the context of a very large client asking us about our methodology (“what’s a software development methodology?” I asked myself), I thought I should dig into a little more. Integrating Agile Development in the Real World, by Peter Schuh, quickly showed me it is not that simple. Agile development is, in fact, all about fostering a systematic, right-sized, just-in-time development process. For me, being “agile” means embracing change instead of being locked into preconceived notions (requirements). But don’t throw everything out the window either.
How do we become agile? Read the Agile Manifesto, then scroll down and find the Agile Principles. Work on internalizing them, especially that part where the Manifesto acknowledges value in processes, tools, documentation, etc.: “while there is value in the items on the right, we value the items on the left more.” That’s a start on the mindset. Now what about practice?
Review the various Agile methodologies, and consider adopting one of them (Scrum being the most well known as of 2024). There are many mature frameworks with a great deal of experience behind them. If possible, adopt one by the book: don’t try to adapt or alter until you’ve mastered the practice (Shu Ha Ri). If it is “not possible,” then adopt what you can and work on breaking down the barriers, in close collaboration with stakeholders and management (you won’t be able to go it alone, from the trenches).
To repeat: master the practice(s). That is, practice at: writing stories; designing ahead just enough to reach a useful inflection point; adopting a rhythm for development, inspection, and adaptation; and whatever else your chosen methodology suggests. Continue emphasizing engineering excellence and emphasizing the importance of learning what will delight your customers. Most of all, be flexible — eventually, even with the methodology itself. Be Agile.
Resources
Books
Clearly, this is just a small set of all those available on the subject — books that I have actually read and recommend:
- Integrating Agile Development in the Real World
- Agile Testing: A Practical Guide for Testers and Agile Teams
- Succeeding with Agile Software Development Using Scrum
- Coaching Agile Teams
- The Scrum Field Guide
- Management 3.0: Leading Agile Developers, Developing Agile Leaders
Articles
- The New Methodology, by Martin Fowler (co-author of the Agile Manifesto)
- Introduction to Scrum, by Mike Cohn (author of Succeeding with Agile)
Posted with : Tech, General Programming, Agile / Scrum