Are You a Developer
My friend, Mark Woodman, wrote an article about the frustration with shortcuts developers often take. It really hit a nerve with me. I too would bristle at the suggestion to delete an annotation and “get back to work” without first understanding what was the original intention of the annotation and - perhaps more important - what are the consequences and side-effects of it’s removal. In fact, I think I’ve bristled my way out of several jobs over stuff like this.
Shortcuts are almost never about time. It’s about your craft. If your goal is writing good software, it’s not enough to just get it to compile. Any monkey can write code that compiles. It’s about writing software that works as it should. It’s about writing software that can be maintained by other developers. What am I supposed to think when 1/3 of a source file is commented out and there is no comment explaining why? The time someone saved not commenting a hack like this is lost ten fold the instant another developer has to touch the code - to say nothing of the loss of quality.
Software is hard work. But, if it’s your job, it’s not too much to ask for you to become familiar with any API’s you are using. It’s not to much to ask that you learn the idioms and patterns common to the language you are developing in. It’s not too much to ask that you have a greater than passing knowledge of the specifications you are coding to. This is no different than expecting a carpenter to know how to paper a window, a veterinarian to know how to prescribe a stool hardener, or a cook to know how to cut an onion.
What web developer doesn’t have the time, energy, or interest to understand the HTTP protocol? Why can’t I put &’s in my XML data? See the spec. If you’re writing a JSP, print out a handy reference card. You should know how and where to find these things.
Like Mark, the excuse I often hear is, “Who has time for that.” The answer isn’t about time. It’s about interest. It’s about caring about your craft. It’s about character and having the integrity to know when you really don’t have time to do something right, and when you are just taking a lazy shortcut that someone else will live to regret.