Why programmers dislike designing
Joel Spolsky delivers another sure-fire example of established wisdom: Design Before Code is Good. Or as he puts it, Nothing is as Simple as it Seems. Hear, hear.
But why is it so many programmers loathe designing first? I have a few theories:
- Design is Hard. Whereas digging in and doing all the pluming you think you'll be needing is easy. It gets you started, and the work doesn't require your full attention (a distinct advantage in a noisy office). It's repeating patterns.
- Design is Accessible. A good design is humanly readable. Your manager could understand it, and hence know exactly what you're doing. Maybe even offering improvements that you hadn't thought about, and since you're the all-knowing programmer, you might get to look bad. The magic disappears.
- Design is Commitment. It's promising what you're going to deliver, thus undermining the possibility to skimp on features when you spent a few days in a creative slump, and have to catch up to the schedule somehow.