I’ve always been quick to point out when I screw up. I always thought that was the honorable thing to do, then you correct it and move on. But I’ve been making a lot of mistakes lately. And not only do I feel more and more embarrassed, but I wonder if I’m being a bit too honest? I mean, where’s the line where doing the honorable thing ends, and looking like you keep screwing up start?
Is there such a line?
Maybe the real question should be, why do I keep making these mistakes, lately? Maybe this is a wake up call.
One of the biggest cardinal sins in today’s enlightened software industry is to skimp on the design and dive right into coding. Over the past couple of years, we have convinced management that the investment we make up front will pay for itself in the long run — and we usually prove that right. So why am I feeling pressure to give estimates before a complete analysis is done? Or at least pad the estimates so that we can allow for design changes as we go along?
I read recently, in one of the umpteen books on software project life-cycle methodologies, that you should only expect to do 80% of the design work up front, and the other 20% takes care of itself if you pad your development time estimates. At first I thought this was a mistake, but I see that a) it does seem to be a compromise between “extreme programming” and the old-school “waterfall” methodology, and b) in a fast-moving industry, some risks are acceptable and unavoidable, so padding dev estimates to fix small design flaws is realistic.
So how come I still feel guilty?