It looks like you are using Internet Explorer, which unfortunately is not supported. Please use a modern browser like Chrome, Firefox, Safari or Edge.

Why do developers want to hurt themselves with cargo cult development

Published in Technology

Written by

Petri Kainulainen
Software Architect

Petri Kainulainen is a software architect who has over 20 years of experience in different software development projects. He is interested in automated testing and is always looking for new ways to improve the ROI of writing automated tests. Petri has been writing technical articles for years; you'll find him at petrikainulainen.net.

Article

December 1, 2022 · 6 min read time

Cargo cult development is, without fail, the wrong approach. Why is it so alluring then? We need to look at the IT industry and its practices, as well as take a good hard look in the mirror. To find the cure, you need to understand the whys.

Cargo culting = the act of producing code or design without fully understanding it. See more in part 1: How are cargo cults born and how to resist temptation of quick fixes of the article series. 

Most developers I have met take great pride in their work. That is why it’s surprising that some people are doing cargo cult development when it hurts them in the long run. There are no definitive answers, but here are some of my thoughts and experiences on the matter.

It starts with the job market

Some employers put a lot of pressure on both job applicants and employees and this behaviour has negative side effects. These side effects are:

Talent shortage  

Employers constantly communicate that they cannot find employees and blame talent shortage. This talent shortage in the job market has led to people switching careers and becoming software developers.

Although every software development team can benefit from a person who has strong domain knowledge, domain knowledge alone doesn’t make anyone a proficient software developer. 

If employers hire people who have strong domain knowledge and little software development experience, they must lower their expectations and let these people grow at a sustainable pace. Otherwise, these people start practising cargo cult development because they feel pressured to get things done.

Unrealistic expectations by employers

Employers publish job ads which have unrealistic experience requirements. This is a bad practice because of two reasons: 

  1. Some people believe that you have to fulfil all requirements to be hired. This means that they have a very strong incentive to have a shallow understanding of the required technologies so that they can claim to fulfil the requirements. If you hire them, they will practise cargo cult development to live up to the partly false promises they made.

  2. People are encouraged to apply, even if they don’t fulfil all the requirements. Even though the employer knows that the person will be slower in the beginning, as they need to catch up on the required skills, the employee may feel they need to step up to the plate. In this situation practising cargo cult development can be tempting because this will help them feel productive.

It’s tempting to play the CV game

I have worked in the IT industry for over 20 years. During this time, software development has become both simpler and more challenging. We have more tools than we used to have, and these tools can make software development easier if we know when and how we should use them.

Sadly, at same time, the IT industry has fallen in love with something I call the CV game. This game aims to build an impressive CV that helps you brand yourself as a unicorn who can basically select their next dream job or consulting gig. These unicorns are highly sought after because they are easy to sell.

The only problem is that becoming a true unicorn takes a lot of time. That’s why it’s extremely tempting to take a shortcut in cases like these:

Junior developers don’t get enough time to develop their skills 

if you are a student or have switched careers and have yet to find a job at a company with a training program for junior developers, you might be in trouble. It’s hard to gain a deep understanding of the required technologies if you have to do it on your own. 

Because you still have to pay the bills, it’s very tempting to try to fake it until you make it.

If this approach works and you score your first software development job, you might regret taking this route. You will have to spend a lot of energy hiding the fact that you don’t have the skills you claimed to have.

The employer doesn’t allow worktime for skills development

If you work for a consulting company, your employer assumes you keep your skills up-to-date. However, not all employers allow you to use work time for learning new skills.  

Because software development requires continuous learning, people must be allowed to learn new things when they are on the clock. If employers expect that people will study new technologies in their free time, most employees won’t do it. If these people have to use a technology unfamiliar to them, there is a high chance that they will practise cargo cult development.

We need a good, hard look in the mirror 

It’s not fair to put all blame on external factors such as employers, recruitment agencies, customers, or the IT industry in general. That’s why I want to end this article by identifying reasons professional software developers end up doing cargo cult development. These are:

Farewell to jack of all trades, master of none

The constant (and in some cases rapid) development of programming languages, frameworks, and libraries means that no one can be an expert on everything. Some people become anxious and start to doubt their skills and ability to do their job.

These people might practise cargo cult development at least sometimes because getting things done as fast as possible can make them believe that they can still learn new things or that they can still be as productive as the person next to them.

The cure is to accept that developers cannot be the masters of everything and concentrate on mastering a limited set of tools they use in their daily work.

Resist groupthink and celebrate in critical thinking 

People are often looking for easy answers to hard questions. Many developers and architects are building their brands by writing articles and recording videos which describe why a specific architecture style or design pattern is the best thing that has happened to humankind. These social media influencers have become a kind of superstars who have followers and fans.

Unfortunately, this has led to a situation where the value of an opinion depends on the person who presents it. For example, it's quite common for people to give more weight to social media influencers' opinions than to an unknown developer's opinions. A large following can deceive – it can be easy to forget that influencers err the same as everyone else. If you don't approach these offered solutions with a justified dose of scepticism, you may fall prey to the lure of cargo cult development.

Assess whether you are cut out for the job

Some developers are just not cut for the job they are in. Not everyone can become a professional software developer. It’s vital to admit that some people will never be good software developers because they don't have the required analytical mindset. Also, it’s equally important to understand that this doesn’t make these people any less valuable. It just means that these people were born to do great things in other roles or other areas of life. 

Above we’ve explored the reasons why cargo cult development happens in the first place. In my next blog posts, I will give some tips to software product organizations and product owners, employers and developers on how to nip the lure of cargo cult development in the bud. 

In this article series, Petri dives deep into cargo cult development, covering developer, employer and customer perspectives. In the first article, Petri covered the pitfalls of cargo cult development. In the upcoming articles, we’ll have insights into on how employers can avoid cargo cult culture, and Petri talks us through the benefits of sustainable code for customers.


Written by

Petri Kainulainen
Software Architect

Petri Kainulainen is a software architect who has over 20 years of experience in different software development projects. He is interested in automated testing and is always looking for new ways to improve the ROI of writing automated tests. Petri has been writing technical articles for years; you'll find him at petrikainulainen.net.