I have a friend who runs an Italian restaurant. He is of italian descent and his restaurant does well. If you happen to be in Amsterdam, grab a bite there. He and his family are proud of the dishes they serve, lots of thought has gone into them. So if you ask the chef to put crap on your pizza, he’ll refuse. He is also likely to refuse changing the recipe for dishes that are on his menu upon request. The dishes are the way they are for a reason, and he’s certainly not taking any advice from laymen. As a result, people love the food and the place is popular.
Now, back to software. I have often wondered why software services companies are so accommodating when it comes to weird wishes their clients may have. If you’re a developer, I’m sure you’ve seen this happen. Some kind of expensive piece of software or hardware has been bought, therefore it must be used in the project you’re working on. This is called a boat anchor. Your software company’s business people have spent a lot of time landing this client, so they will tell you to just accept the boat anchor and get on with it. You look at the boat anchor, and wonder how to make the project succeed while this piece of crap is on board.
So my question is: why do engineers serve crap on a pizza? Why do engineers and their companies accept things like this? They know that a boat anchor is detrimental to the project and still they allow it to be there. If you serve your client crap on their pizza because they insist, they will blame you when it doesn’t taste right. After all, we are the software expert, right? We should have known better, so the client is right to complain. We, as experts should have convinced the client otherwise. That’s our job, it’s what they pay us for.