We’re all in this because we love to code. The code has no feelings, it is real and quantifiable. We want to write the best code possible, to be proud of it. We follow the principles and realize great things. We refactor it times after times. Then unit and integration tests come along. Static analysis tools, coverage. We build it and deploy it. We feel good about ourselves. We are getting paid. Things are good.
First clients come along, change requests are in. Performance issues, bugs, features. Deadlines. If we’re lucky enough clients understand this domain of information technology, but most of the times we’re not. They only understand money and want it. Lots of it. After all this is normal. Is there a limit that we touch? I don’t think so.
Problems start to appear. Compromises need to be taken. Suddenly, we cannot write the best code because we don’t have enough time. Managers are coming in and ask for the quickest fix. Do we really need unit tests? they ask. Some client is threatening to leave if we don’t satisfy him first. So we do it. We drop everything and focus on him. We leave others waiting in queue. Usually he is the highest payer. Then other clients see this strategy and apply it too. The code is patched time after time, the coverage is dropping, the quality drops as well. But money still are coming. The fire was put out. Until next time. If the foundation of the product is good, then things are not so bad. It is manageable. But, if the foundation is weak or rotten then things will fall apart eventually. It’s a matter of time. We the developers see it. We try to do something about it, but it’s in vain. Management won’t listen. After all we all resources. We are replaceable. Money comes first. They want security. No risks taken. Until everything start to fall apart, there is no problem. Then it’s too late. The smart one will leave before this point. They will go to another business and apply the same pattern. Because it works. I’ve seen this many times in my experience. I’ve tried to prevent this but failed every time. Hopefully you are not as unlucky as I was.
Is money important? Hell yeah. For everybody. From a businessman point of view, if there’s money to be made, he doesn’t care how, he will do it. And this is normal. Even that if we kills a potential good product. Think bout support and how much money is made from it. If we’re stopping for one second and think. Is support more expensive than development? Yeah it is. This begs the question. Do you want to create a stable product with less need for support or you create a mediocre product with much more support needed? After all it’s a game of numbers? Which is higher?
But from a developer point if view, do we care how we are making the money? Would you work on a shitty product being payed very good? Would you take less money to work on a great product? Is it important for you to like what you do? To feel that you contribute to something? I’m pretty sure the answer would be “it depends”.
So what can we do if we’re in the first situation?
Well, we can keep our head down, execute the tasks and that’s it. The managers will be happy. We can do whatever we want in our spare time. We can write and code about what we like. There is coding after work. We can challenge ourselves if there’s no challenge at work.
Or we can try to steer the product into a good direction. We can apply an aggressive strategy or we can go light with gloves on. Unfortunately nothing will work. Money is king. The essence of a business is to make money no matter what. Now. Yesterday. Not tomorrow, because that would be an investment. That means spending money, not making money. Sure if you view is narrowed and you think small to medium term.
Or we can quit and become our own boss. I was just reading what Lukas Eder wrote in his article. He is truly lucky. Other did is as well.
These situations do not apply to every business. There are truly great men and women out there who understand how to run a successful business. Unfortunately they represent a small minority,
It’s not all about money. That’s why we love open sourced code. It’s innovation.
Humans are difficult. Humans can be deceiving.
The code is real. The code is truth.