submit to programming reddit
 
(Warning: What follows can barely be classified as drivel; I am usually a much more timid person. I wrote it around 2005, when a huge disaster of a project - in which I was yet another mindless drone, executing slow and painful self destruct commands from senior mgmt - went down in flames...)
Despair

I'm writing this against my better judgment; deep-down, I know that it is an exercise in futility; but I feel I have to do it, at least once in my life; express that is, the solitude and frustration of a creative mind when it is bound by the "rules of conduct" of large corporations.

Venting. Steam.

You see, one of the things - in fact, the most important one - that got me in the IT sector, was the beauty of coding. It merged the clarity of mathematics with the usefulness of physics. It is one of the few things in life where beauty and functionality go hand in hand.

A good developer writes less code that works faster; sees design patterns that get re-used from one project to the next; knows when and what to optimize; uses the right tools for each problem; writes macros and code generators for tedious and repetitive code. To put it simply, an expensive developer - one that sells his/her services at a rate of 2-3 times more than the simple-minded market - is actually 10-20 times more productive, and thus, much more cost efficient.

No, this is not an exaggeration. In fact, it is an understatement.

If you think it is an exaggeration, stop reading now and try a decade of coding for a living.

This is a rant, so don't expect any "market proof" for the previous dogmas or the ones which will follow; I know I am right, and I'm guessing that all the experienced developers out there already know what I'm talking about.

So, if that is indeed the case, and efficient people can solve IT problems in a cost efficient manner, why am I upset?

Well... If you have any decent background in the IT business, you already know what I'm talking about. But lets try making the above concrete, with a VERY REAL example:

Imagine that a large corporation is facing huge problems with their already existing systems. Their hardware can't keep up with their load; their software is old; it can't adapt to the ever increasing change requirements.

What should they do?
What do they actually do?

The answers to the previous two questions are almost always, way too different.

What they should do:

Not so, I'm afraid.

What IT managers usually think of:

But hey, the manager is getting a good night's sleep. Right?

Actually, he isn't, because migration to the new system is now facing delays and complaints: the beast is slow, almost as slow as the legacy system. It doesn't do what the corporation people want, and customization is very slow and introduces bugs. The original developer of the beast has sold the product to Beast Inc. and lives in Hawaii, so the poor developers have to reverse engineer it. This leads to even more bugs.

Eventually, everybody gets fed up and the corporation returns to the legacy system.
Or accepts the "new" system, which is a bloody nightmare - even more so than the legacy system (and fires the incompetent managers, who cheerfully migrate to their next nest... or become employed by the "Mega Beast Corp".

....

I have personally been involved in projects where a team of 5 competent engineers could have completed a blazingly fast new system in record time. The system would have satisfied the customer's demands (and would have done so for the next decade at least).
The customer however (in fact, the customer's managers) always chooses to go the "Mega Beast Corp" way and employ a battalion of "consultants".

Perhaps they are justified in their thinking. Perhaps they have been burned in the past when they tried to do it "in-house". Perhaps a devious subcontractor managed to exercise extortion last time they tried upgrading, and demanded outrageous fees for adding an edit box in a form.

Regardless of the reasons, the result is almost always the same:

Forget what I said in the beginning, about beauty and efficiency.

Meet living hell, meet hacks, meet the software equivalent of tons of stitching tape to make the Mega Beast Hippopotamus stable enough.

In the end, of course, it turns out that the ones that actually do the work are still bright people; only geniuses can cope with mapping the Beast to the customer's needs.

But even they, despair sometimes.
And their lives could have been so much easier.
Their clients' lives, too.



profile for ttsiodras at Stack Overflow, Q&A for professional and enthusiast programmers
GitHub member ttsiodras
Index  CVUpdated: Sat Mar 8 22:58:16 2014

The comments on this website require the use of JavaScript. Perhaps your browser isn't JavaScript capable or the script is not being run for another reason. If you're interested in reading the comments or leaving a comment behind please try again with a different browser or from a different connection.