I'm almost done reading one of Cockburn's newer articles,
"The End of Software Engineering and the Start of Economic-Cooperative Gaming". It's an lengthier overview of some of the ideas he went over in a recent interview.
It's a fantastic writeup of two core ideas that I think describe how software development actually works. All of it follows from two simple ideas:
[A] software project has two goals:
- To deliver the system;
- To set up for the next game.
As with most excellent ideas in our field, this one is obvious and simple...once you realize that it's obvious and simple.
Anyhow, if you're coder, it's well worth it to spend the time to read it.
Read: Software Development as a Game