This is one of the hardest things for me to do. I think it’s probably hard for many, many programmers and is the root of over-engineering.
It’s interesting and engaging to write code that does something interesting. But being able to just simply switch off that jones for all things clever in order to write code that does things which aren’t very clever, but are nonetheless absolutely necessary, is something I find difficult at times. When I’m unable to do it I find I make things more complicated than they should be. I find myself down a rabbit hole, unable to clearly see the next step. This is because there isn’t another step to be taken in the forward direction. It’s time to turn around, rethink the problem I’m trying to solve, and simplify the code in order to solve the problem quickly and with clarity.
I’m not big into writing programmer manifestos, sets of commandments or treatises on how to be a great programmer. But this is one observation that I think can save a lot of programmers a lot of time.
I've got a masters degree in computer science and over 10 years of experience building web-based systems using Java/J2EE, Ruby, Rails and PHP. I'm a strong believer in the effectiveness of Agile Methods. Read more »
Writing Code That Isn’t Clever
This is one of the hardest things for me to do. I think it’s probably hard for many, many programmers and is the root of over-engineering.
It’s interesting and engaging to write code that does something interesting. But being able to just simply switch off that jones for all things clever in order to write code that does things which aren’t very clever, but are nonetheless absolutely necessary, is something I find difficult at times. When I’m unable to do it I find I make things more complicated than they should be. I find myself down a rabbit hole, unable to clearly see the next step. This is because there isn’t another step to be taken in the forward direction. It’s time to turn around, rethink the problem I’m trying to solve, and simplify the code in order to solve the problem quickly and with clarity.
I’m not big into writing programmer manifestos, sets of commandments or treatises on how to be a great programmer. But this is one observation that I think can save a lot of programmers a lot of time.