Updated for 2019! See the archived 2018 edition here.
Software development evolves super-fast.
A tool or framework used today might be obsolete tomorrow. Our intention is to take a snapshot of the industry, track how it evolved in the past and make an educated guess as to where it’s heading.
To better understand these changes and to uncover the biggest challenges and best practices, we started publishing the State of Software Development Report 3 years ago.
This year’s report will not only give you the data you need to benchmark your activities against other survey participants, get some insights to further improve your developer team and keep up with the rapidly changing industry, but it will also compare the changes to last year’s data.
This post highlights 10+ interesting stats from the report. The full state of software development 2018 and 2019 reports contain even more fascinating insights about the software development landscape.
You can download the full reports for free here:
What's in this post?
Note: if you find it hard reading the charts, feel free to download them here.
In 2019, the biggest challenge tech companies are facing is related to capacity: delivering working software while the backlog is full and capacity is limited. This is closely followed by sharing knowledge.
We were curious if there was anything they used to try to overcome these challenges. Here is what they said.
Capacity
There are several ways respondents are trying to overcome this. The most popular one is hiring more people so more developers can get more things done. The respondents said the other significant part is implementing agile methods; prioritizing development and improving productivity is their way to battle this challenge.
Sharing knowledge
One of the most popular ways to share knowledge within the developer team is to hold a dedicated knowledge sharing session such as brown bag lunches, meetings, and
tech talks. Another popular way to share knowledge is through code reviews and by having internal wikis/documentation for the team that can be hosted on any team collaboration tool.
In 2018, we split this data into two groups: developers and managers since the
nature of the two job categories are different, making their challenges different as well.
Results? See it for yourself.
The biggest challenge developers are facing is sharing knowledge, followed by dealing with capacity issues.
Compared to last year, things changed a bit.
In 2018, developer respondents said the biggest challenge they were facing dealt with capacity issues, and they mentioned time management as they second biggest challenge.
Based on the 2019 data, managers’ top challenge is also related to capacity (24.32%), but they mentioned hiring (20.67%) as their second biggest challenge. No surprise that hiring comes as the second biggest since it is the thing managers need to deal with.
In contrast, in 2018, managers found it hard to hire talent (33.55% said it was their biggest challenge) and also to deal with the lack of capacity (28.29%).
Outsourcing Software Development
When companies are lacking talent, a hands-on way to overcome this challenge could be software development outsourcing.
Our question was: Have you outsourced software development fully or partly in the last 12 months? And 66.62% of the participants answered yes.
From those who said yes, the majority (57.3%) worked with a software development company, 21.1% with freelancers and 21.6% worked with both in the last 12 months.
Programming languages
It’s exciting to see how newer programming languages are gaining momentum and climbing up on the popularity ladder. We compared the data from 2019 to 2018 to see how things are changing.
In 2018, the most widely used programming language was JavaScript, with 60.73% of the respondents using it. The second most popular is Java and Python, with 30.03% and 25.41% of the respondents using them.
In 2019, JavaScript is still the leading programming language, with 54.24% of the participants using it. And the order hasn’t changed since 2018: Java (34.96%) came as second and Python (24.46%) as third.
This is the current state, but where are we heading? We wanted to have a sneak peek into the programming languages they intend to use in the next 12 months.
According to the 2019 data, 28.92% of the respondents said they’re not planning to use any new programming languages in the coming 12 months.
But, 21.73% of them said they’re planning to use Python, while 16.83% said they’re planning to use TypeScript, followed by Go with 17.41%.
Tools
Developer teams use a wide variety of tools (especially for testing and project management), which makes it especially hard to present the tools on a chart. The chart shows a few industry-leading tools, following an army of tools forming a long tail at the right end of the chart.
If you look at the chart, you will see that the “other” category is way higher than anything else. This is a merged category collecting all the longtail tools that were mentioned just a few times by the respondents.
Here are the most popular project management, communication, and SCM tools.
More charts are available in the report; click here to download.
Hiring and retaining developers are critical parts of managing a developer team. Since the report’s intention is to uncover fresh information for tech leaders, this is an essential part of the report.
This chapter sheds some light on the hiring practices of tech companies, including hiring criteria, and the most popular methods for attracting and motivating talents.
Since 2018, the most effective hiring methods haven’t changed. Employee referrals and having in-house recruiters are the best ways to hire talent.
What are the most crucial requirements candidates have to meet?
There are 4 important areas tech companies focus on when they’re hiring talent. These haven’t changed since 2018.
Willingness to learn is the most important factor, followed by work experience, some kind of technical skill evaluation test and cultural fit.
It seems test projects, side projects and soft skills are not very important factors. Interestingly, college degree and certifications are less important factors for a tech company.
Just think about it, since software development is changing rapidly, it’s a must to hire someone who is open to learning new technologies.
No degree? You’re still safe.
When it comes to hiring software developers, willingness to learn is 11.4 times more important than having a degree. This gap just widened since 2018, making a degree less valuable in 2019 than it was in 2018.
Hiring is the hardest part. It’s still easier to keep developers motivated and to retain them longer in the company.
What methods do tech companies use to keep software developers motivated?
It turns out that challenging work and great team culture are the most popular ways to keep developers motivated. This hasn’t changed since 2018.
Interestingly, offering stock options, clear career paths and trainings are less popular methods to motivate developers.
Here is the exciting question: What are the differences between top and average performing teams?
In this section of the report, we dig deeper in to how software teams measure performance, the success of software development managers and what causes delivery problems.
How do software teams measure performance?
It’s really hard to express developer performance in one metric, and there are many different ways to approach performance measurement. We wanted to know the most popular ones.
We also sliced the data, separating high performing teams from the average performing ones to see if we could notice any differences between the two groups.
Completing tasks is the most popular method to measure performance among top performing teams while working software is for the average performing teams. There is no huge difference between the two groups.
Interestingly, average performing teams are less likely to use any kind of metrics to measure performance.
The main thing that we learned was to structure teams that aligned with what we were trying to accomplish and not mimicking organizational structure. By doing this we are able to nimbly reform teams and focus on executing on the tasks at hand. -
- Adrian Chung, Miovision
Cause of delivery problems
Apart from taking a look at top and average performing teams, we wanted to know what developers and managers thought about the cause of delivery problems.
Our hypothesis was that they thought differently due to the focus and nature of their jobs.
Here are the results.
For managers, the number one reason is unrealistic expectations, followed by wrong estimation and the ever-changing landscape.
For developers, the picture is a bit different. They also highlighted unrealistic expectations as the number one cause, closely followed by a lack of clearly defined deliverables and also a bad estimation.
More than 40 pages of fresh data are waiting for you! Download the full report here.
This blog post featured just a small slice of all the data we gathered from our survey.
This year was the first year we started comparing the new data with the previous one. We’re excited to keep publishing this report and a few years from now to see the industry evolve as new trends are being formed.
If you want to see the full report, just follow this link and download it. Feel free to share this post or report with anyone you think might be interested.
Our partners: