It is a beautiful right of passage for a bright-eyed junior developer to join a team, take some tasks full of enthusiasm, and have the life and joy sucked out of them one sprint at a time. Soon enough, they sit in planning meetings, miserably complaining, accusingly asking who wrote that shit.
Their transformation to a full team member is complete. They have become one of us.
I was once that bright-eyed junior developer. Many encounters with PHP4 later could no longer look forward to creating new features. Instead, I looked back and complained about old ones. Trashing legacy software is fun. It creates camaraderie. Who wrote this? What were they thinking? Looking at the commit log showed names that meant nothing to me. Ghosts that moved on long ago, leaving nothing but their shit code.
One day, I was pair programming with my friend Torben. Torben was a senior developer who introduced me to the team months earlier. When I found some weird code, I followed the tradition. Who was dumb enough to write this? I opened the commit log, and for the first time, I recognized a name: "Torben."
Since then, I remind myself that legacy software is written by people like me. Torben had constraints I knew nothing about. He worried about deadlines long past. Torben had learned a lot since then. Development workflows had evolved, infrastructure had gotten better.
And to all the junior developers who have complained to my face about my trash code: I forgive you, I understand.
You can reach me online at https://heltweg.org.
Top comments (4)
Eventually, I come to realize, a lot of the code I write is "shit". But I do press on, writing more "shit." It's always going to be "shit" to someone.
Now, I've been on both ends of the code review cycles numerous times, and have managed to convince people that most of the code I write (or think about in my head) isn't "shit" on both ends of the spectrum.
However, I've also seen remarkable projects completed by people whose code I would consider "complete shit," and you know what? That was inspirational to me. It meant, that despite all the odds, they did something awesome with their "shit" code and made something beautiful out of it.
Yeah, like all other documents or content we create, it is just a result of our current experiences, constraints or environment.
Dev's most likely write "shit", when they are forced to hotfix, because of "time to market" or because of dependency constraints in the project.
I recommend the book Clean Code.
It starts off by laying the blame at the feet of those responsible: us.
I can relate to this :D
One day when I was looking for "who wrote this shit", it turned out to be me.
Needless to say, from then on, I don't check that anymore.