Skip to content

The Importance of good Code

I’ve been in shock for a while about how little importance is given in
some fortune (insert number here) companies, to the ability or act of
coding.

Much have been said about how programmers need a quiet, interruption
free environment. Yet we find that in most companies including those that
purport to create software, give very little importance to the aspect of
programming, in some cases and I’ve been told this to my face, it’s the least important.

This post is not about whether programmers should have an office with a door,
instead of cubicles, or about special treatment for programmers. No, this is
about the state of mediocrity in software, and the cause of it.

What good is it, to have a well designed application, if the code is not
up to the level, of the design?

Projects fail for a lot of reasons, and most of the time, the most
experienced or just plain good programmers, will notice this, and usually
will leave the place before it goes down (They leave, because management
does not listen to him).

It is said that programmers have big egos, some do. Some just use this as a
front, so people don’t see their failings, but that’s another topic.

Programming is a discipline, an art form, it’s not enough to know
Algorithms, Data Structure, Math, and several programming languages.

Any one can learn all the above and more, in fact a lot of people have degrees
in Computer Science, even Master degrees, and don’t know what a Hash
Table is, other know not only what Hash Table is, but the math behind it, but
still are not good programmers.

Let me make a comparison to music. I teach Classical Composition. Every
single one of my students knows the basics of music, and more. Most human
beings know the basics of music: Melody, Rhythm, Harmony. Most of us have
tastes, and according to them discern the good or bad music.

If we put the logic that most big companies use, every single one of my
students should be as good or better than Beethoven, Mozart or Bach.

Some of you will be thinking well duh, those guys were really talented!

That’s true, they were. But talent alone wouldn’t have enabled
them to be great, even (talent + knowledge) is sometimes not enough! You
need to work, like all artistic endeavors it’s a craft, maturity,
experiences, failures and success. Going beyond the limits, breaking
free from all the rules, and inhibitions is what made, Beethoven the
Beethoven we know. There are other factors that weight in as well,
the culture, open mindedness, all bears in the success or the failure
of a great composer.

The late string quartets from Beethoven, stretched
the limit of what was then the rigor in music, and hence were not appreciated
in the same ways as his early quartets were, or his Symphonies, and even the
Symphonies were innovative, as he stretched the musical themes, and development,
making most of his work too long, for what they were used to at that time.

Great composers, have a need to compose, they can’t live with out the
act of creating, and yet in every piece of music, whether a Symphony, or
a Prelude, they put their soul, life, and blood into them.

As such great programmers, work hard, they read, they research, they try
things that fail, and learn from those failures to make better
applications, better code.

Companies don’t value this. They are not interested in this, this is just wasted time
to them. To them failure, is just failure.

They don’t see the advantages of failing early, to avoid failing later. They don’t understand
that there are a hundred ways not to do something, but just need only one good way.

It takes time, creativity, concentration, and skill.

Great designs, with bad code, is just plain bad; Great code with a bad
design, is at worst mediocre.

2 Comments

  1. Well said my brother. Now, how do we go about changing the matter towards a more positive outcome?

    Posted on 25-Sep-07 at 8:29 am | Permalink
  2. Well, the answer to that can be and it’s probably a utopia. I will be writing about several ideas that I believe can be solutions or at least alternatives.

    Posted on 25-Sep-07 at 10:42 am | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*