I remember the sense of affirmation I experienced reading the Agile manifesto for the first time back in 2001.
After years of working with less-technical managers wielding fantasy gantt charts I could only dream of implementing techniques I previously read about from eXtreme Programming. Some “agile” common sense from industry thought leaders played like music to my ears. Unfortunately, the startup I worked for was not fertile ground for these ideas. I wondered if I would ever find development Nirvana. After a year or two hiatus away from tech, I returned with a firm conviction to find a way to do things better.
Based on my experience in the 1990s working on projects involving as few as 1 to as many as 50 developers, I observed that the fastest way to develop most software I was likely to be involved with would be to simply put between 2 and 4 smart developers in a room together, carefully specify and prioritize features but otherwise let them figure it out. Meet with them every day to understand what they are doing and review progress but otherwise leave them alone and make sure others do too. Give them anything they need. If at least a couple of them have a great deal of experience, things will not go too far off track. Attempting to control too closely what goes on in that room, or to make it predictable in the way of an elaborate Microsoft Project document, would only make the desired outcome more elusive.
This understanding and my subsequent experience later in the decade informed everything about how I set up AELOGICA — from our style of client engagements to our hiring to the layout of our workspace. I designed our workspace specifically to support this style of small-team collaboration. Our staffing favors experienced developers seeking a sane professional environment in which to do their best work. Our timezone offset relative to our clients, rather than proving a handicap as some feared, provides long stretches of time to focus on our work without interruption. We use tools that facilitate remote collaboration but otherwise mostly stay out of our way. We sensibly follow best practices such as test driven development and pragmatic pairing. We eschew heavy-weight process and excessive planning. Most importantly, we continually talk about how to best accomplish our work and adjust our techniques accordingly.
In short, we develop with agility and pragmatism in a manner as close to the vision and spirit of the original manifesto as I can imagine.
Is Agile dead? “Big-A” Agile as peddled by software methodology or process consultants may be dead or dying. That’s just fine with me. I am happy to be developing great software this way for our clients and thrilled to provide a great environment for our developers to do the same.