Updated for 2021!
Software development trends evolve, fluctuate, and transform all the time.
Our industry never stands still.
We started publishing the State of Software Development report back in 2018 to take a snapshot of the software development trends each year. This helps us track how they evolved in the past and to make educated guesses about what might happen next.
The report gives you fresh data to compare your activities against others in the industry. You find insights that help you further improve your software engineering team and keep up with the rapidly changing software trends. Plus, you get to compare the fresh data to previous years.
This post highlights 20 interesting stats from the report. The full State of Software Development 2021 report and the reports from previous years contain even more fascinating insights about software development trends.
Download them here:
In this blog post we're covering:
The data shows that over half of the tech companies were not affected by the pandemic, or its negative and positive impacts evened out. On top of this, only slightly more companies experienced mostly negative effects than the ones that say they went through positive changes.
According to the data, about one in three tech companies was forced to downsize because of the pandemic.
Overall, the software industry didn’t remain unscathed by the pandemic, but it seems to be in decent shape at the moment.
The biggest change brought by the pandemic is the implementation of remote work across the board. Currently, almost every company allows (or expects) employees to work remotely.
We’ve seen remote work spreading over the past few years, but now it’s everywhere in the software industry.
Remote work isn’t just a momentary effect of the pandemic, but it’s also here to stay.
Only about 16% of tech companies plan to switch back fully to working on-site. Over 60% of companies will switch to working with hybrid teams split between on-site and remote employees.
The majority of the participants mentioned that the forced remote environment has made communication more difficult, causing a wide array of issues. Here are the most common occurrences:
The lack of personal touch in a remote environment decreased employee retention at many companies, beyond making the day-to-day work more monotonous and less fun.
Not being able to walk over and talk to a colleague also increased overhead on technical discussions, and minor issues often don’t even make it to discussions. This has made additional meetings necessary, which takes extra time away from software engineers doing focused work.
Overall, remote communication has plenty of room for improvement. If you also struggle with this, check out our podcast episodes on managing remote engineering teams:
Many participants mentioned that working from home has made separating personal life from work difficult.
Many people in the industry have trouble focusing on work with many distractions going on at home that they don’t have to deal with at the office. Others say working extra hours has become regular.
It can turn into a vicious cycle where you have trouble focusing, so you end up putting in extra hours and taking less rest, which causes you to have less focus again.
This is a common issue across the board that may be worth looking into to improve the quality of life for remote workers.
Slower and often lower quality communication, the lack of human interaction, and difficulties with work-life balance in themselves cause extra stress. On top of these, there is a lot of uncertainty everywhere.
This has led to depression and burnout becoming more widespread issues. They may still be less visible, because you only talk to your colleagues during meetings, as opposed to being around them all day in the office.
Mental health issues of any level are certainly real in the current atmosphere, and they deserve extra attention from employees, managers, and senior leadership.
In 2021, hiring became the #1 challenge in software development. It’s great to see that even though downsizing has become a common occurrence, many companies are hiring as well.
Capacity is always one of the top challenges; this year it’s a close second. Outsourcing and hiring more developers are the obvious ways to handle this, so it may be a reason why hiring has become the biggest challenge again.
Knowledge sharing dropped to third place, while time management has become a more common challenge. It may be directly caused by remote work, as many participants say it upsets work-life balance and forces more meetings.
The most important methods our participants use to be able to attract talent are:
Building an employer brand in engineering mostly involves giving back to the community. If you give without expecting anything in return, you’ll end up gaining recognition and building relationships, which makes hiring easier.
Here are the most popular choices to combat capacity issues:
Increasing the available workforce either internally or externally is the most obvious way to increase overall development capacity.
On the more interesting side of combating capacity issues, our participants often implement agile methodologies to streamline the workflow and use customer needs as a guide to better be able to prioritize development.
Engineering managers consider hiring to be a far more important challenge than developers. This comes as no surprise, since dealing with hiring is a responsibility that comes with management.
Capacity is a roughly equally important challenge for both managers and developers.
Time management is another top challenge on a slow and steady rise that is considerably more important for engineers than it is for managers.
Both of these may be directly related to the remote environment making communication more fragmented, and thus difficult.
Let’s get down to the fun stuff, and take a look at programming languages.
Java still came in second, but only ahead of TypeScript by a small margin. TypeScript blew up a couple of years ago, and it’s still going strong.
Python and C# are sitting at the fourth and fifth spot respectively with only marginal changes in percentage.
The continuous growth of TypeScript became obvious when we asked about programming languages companies plan to start using this year. TypeScript became the most popular choice, overtaking Python.
Let’s not forget, the top answer for the question was “Not considering any new languages” with nearly 33%, but as far as languages go, the ones mentioned above are the top choices.
Project management tools are still ruled by Jira. Trello remains in a distant second place as well, but there seems to be a trend emerging.
GitHub Projects and GitHub Issues stepped up significantly compared to previous years. Asana has also gained ground in percentage, even if it doesn’t translate to a jump in ranking.
Communication tools still have email and Slack on top. They swapped places compared to last year, but the percentages are in a similar range.
Microsoft Teams and Zoom have been blowing up in recent years. Barely anyone used them two years ago, and now they’re nearly as popular as Slack. Both had gained a significant market share by early 2020, and the forced remote environment seems to have propelled them to the top.
Outsourcing development is a useful tool to handle short- and mid-term capacity challenges without long-term commitment to hiring a team. The number of companies using it each year is increasing compared to previous data.
Only about 14% were explicitly dissatisfied with the results, and most companies found the results of working with contractors satisfactory.
Hiring developers is a top challenge in the software world, certainly the most pressing challenge for managers by far.
Hiring methods haven’t changed significantly, but there seem to be some emerging trends.
Employee referrals are still the most popular, but by a slightly decreasing margin. On the other hand, hiring via professional connections and LinkedIn seems to have become more popular. It’s worth taking note of, even if it’s too early to say whether this trend is here to stay.
The top hiring criteria have remained largely the same.
Willingness to learn is still on top, but this time only by a small margin. Cultural fit has remained the second most important criteria. Work experience and technical evaluation swapped places, but they’re still close together.
Based on our participants’ experience, employee retention has become more of a challenge in the current remote environment. Overall, the order has remained similar to previous years, but the devil is in the details.
There’s a decreasing reliance on team spirit, which may be a direct result of the COVID-19 pandemic. Remote work has reportedly decreased interpersonal interactions and increased turnover, so less reliance on team spirit seems to be a natural evolution.
There’s also less reliance on challenging work, variety of tasks, and an exciting product, even though all of them have remained important.
On the other hand, more explicit ways to increase the quality of life for employees seem to be on the rise. Creating a software engineer career path, increasing pay, and providing extra benefits have scored higher percentages compared to previous years.
When it comes to developer motivation, top performers put more emphasis on:
The top performers put roughly equal or slightly less emphasis on everything else. Based on this, the biggest difference in motivating developers between the top and average performing companies seems to be that the top performers pay attention to more aspects.
Performance management starts with measuring performance.
The top two metrics are working software and completed tasks for both top and average performers, but more top performers put emphasis on them.
Average performers are more likely to not use any metrics or use a metric like lines of code written.
In the cause of delivery problems, there are a number of small differences between top and average performers. Top performers are more likely to emphasize issues like:
Average performers are more likely to face more fundamental challenges like:
Engineering managers and software engineers have different perspectives on delivery problems.
Managers are more concerned with:
Engineers, on the other hand, are far more concerned with:
Much of this is a natural result of the job. However, allocating more effort to the concerns of engineers may be a winning strategy for managers actively trying to turn around an underachieving engineering team.
This blog post only features a small part of the data from the State of Software Development 2021 report.
We’re excited to keep publishing this report every year and seeing how the continuously changing trends shape the industry as a whole.
If you want to see the full report, follow this link to download it.
Promoting the State of Software Development 2021 survey was a community effort. We wouldn’t have been able to do it without the help of our awesome partners:
🚀 Need developers for your team or project? Hire our experienced Angular, React or Node.js developers! Click here for a FREE consultation.
About the author:
Gabor Zold is a content marketer and tech writer, focusing on software development technologies and engineering management. He has extensive knowledge about engineering management-related topics and has been doing interviews with accomplished tech leaders for years. He is the audio wizard of the Level-up Engineering podcast.
About the interviewer:
Karolina Toth has been working with engineering managers for over 5 years. She is our internal coach, working on the most pressing management-related issues tech companies face. She is the host of the Level-up Engineering podcast where she talks with seasoned engineering leaders from accomplished tech companies.