Stephen A. Fuqua (saf)

a Bahá'í, software engineer, and nature lover in Austin, Texas, USA

Be Agile

Edited June 24, 2024: dead links, light re-editing, new closing paragraph.

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:

Articles

Posted with : Tech, General Programming, Agile / Scrum