The Lonely Developer

Bill Grant

Back in the old days, when I used to write software, I used to get all of my requirements wherever I went:

I was so popular. I think back to my high school days when I wasn't on the football team (I was in band), I wasn't the most built guy in my class (I graduated weighing 120 pounds), and not every girl wanted to date me (after striking out twice, the third girl I asked finally accepted my Senior Prom invitation).

Those tough days are over--in the software world, I am a rock star. In my 2nd year as a programmer, the CEO of my company bought drinks for everyone at my birthday party. Every person got their requests into the software. You want a grid that can be sorted and filtered in 15 different ways, even though your group probably only needs 3? No problem. I can even build that with this really cool control that you will like. You came to the right guy. Drinks on you?

Now never mind the fact that I was getting a lot of conflicting requirements from different people. That wasn't really a big deal. In an iterative process, I'd be forced to validate these requirements. Or I'd have to have awkward milestones where I show customers what I am working on well before the software is supposed to be released. Do you know how uncomfortable those meetings are? It will be way easier to just wait until I release the first beta to see what they think. If problems come up then, I can always go back and fix it. Sure it will take time and probably require a complete overhaul of the architecture. But if I don't keep myself busy, how can I justify my job?

My days as a developer are no more. These days I work on behalf of customers who care about silly things like "return on investment" and "higher quality software" and "business driven development". I'll admit I've been worrying less about the lonely developer and his popularity. I mean sure he is getting bonuses for delivering software on time, but is money everything?

At the end of the day, we really need to think about what the impact of a good change control and requirements management process does to the heart of our developers. We are taking the fun out of development. I mean I understand the business wants to make sure the correct system is built in the least amount of time accomplishing the most important business requirements, but then how does the developer get to be creative? How do developers get to play with the coolest technology following those guidelines? And how do they get friendly with the business people when they have to say, "Sorry, you have to follow the process".

It's just not fair.