There is a great quote in the movie “Ratatouille” from Disney. It is made at the end of the movie when the food critic, Anton Ego, has an epiphany.
In the past, I have made no secret of my disdain for Chef Gusteau’s famous motto, “Anyone can cook.” But I realize, only now do I truly understand what he meant. Not everyone can become a great artist; but a great artist *can* come from *anywhere*.
I would like to apply that to writing software code. “Anyone can code”. I do not mean that everyone can write great code, but that a great coder can come from anywhere.
We have all met him/her. The person that decided to become a computer programmer because they want to make a lot of money, or they want to write apps, or they want to program games (‘cuz hey, if I can play games, why can’t I program them?)
Then they come to your project and throw all standards to the wind: readability; maintainability; thoroughly tested; formatted. They turn your work of art into a soup sandwich. You spend half your time trying to figure out what the heck they did that blew up the home page.
My real life example:
I recently am having the “joy” of going through some existing code on a Grails project that was written by an independent contractor. I will not mention who that individual is, but needless to say, I would not request a connection on LinkedIn.
This individual has been an independent contractor for over 10 years, according to his website, and has done work for some rather large and big name companies. I briefly met him about 11 months ago and was at first impressed that he managed to get a contract with this famous company and thought that he must be pretty good. In the couple weeks that I worked near him, my opinion of him was that he was a little unprofessional and a little too chatty. By “chatty”, I mean someone who has way too many ideas floating around in his head that are based on opinion and not fact so he fills the space around him with random subjects. When I was introduced as someone who primarily works on Java Enterprise applications, he seemed offended somehow and asked what made me an enterprise developer and him not (even though nobody said he wasn’t).
So here I am, almost a year later and I was brought in to do some maintenance. As my profile states, I am primarily a Java guy so I have a slight learning curve for Grails. This doesn’t mean that have no idea what good Grails code should look like. The first thing I noticed was a lack of standard formatting. It seems like his coding style was like his talking style… it just flows any which way
As I delved deeper into the code, I noticed a lack of organization. Single blocks of code that were in excess of 1000 lines and did several different things. Other places a single line would actually be a combined if/else statement separated by semicolons. I groaned inside when I saw that one.
So clearly, anyone can write code, but not everyone can become a good programmer. If anybody actually reads this blog post. Feel free to post your “favorite” piece of horrible code you have run across.