This is the long awaited part 3 of my toxicity series, have a look part 1 here to give you an introduction to the series.
Sometimes one is quite unlucky to run across this type of person in their career, this is a person who is arrogant, conceited and will bend rules in their favor, they may be talented and have a self belief that their code is gold and everyone else's code is a dung heap which they must refactor. This person creates an atmosphere of fear and ultimately creates resentment of their colleagues. Without further ado let's get to the meat of this article.
So a bit of a background first which started this whole subject off, I was a junior developer at the company where I was working at the time, we had a process of peer reviews, they were rigorous, they had 2 stages, first a demonstration of what was developed and then the code reviews.
On average peer reviews took around 20 - 25 minutes to complete but they were effective and sometimes it would raise questions about ambiguity regarding development of a feature. It also allowed knowledge to be transferred and new coding techniques to be learnt.
However management were getting impatient with the time it took to develop features and fix bugs. Various clients were also unhappy that deadlines were being missed which culminated in a huge meeting with the executive branch.
Out of the meeting there came an announcement of a new role known as an "Elite Developer", the description was as follows:
"An Elite Developer will work on vital pieces for the business, their work will not be be subject to the normal peer review process without written approval from management.
An Elite developer will review other developer's code and is free to critique the code as they please. "
Naturally we were taken back by this course of action, a lot of developers disagreed with this notion however everyone kept quiet, thinking it was a ploy to keep impatient people in management quiet and this "Elite Developer" may never exist.
We had a developer on our team who was a talented coder but could not take any type of criticism of their code, this developer was very immature and seemed very insecure. They would often point out flaws in other people's code and sometimes they were valid and would often result in changes for the better. Sometimes these said flaws were more about personal preference and well the code would have to be changed to avoid tantrums.
Often peer reviews of this developer would result in a arguments, sometimes management would get involved and would often side with this developer. Other developers would be reluctant to review this developer's code and often the junior on the team (ie: me) would do the reviewing. I will say at that point of my career I was not really qualified to do reviews as I had no idea what to look for but I did use this as an opportunity to ask why things were done a certain way and as a positive I learnt a few bits and pieces.
This developer known for being able to deliver features super fast to management was bestowed with the rank of Elite developer and things would never be the same again.
The elite developer committed a huge dump code as their first act and went on holiday, this code was so good that it broke the build. Not only that when people decided to get latest (this was TFS, which is centralised), nothing compiled.
One of the developer decided to email the elite developer to gain some guidance on this mess and this was this was the response we all received.
I think the stupid build guys have destroyed our build again, go get those brainless morons to fix it
Thinking of you lovely guys,
One of developers pointed out that the code would not compile on anyone's machine and alerted both management and the elite developer. We decided that with the elite developer on holiday, we backed out the elite change and were able to actually do work again.
Teams were juggled over the years and I was finding myself having to explain a piece of functionality written exclusively by the elite developer to someone on my team, when I opened up the code in front of them and we were both lost.
The code was quite complicated to understand, had inline code obfuscation, invoked assemblies dynamically, could not be debugged easily and further more the error messages that came out from this functionality were utter rubbish.
I thought I was just not experienced enough to tackle this mess, so I got another developer who was on the team the same time as the elite developer to explain the code but they even struggled.
In the end the only person that could discern this overly complex code was the elite developer themselves. We were talked at, came away more confused than when we started. In the end we decided to leave the Elite developer's code alone and go another route with development.
Looking back at this now, I would question why management created a separate tier rather than seeing the merits of the peer review, scrapping peers reviews for certain developers is heavy handed and really didn't shave off any time, instead it created confusion later on down the line.
I guess the lesson learnt by this, is peer reviews have a lot of value, they can catch things before they go out to the customer, creates conversation about the feature and can be used to spread knowledge around