This is a rather technical, yet strongly recommended talk by Dave Thomas in the goto; conference (love that name). Refer to the seminal corresponding blog post.
Dave (aka @pragdave) is a software craftman and he knows a couple of things about Agile methodologies : he was there on that day. There are a couple of interesting things in this talk.
How UML killed OOP
One worth mentionning is the deep root cause that has killed enterprise software, and which has arguably transformed IT organizations into bloated systems that don’t deliver much on time, budget and with the expected quality level :
“UML is probably responsible for the destruction of Object Oriented Programming. Because its total focus on classes and not on objects has corrupted a total generation of programmers.”
For non software developers in the room, think UML and classes as powerpoint fancy slides describing the process, and objects as the shop floor, where real things happen and where the smartly designed processes generates tons of waste.
This is a fantastic statement and the reason why, we Lean IT coachs may have some alignment problems with software architects.
Agile : the noun and the adjective
Dave insists on the fact that Agile started its agony when it was promoted to a noun. Reminder : the seminal manifesto is the Agile Software Development manifesto, not the Agile manifesto.
Noun allows to have all sort of dodgy creatures such as consultants (note : I am a consultant) to get on the topic and according to Dave, it rarely is a good sign. How the simple agile principles became some things as over complicated as the SaFE framework (an industrialized large scale version of agile – as practical as a vegan beef barbecue) leaves him without any clue.
Besides, Agile has let some actual project development processes (such as Scrum) emerged. This is not either the goal of agile methodologies to replace a method (Waterfall) with another one, even as non prescriptive as the original Scrum (his answer to the question about Scrum at the end of the talk is rather funny) .
Bare in mind that the actual Scrum on the street that you might be inflicted by your company might not be that non prescriptive, though.
Agile is Dead
So here it is : Agile is Dead according to Dave. One set of project management methods have been replaced by other project management methods. Yet, agile software development is not a method, but it is a mindset. And now the original spirit is gone.
Then you might ask : what was the original spirit ? Dave is super clear on this. If you want to reclaim Agile and do your work with agility, this is what you need to do :
- Find out where you are
- Take a small step towards your goal
- Adjust your understanding based on what you learned
As far as the technical decisions to be made, it’s even easier. There is only one rule to remember (funnily enough, a rule that never appear on the radar of software architects) : Good Design is easier to change than Bad Design.
Long live Lean
The real interesting thing here : Dave definition of agility in the 4 points above is very, very similar to the core definition of the Toyota Kata defined by Mike Rother.
Lean management provides the practices and system to implement this agility in the whole organization. Dave might argues that Lean has also been corrupted while being promoted by a noun. Yet : what he describes as agility is the heart of lean thinking. A great talk.