It's Not Sabotage, They're Drowning
Between sabotage and people wanting to sink the lifeboat, I have a third option:  These people have a warped perception of what&#x27;s happening and priorities around what&#x27;s happening.  Warped by their own irrational beliefs which have come about as a result of cognitive dissonance reduction.  Initially, they can see how messy &amp; bad things are but since they, themselves, are responsible for things having gotten to that point, they start bending their own beliefs in a way that will make themselves and their past actions look good.  In the final phase of this psychological process, some kind of Stockholm syndrome kicks in in relation to the poor standard of engineering that is making their lives miserable:  They start to actively seek out poor engineering because it&#x27;s the only mode of existence that their psyche will allow them to fathom.<p>Warstory time.<p>A tech company I worked at was being encumbered by a codebase with poor code quality.  Bugs were being introduced all the time, with no chance of preventing it because nothing is testable&#x2F;tested.  Bugs were introduced at a faster rate than they were fixed.  The whole system was a timebomb because it was built in a dying ecosystem.  For certain kinds of code changes, their effect couldn&#x27;t even be made visible at development-time at all.  You had to release them into the production system and look at metrics to see their effect, hoping that nothing would blow up, so the system was layers and layers of code that was trying to be minimally-invasive with respect to existing code.<p>Whenever an engineer would be newly hired, they would, within their first week of working there, suggest &quot;Let&#x27;s take a month to refactor this&#x2F;that part of the system&quot;.  When an oldtimer would hear the new guy say &quot;refactor&quot;, their warped perception would hear &quot;accomplish nothing&quot; or &quot;threaten our mode of existence&quot;.  They would give the following speech:  &quot;Hey, get it in your head, noob:  We don&#x27;t do that here.  This company is not focused on code quality, it&#x27;s focused on a mission.  Every week we come to work and we accomplish a part of a mission.  I <i>KNOW</i> the code is probably the worst piece of shit you&#x27;ve ever seen in your 20 years.  [This company only hires extremely experienced people].  The engineers who work here are all on board with our mission-driven culture and pride themselves about their skill at dealing with the shitty codebase.  Your suggestion tells me that you can&#x27;t deal with it, and you are unwilling to absorb our mission-focused culture.  You will not get a career out of working here, unless you properly absorb that element of our culture&quot;.<p>So, in their mind, they&#x27;d taken &quot;shitty codebase&quot; which is a negative, and turned it around and made it into a religion about a &quot;mission-driven&quot; culture which is a positive.  [Cognitive dissonance reduction at work, right there].  The reality was, of course, the poor code quality was a huge drag on this company&#x27;s ability to accomplish a mission of any kind:  Because changes that took their competitors a day, took them a week.  Changes that their competitors did in a month, would have been a suicide mission for them and they therefore rationalized their way out of even wanting to do them.  ...but I wouldn&#x27;t recommend to the newly hired engineer in the story to mention that particular elephant that was in the room.<p>Now, here comes the really sick part, where the picture of the drowning man falls apart:  From time to time, due to a rare alignment of circumstances, this company might be <i>forced</i> into a situation of starting an implementation of a new element of the system with a clean slate, i.e. completely unencumbered by the current codebase.  They would <i>intentionally</i> implement the new codebase to be just as shitty as the legacy code.  They would implement it in the dying ecosystem.  They would generously insert unreachable code.  They would pursue the fastest path towards making it untestable.<p>Now, under normal circumstances, if I hear someone telling that story, I would suppose there might be a motive for this.  For example, I&#x27;ve seen developers in hedge funds intentionally rig a system to explode if they should ever be forced out of the company and be as hard as possible for anyone else to fix, for obvious reasons having to do with their incentivization structure.  But that&#x27;s not what was happening here.  They had a culture of openly sharing knowledge of the system, were hiring new people all the time, and working hard to bring them up to speed about the system&#x27;s working etc, so it wasn&#x27;t that.<p>My guess is that it must be the &quot;Stockholm syndrome&quot; element I mentioned:  They started to develop a psychological attachment to a poor standard of engineering.  It was making their lives miserable.  But it was also the only existence they knew and they felt was available to them, so cognitive-dissonance reduction was maneuvering their psyches into actually favoring that mode of existence.<p>Some might have said things like:  &quot;One day, after we&#x27;ve grown enough, we will do a complete rewrite.&quot;  Or &quot;Any day now, we might be acquired by another company and will leave all of this behind&quot;.  But it was more in the vein as when a religious persons speaks of a glorious afterlife.<p>There is a lot of really sick shit that the human psyche is capable of, and sometimes it surfaces in engineering.  I think that&#x27;s my takeaway from all this.