What Is Agile Software Development?
The term “agile” now signifies whatever folks want it to. It’s a term that has achieved widespread recognition within the software development field, and with that recognition, dilution to the point of near meaninglessness.
Agile was (circa 2001) a reaction by a bunch of experienced, senior developers to both the conventional “heavyweight” and widespread “cowboy coding” approaches to writing software prevailing at the time.
Forget about talk of incremental, iterative approaches. Forget about “inspect and adapt”. Forget about “embracing change”. Forget about “quicker development of higher quality software”. Forget about “earlier realisation of investment”. Forget about methods or frameworks like Scrum, Kanban, DSDM, XP, etc.. And forget about practices like sprints, wall-boards, and the whole practices nine yards.
These are all post-hoc rationalisations of one basic truth: The Snowbird folks and their fans – then and now – were fed up with wasting their lives on failed and “challenged” software projects, on make-do-and-mend development, and wanted to do something about the quality of their lives at work. Theirs, and their peers. They felt a need to make more of a difference to the world than then-current software development approaches allowed.
Meeting Their Own Needs
Put another way, their championing of the agile cause was a means for developers everywhere to – rather unilaterally – attend to their own needs, including more closely living their (Theory-Y) values.
Sadly, lacking a whole-system, all-stakeholder, organisational-dynamics perspective, the result was a somewhat parochial thing. A thing that failed to recognise that software and its development rarely exists in isolation, and much more often happens in a context largely outside the control of those folks directly engaged in writing the software.
Now, some fifteen years on, we can see that the insanity – and tragedy – of agile – lies in the Sisyphean task of trying to build effective teams – and ways of working- inside ineffective organisations.