I was reading Brooks's famous article "No Silver Bullet" and found very interesting the separation of the difficulties of software development in "Essence" and "Accidents". The essence are the difficulties inherent to the nature of software, while the accidents are those that attend its production, but are not inherent.
Has Agile attacked the essence or the accidents?
Definitely not the essense. The essence is the programming language and the way the software is designed. Object Orientation attacked the essence (although I don't think it reached the revolution in productivity Brooks mentions). Domain Driven Design concepts attacked the essence because it deals with how the software is designed. But not Agile...
I was dissapointed. Some Agile practices are more related to the essence, probably the ones that deal with programming like TDD and refactoring but definitely Agile is not the silver bullet :-(
Agile then just handles the accidents in the best possible way.
Anyway, this order of magnitude improvement in productivity will ever be possible?. Cockburn states in his book that "as much as programming languages may improve, programming will still be limited by our ability to think through the problem and the solution". He seems to imply that even if a revolutionary programming language is invented, it won't bring an improvement in productivity without the "accident" (communication, collaboration) being performed well.
As of now I guess Agile represents the best promise in an improvement in productivity. It doesn't promise an order of magnitude (although Schwaber promises like 70% ?) but ...
Which are the promises in the "essence" side?
Nice article, keep up with this and i will keep on reading!
ReplyDelete