How to write software
Posted by matijs
Peter Armstrong hits it right on the head:
People Need Gaudy Shit
Instead of having a loose set of things that work, that are generally or even just sometimes good, that we mix and match according to the circumstances, we get everything put together in a box with a nice bow on top. Then, if you don’t use everything in the box, you’re an infidel.
I remember the first time I came across Extreme Programming (XP). I was at a bookshop looking to buy Design Patterns. This was some time ago, but there already were lots of books on XP. Most titles sounded like “XP explained yet again in a different way”. Marketing, indeed.
The thing is, talking a lot to your customers and pair programming have nothing to do with each other. Nothing at all. Both can be good ideas, depending on the circumstances.
When I write software at home, for myself, of course I can’t do pair programming. When I write something that only I will use, there’s no point in talking to my customers. I almost always use unit testing and version control. Using that for a one-off script written in ten minutes is insane.
I could make my own list of what works here, but Robert Fuller has done a pretty good job.

Peter Armstrong said 7 days later:
Hi Matijs,
I revised my post which you linked to a bit to remove things which would offend people for the wrong reasons. (You’re Dutch, so I assume you will know exactly what I’m talking about—it’s too bad that not all cultures are as tolerant of criticism as yours (or as Canada’s, which is where I’m from).)
(If I’m going to offend people, I want it to be for the right reasons! And I didn’t want to go down the path I had started down with my blog post since I have a young son to think about. As such, I’m going to keep my opinions constrained to things which just generate virtual flamewars :-)
Anyway, after doing all the cowardly revision, the “People Need Gaudy Shit” phrasing didn’t make much sense anymore (it only made sense comparatively). So I just deleted it.
Anyway, thanks for the trackback and sorry I ruined it :-)