header image
[ # ] Why are we so lame?
September 3rd, 2007 under Devel, OSS, rengolin, Web

It has now passed almost 170 years since the first programmer did the first code in the first analytical machine and yet we are so lame I can barely be proud of what I do, professionally of course.

Coders are now among the richest people in the world, programs sell more than bananas nowadays and the investment in technology is considered now one of the basic blocks of modern society and still we can’t build a piece of software that lasts for more than 5 years without being completely scraped.

The open source community is probably the biggest anarchist movement in history with all the good and bad things we all knew about anarchy and for the surprise of capitalists it’s working far better than big technology companies (check IBM’s OSS support and Vista’s problems in the general news).

Of the hundreds of open source softwares that emerge only a very small fraction have success but yet they manage to stay for longer in a stable status and growing smoother than paid software.

Companies are so worried about money that even tech companies can’t write proper code. Scientific institutes are so worried about doing the perfect way every time that they re-write everything everytime and still need to re-write from scratch next time again. Money and ego are the villains in our industry and unfortunately most of us are affected by at least one of them.

Case studies

Banks, for instance, focus on what works instead of what will last. The result is a complete mess (our beloved ball of mud) that eventually have to be re-written in the future and replaced by another ball of mud with bits of the legacy balls (just in case something breaks). If customers could see the code that run a bank before opening an account they will never open it, in ANY bank.

Internet companies have the same problem but a few more, it must look good and it must be new. It doesn’t matter if the code is good, or if someone really need that feature, but the more features it have the better. (Not) Maintaining that in the future is a completely different problem.

Big companies only follow standards when it’s not needed, like writing core libraries in PHP because that’s the company’s default language or sticking crappy systems together with tape just because they’re the standard libraries used worldwide.

Scientific institutes are not free of problems too. Money is much less a problem but the ego is so big that it can be even worse. Everyone wants to re-write everything their own way and no one disagrees and just shake their heads and wait years to have another non-working beta system to maintain alongside with all other systems made by people that left the institute decades ago but there is still one person using (and normally afraid of moving as it’s not his code as well).

So, why?!

Simple: ego, fear, pride and prejudice.

Not many programmers really care about money, as much as they care about their own ego. The money problems in private companies is institutional and not personal. Our problem is personal.

Most CTOs, CIOs etc know about all problems of taking the actions they take but they’re often afraid of taking radical decisions (even when it’s for the better) or their ego demand them to change something that is working well just because it was someone else who did it.

Most programmers will have a huge pride of their systems and consequently an even bigger prejudice on the others’. Reason can’t work where pride and prejudice rules, nothing good can come out from an environment as bad as that.

Now take those four problems and you know why are we SO lame!

This is also the same reason why open source software is not as lame as closed source. Programmers still have ego and pride but code is pure logic. When your code is exposed you won’t be proud of a bug and if someone points you to one in your code you rather fix it than yell at him/her. In this case your ego and pride will not save your job but make you loose credibility in the community and your project will be put aside and other will arise, so if you don’t cooperate, you die.

Open source promotes dialogues, refining code and algorithms, finding bugs and fixing them the best way possible. It might be (arguably) slower than big companies but still the overall local quality is much better.

What to do?

It’s not just a matter of solving one or other problem, as the environment is already filled with rubbish up to the top, it’s a matter of acting different, from scratch. (my ego is working now)

If you know something is wrong, report it. If someone says it’s impossible to do, demand proof. If someone takes actions based on ego, fear, pride or prejudice, open your mouth and speak loud.

You might loose your job but I’d rather loose my job than work on such a lame place and today, unfortunately, it quite difficult to find somewhere not lame.


Write a comment