Many years ago when I interned for a large software organisation I spoke up about bad code.
On my first days as an intern I received my assigned project. I pulled the project from GitHub and opened the file, a monstrosity of over 2000 lines of poorly written, undocumented, uncommented, and untested code of an ExpressJS application. I spent literally 2 months in an attempt to refactor the code to allow me to add new features.
I discovered that the previous intern who wrote the original code qualified as an Electrical Engineer not a Software Engineer. After I heard that I understood why the individual failed to follow best practices. I am sure I would struggle to follow best practices if I attempted to create electrical schematics as I lack an Electrical Engineering degree. Stick to your lane!
As I trudged through the murky code another full time employee who sat adjacent to me asked about my progress on the project. I replied honestly and said the previous intern wrote the application very poorly. At first he seemed quite surprised but continued to listen to my feedback about the project and why I thought it seemed poor.
I thought no more about this conversation, I told the honest truth and provided valid reasons. I moved on. Weeks later I spoke with another employee about my future and that I wanted to stay on with the organisation, he replied with sass that he thought I needed to work on my people skills. I asked what he meant by the comment and he said that word went around the organisation about what I said about the code of the previous intern, he said many people found it distasteful and disrespectful. Many people knew and still worked with the previous intern and found it offensive and rude.
Back then as a timid intern I scrambled to apologise and ensure that no one hated me, I only told the truth, the previous codebase sucked, I meant no offence. In the project I almost started from scratch again how much I changed, the previous intern left it in an unmaintainable state that consumed the majority of my internship to refactor. As I continued to intern I felt terrified to raise any other criticisms or problems otherwise I risked the loss of any potential job opportunities with the organisation.
In my opinion this situation represents the decay and inevitable death of an organisation. If everyone lies through their teeth about the quality of the work of others through fear to offend someone then poor quality work will spread like a plague.
An intern provides an opportunity for someone young with fresh eyes to enter an organisation and highlight any problems or potential improvements. An unbiased and new set of eyes. What an invaluable asset, an opportunity to improve the organisation for everyone. Instead some organisations begin to harvest a culture of yes people that allow poor quality work to pass through and slam those that provide valid criticisms.
If a new person joins my company Sanico I want to know of problems, I want to know things to improve. I would show extreme scepticism with someone that says that no problems or potential improvements exist. Lies.
These days people even hire me professionally to audit their code, which in other words means to critique and criticise their software based on my professional opinion. Before I accept any work like this I always ensure that I explain that I provide unfiltered criticism. I know none of the developers personally, I speak only of the software. If another software developer becomes upset, it ain’t my problem. I provide honest and unfiltered criticisms which is why another organisation pays me in the first place.
Unpause and fast forward many years later.
The parent organisation of where I used to work shutdown the entire office, the majority of the employees lost their jobs. I am not sure the exact reason why they decided to close the office but I will say no organisation in their right mind shuts down an office if it provides direct and tangible value. I am sure the employees offended by my comments all of those years ago felt more upset and offended by the loss of their job. A potentially unavoidable issue if the organisation harvested a culture of open dialogue and listened to the valid criticisms of young interns.
Note, I purposefully censored the name of the organisation of where I worked as it provided no value, I wanted to illustrate the point that organisations that open themselves up for internal criticisms harvest a culture of continual improvement, in my opinion. I used my personal story to illustrate this point rather than to bag my previous employer.