Kirk Rader  1.0-SNAPSHOT
Software Development Life-Cycle

How to create, operate and maintain complex software systems.

Overview

"Agile" vs. "waterfall" is a false dichotomy promulgated by consultants in the business of selling "agile by the pound".

Ignore SAFe and its ilk, here is how long-lived, complex software systems are created, operated and maintained by enterprise-sized organizations at a scale beyond that which can be accomplished by a single scrum team working toward a simple GUI-centric MVP:

Use automation to the greatest degree practical at every step, including but not limited to:

This is "Agile?"

Agility, ca. 2001:

...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.

Manifesto for Agile Software Development

The trouble, of course, is in a naive, if not outright self-serving interpretation of the Manifesto. For example, almost no-one pays attention to the final "That is..."" clause!

Let's Get Real

Agility, ca. 2017:

We value:

"Working" software that no-one knows how to use or maintain has no value, and that requires up-front analysis and design, copious documentation of API's and similar dependencies, properly documented, preferably automated test cases and reports, detailed user guides and release notes etc.

Summary

Quality products are created by skilled artisans working collaboratively, consciously, methodically and proactively – not reactively to constant changes of priorities and goals or chaotically changing dependencies.