This evening after work I was walking home listening to a podcast where one panelist used a great metaphor for distinguishing between new and experienced developers: building a tower.
He said that regardless of how great of a programmer you are, newer developers tend to build towers. That tower could be absolutely immaculate but the question is, would it fit in a city. Could you build that same tower and have it integrate into a massive city.
Well, while walking along, I started thinking about a new feature I made for a web app at work. I built Tower. Whoops.
I recently started reading Joel Spolsky’s blog, Joel on Software, and one of the first posts I read was Things You Should Never Do, Part I. In this post, Joel says something very simple, but very powerful:
It’s harder to read code than to write it.
Yeap. So true. When I started my job at the IPM Institute, I came in plenty of (over)confidence in my abilities. I looked at the code base for the Pesticide Risk Tool (PRT) and wanted to tear it down and rebuild it. For sure, I can write this better than former-programmer-no-longer-with-the-organization, he thought, naively. Let’s rewrite this bad boy.
That was two years ago. I still have those feelings from time to time, but I’ve come to realize that this thinking is super naive. Most of the time, you shouldn’t scrap all of what you have and rewrite it. Read that Joel Spolsky article above.
So listening to this podcast, I realized that one major feature I contributed to the PRT is a tower. It’s a huge, beautiful, powerful, non-integrated tower. I love it, but now I’m realizing this to be quite a weakness. I suppose this is a good thing though. Getting better. Onward and upward.
Okay. Let’s see if we can move this massive tower into the city, the big, messy city that is a huge web app.
The podcast I was talking about was Episode 124 from Adventures in Angular, “From Junior to Senior Developer”