The Silent Slayer of Tech’s Future

Photo by Scott Webb on Unsplash

Something is killing tech companies from the inside. It needs to be handled and needs to change quickly.

That one thing is the culture of short-termism that is having devastating effects on quality, team dynamics, and innovation.

This isn’t just about tech debt but is a culture that needs to change if we are to thrive as software developers in this industry.

Short-Term Thinking

This sort of thinking is becoming the go-to for software developers no matter the level. I know some developers are starting to think they don’t need to write good code as they won’t be there come production time. It’s a lack of pride in work and I’m as guilty as anyone about doing this.

You know in some situations; you are better as a developer having this attitude because the total number of hours spent hacking and taking shortcuts is lower than it might be if you adhere to design practices. 

Yet most projects have a longer time horizon than the magical point x in the graph above. That is your product, and the company will likely last long into the future, and your hacks and shortcuts will end up costing you time as a developer.

For companies, a short-term attitude is multiplied across all developers and decisions. If the choice is the wrong one this can end up with developers and companies putting their very existence at risk.

Here are the ways short-term thinking can happen in software development, and what we should do about it.

Tech Debt

Tech debt and the reluctance of the industry to tackle it is a real problem in the long term.

Issues pile up over time and the time to push new features increases.

How to change it

We should give developers time to tackle tech debt. We should empower them to make their code environment better and to make a change in their own codebase.

Testing

One of the first things to go when the pressure is on is testing. My colleague just said “Singletons can’t be mocked for dependency injection”, they are a senior developer who struggles to code to interfaces (apparently) and isn’t interested in learning “because it takes too long”. 

In other unsurprising developer behavior I’ve seen lines of code declared tested with false positive tests that fly through code review without scrutiny. 

This isn’t just laziness; it’s a symptom of a pervasive issue where the pressure to deliver quickly overrides the need for quality and due diligence. Doing things well and to a high quality takes time, but it is something we will pay for in the future (given a long enough time horizon).

How to change it

We should enforce standards for the percent of code that should be tested. We should have a code review to check for false positives and actually pay attention to the code during that review.

Golden Handcuffs

This short-sighted approach isn’t limited to tech practices; it permeates through workplace culture and strategic planning. The allure of remote work, for instance, has created a “golden handcuffs” scenario where employees, despite being disengaged and unproductive, stick around for the perks, stifling their own growth and the organization’s​.

How to change it

Companies should implement policies like Amazon’s ‘Pay to Quit’ Program to help developers move on when it is time. Nobody wants a code smell hanging around, and developers who want to leave become just that.

Agile

This culture of box-ticking and superficial adherence to rules has infected Agile. The result is a semblance of productivity and progress, but a reality marked by disengagement and stagnation.

I have to say I haven’t had the opportunity to attend a sprint retro for 6 months or so. That can’t be right.

How to change it

Take Agile seriously and think about why we need to take part in Agile ceremonies and how to iteratively improve over time. After all, that is what Agile should be.

The Common Theme

This all boils down to one thing. There is a pervasive short-termism that prioritizes immediate results over long-term improvement. This mindset, while rewarding at the moment, is detrimental to the enduring success and innovation of tech organizations​​.

The solution isn’t straightforward, but it starts with a shift in mindset. From leadership to the ground level, there needs to be a collective move towards valuing and rewarding long-term thinking and sustainable practices. Only then can we hope to escape the short-termism trap and secure a healthier, more innovative future for tech.

It should all be about iterative improvement. We should be getting better over time and producing better outcomes. It has to happen. Please tell me it’s going to happen…

Previous
Previous

“Keep It Up” is Manager-Speak for Leave Me Alone

Next
Next

Unraveling the Mystery of Last Year’s Code