Published at 17:36 on 15 December 2022
Take a look here. The very first principle listed is:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
By virtue of being made the first principle, a serious hint is being dropped that this principle is the most important one of all. Any lingering doubt is cleared up by the phrase “highest priority.”
This is, quite frankly, crap. It is predicated on the premise that what customers want most of all is continuous updates and change.
Continuous updates and change are one of the chief reasons why my industry’s products suck so much.
Gone are the days of physical tools like hammers, drills, saws, or even more complex ones like bicycles and motor vehicles, physical devices in a physical world whose limitations binds form to function. Instead, we have user interfaces driven more by fashion trends amongst the UI design crowd than anything else.
Learn to ride a bicycle and you have learned to ride a bicycle for life. Learn to use a mechanical typewriter and you have learned how to type for life. Learn how to use the most recent version of Microsoft Word and what you just learned will be obsolete within a few years.
Lack of stability, plus a near-absolute decoupling of form from function, are two of the very worst things about software.
And the agile manifesto actively mandates one of these two evils. As its highest priority.
It’s not all evil, of course. There is this one in there:
Simplicity — the art of maximizing the amount of work not done — is essential.
Well, gold star. “A” for effort. You got one dead right.
The trouble is, this is the tenth of twelve principles. It appears way down on the list, below a first principle that is unambiguously proclaimed the highest priority.
A first principle based upon a monstrously wrong premise.
And this is the most popular software development methodology within my field today.
No wonder most software tends to be crap.