Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why would you make a junior developer develop an entire shopping/order module to a CMS? Because f that particular developer who happened to be me in the beginning of my 20s, in my first real job as a programmer.

I used JS, C# with NHibernate and lots of weird HTML and CSS to create something which satisfied all the requirements I've been given. But guess how good the code was? We had zero review process except someone looking over your shoulder by chance and quickly distancing themselves as what I then thought to be the "any code I didn't write is bad code" attitude.

I did the "just ship it" thing before it was cool. Views accessing database? Lots of those. Classes skipping dependency injection and instantiating random god classes to achieve all the things? Plenty! Using extremely complicated and dog-slow JS when a couple lines of CSS could do? Sure! Converting numbers to floats to decimals then back to floats then to string then again to god knows what only to store integers in the database? Got you covered!

Then the customers wanted more and more features, and when I was doing ERP integration (really!) I finally thought I needed some guidance. Oh the humble me!

I went to the lead developer in our department because those other inexperienced (!) developers wouldn't have understood the challenges I was facing. He took the time to listen to me, and as I was having my first "rubber duck" moment, his face started to change. We later sat at my station and the horror in his eyes when I was passionately explaining the "intelligent code" I've written was remarkable. He ended up creating a task force and rewriting the whole thing later.

A year or two later, he was doing a presentation of the state-of-the-art review process "he designed" (pull requests), and used my code to the same effect as those WAT moments in the "The Birth & Death of JavaScript" speech by Gary Bernhardt[0].

Funnily enough, I never took offense. To be honest I didn't know how to feel. What I knew was that a lot of customers were complaining that it took way more time/budget to develop features for the order module and nobody understood why we had to take a few steps back out of nowhere when everything was going so smoothly.

Now being a technical lead myself, I know the importance of not just reviewing code, but reviewing the circumstances and trade-offs that lead to that code being written. Actually, reviewing those is much more important than reviewing the code itself. More important is to have linters and other tooling review code, not people.

I know this post is more about what you create being hated rather than how you created it, but I just wanted to get this off my chest, and thought it could still be relevant :)

[0]: https://www.destroyallsoftware.com/talks/the-birth-and-death...



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: