Try to recall the last talk you had with some friends in the bar or colleagues over lunch? What was it about?
It’s very likely you’ve talked about cars. Especially about horsepower, engine size, fuel type, fuel consumption, acceleration, maximum speed, tire size and more technical and impressive specs.
Do you ever have such talks about the software you have just bought?
We care about the tiniest details
In our daily life, we are so much concerned about all kind of technical and performance specifications. This is especially applicable to men.
Women are much more focused on the aesthetic and practical side of things.
But not when it is about software
When it is about software males start acting like females. Suddenly, they focus on minor details in the look and feel.
They focus on unnecessary functionality for fun. And they don’t give a damn about technical and performance indicators. It’s just supposed to be working.
Sometimes I have the feeling we as software developers should just sell a car looking like a Rolls Royce with the engine of a 30-year-old Trabant, or maybe even better just a pimped Trabant. Nobody will notice the difference. At least not on day one.
What happens if your application appears to be successful?
Now let’s assume your application, portal, webshop or website becomes popular. Your business is depending on it more and more and then all at once, it stops working. How does that feel?
We have seen many such cases. We have seen people almost crying and begging us for help to make their solution work again.
Yummy, yummy, spaghetti
Very often that is the moment we start crying. What a crappy software have we seen in the past years. Horrible spaghetti code, hardly documented, without a clear architecture, no usage of design patterns, lack of in-code comments, without tests etc.
Bottom line, the code you can hardly maintain.
Whom to blame?
But who’s to blame? The developer? I’m not sure. Too often he got hardly paid for his job and probably he had to build something under the extreme time pressure, meanwhile handling a lot of change requests.
On the other hand, he should warn the client. But most developers don’t dare to do this as they are afraid they will lose a client.
Should we blame the client? Partly yes. He should be aware that business-critical applications should be designed well. You also won’t be able to build a house based on some sketches.
On the other hand, I also understand their eagerness to start with something new as cheap as possible. You never know whether or not your idea will be successful.
We all need to change
It seems we need some kind of a paradigm shift. We will need to invest a bit more upfront to prevent failures later on. That might feel like wasting time, money, etc, but in the end, you will win.