Backward incompatibility

After reading Jeff Smith’s Programming is a funny thing article I felt the need to comment.

As a strong advocate about simplicity I was according to the fact that “experts” writes clearer code then beginners. But I think Jeff missed the point when he said that in the software industry, beginners gets all the hard and big projects. They make it hard by their selves. For years software developers have been solving similar problems over and over. That’s why we end up with design patterns, frameworks, libraries, etc. But to be selective with all those tools, you have to know them. Software “experts” know them because they’ve been around for a while, so they know that for this kind of problem you do this kind of thing, and whoop! You’ve just divided your project in half the complexity and time and LOC and … Fred Brooks mentioned in his famous No Silver Bullet article (published in 1987) that all low-level problems had already been solved.

Sure knowledge is not everything. You could still have someone with 20 years of experience under his belt, knowing all about everything, but unable to select the correct solution for a given problem. You need to be good at synthesizing all that knowledge too.

I think I can sum this up like this: you’re not an expert when you can solve a problem, but when you can choose the best solution to that problem.

(I would have loved to put a nice analogy with some other industry, but yeah! I only work in the software one)



Filed under Misc

3 responses to “Backward incompatibility

  1. Anonymous

    Thanks for the response, Marc — but I was not saying that beginners get big projects and experts get smaller projects. My point was that the *code* written by beginners often becomes needlessly bloated and complex because they ignore the basic concepts; experts write code that embraces basic concepts and is shorter and much clearer.

    Essentially, the beginners struggle with large, unweidly programs in which simple changes require lots of time and effort and they, in effect, work much harder to get their job done. Meanwhile, a really good programmer usually barely needs to break a sweat if they know what they are doing, and they seem to work much *easier* than the beginner. Even though, of course, the veteran programmer is working on much larger, more complex *projects* than the beginnner.

  2. Anonymous

    oops, sorry, that last post was by me, Jeff, the guy who wrote the SQLTeam post. 🙂

  3. Anonymous

    This site is one of the best I have ever seen, wish I had one like this.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s