#Agile2015, which I can only afford to follow from a distance, came up with what looks like a new meme: Agile is improv. And there's more that supports my assertion here.
Having spent time on the improv scene, I think the comparison is apt. I'm gonna play with the metaphor.
1. Waterfall developers are actors who are expected to learn their lines and deliver them regardless of what's going on onstage or in the audience.
2. Engineering:SW Development::Stagefighting:Acting
Stagefighting requires mad skills: it's a domain. But a great swordfighter/MMA fighter/etc. is not necessarily a great actor.
Some domains are math/physics/etc.-intensive. Developers who work in those domains need all those skills. But they aren't enough to make for good software.
3. Here are a couple of quotes from the conference:
"Agile software development is people-focused and flexible." - via @DanaPylayeva
"Software processes which separate out design and construction are fundamentally untenable, unlike building a bridge, building electronics, etc. [Fowler]
The manufacturing metaphor was broken from the very beginning. Assemply lines are optimized to produce many of the same exact thing. With custom software, you only ever build one." - via @GetzTweetz
People-focused, flexible, custom - these are aspects of software that are seriously distant from anything we associate with engineering.
4. Software itself is orders of magnitude more malleable than what engineers deal with. We're essentially working with pure Categories, magical atoms of Platonic ideal forms.
5. I've worked with engineers and physicists who fled their abysmal labor markets for development. They knew a lot about the domain, but next to nothing about software. Don't get me started about the code I had to salvage....
Engineers are not freakin' developers.
Developers are not freakin' engineers.