Anyone who has done any software development has heard it. The sentence that makes you feel like getting a shotgun. It’s a client shouting “How hard can it possibly be to add that feature? The last one you implemented in a couple of hours and this one looks like the same thing!”.
Dear client, it’s never that easy. Sometimes it is. But don’t assume it is. Imagine you’re building a house. You want a window installed in your roof. They’ve already installed more than one window in the walls of your home and it didn’t take a long time. Will you argue with the professionals installing the window when they tell you it’ll take longer due to the added complexity of adding a unplanned window to a built roof? I’m betting you won’t. So why do you argue with software professionals when they tell you the unplanned feature you just asked isn’t that simple to implement, even if it looks like something else that’s already in the application?
Granted, our industry isn’t without blame. Most clients are disgusted by software companies because they’ve been burned in the past. And they have every right to be! Things like change requests, scope reassessments and legal balancing have shown them the big players in the industry can’t be trusted to keep their promises. That disgust has convinced them however that the entire industry, including the smaller companies, is out for nothing but their money and they react accordingly. It’s the human reaction “fool me once, shame on you, fool me twice, shame on me”. They won’t take our word on anything anymore and will discuss the tiniest detail. The result is that valuable time is wasted and nothing gets done in time (or budget for that matter).
Dear client, most of us really want to help you build the best possible value for the least amount of cost. Most of us really do care about you. But there is a rule in software development, which is something called the project management triangle. In short, quick quality doesn’t come cheap, cheap quality won’t be quick and something cheap and quick won’t be of high quality. Please do keep that in mind. The people in our industry that mean well are trying their best to stretch the third side of the triangle (whichever that’s left after picking two), but it really doesn’t help if you treat us with the same distrust as you have in the past.
Building good software is hard and takes time. Most of us really know what we’re doing. Tell us what we need to do to gain your trust and we’ll move mountains to gain that trust. But stop thinking you know our industry better than we do to make decisions based on that alleged knowledge. You don’t. So treat us with the same professionalism you would someone building your house, educating your children or fixing your car and you’ll see that everyone involved will come out winning in the end.
And if you’re really committed into joining us into a mutual beneficial relationship, maybe you’d want to consider building software like this and be aware of something called the cone of uncertainty. But you’ll need to trust us that we know what we’re doing.