Why so many developers are leaving their jobs
Understanding the frustrations of developers from Stack Overflow’s survey from 2017

This project was inspired by a not-so-recent article in Medium explaining why so many data scientists are leaving their jobs. It was a data scientist named Jonny Brooks-Bartlett who wrote their common frustrations such as expectations not matching their realities, and the dreaded politics in the office.
The purpose of this blog post is to similarly try to discover the reasons and behaviours of the developers who would most likely quit and find better job opportunities. However, this is coming from a person who is a chemical engineer by profession and trying break into the field of data science through Udacity’s Nanodegree program. You can find out more about through this link.
The data source is from Stack Overflow’s 2017 survey covering 64,000 developers coming from almost 213 countries. The responses will attempt to answer the following questions using the Cross Industry Process for Data Mining (CRISP-DM):
- How does salary and career/job satisfaction differ from developers who are actively looking and not actively looking for a new job?
- What are the most important factors in assessing potential jobs to apply to?
- Which factors would predict if developers will look for new jobs?
You can find the complete analysis in Github through this link.
The Data
There over 150 survey questions and only a handful of them would seem relevant to discover the frustrations of developers. Among the questions asked in the survey include the following:
Which of the following best describes your current employment status?
Career satisfaction rating?
Job satisfaction rating?
Which of the following best describes your current job-seeking status?
During a typical week, approximately how many hours do you spend on activities related to finding new job opportunities?Please adjust the slider to the appropriate number of hours. The box to the right will indicate the number of hours you have chosen.
When you’re assessing potential jobs to apply to, how important is this factor to you?
For the purpose of this analysis, only full-time employees will be investigated since we are concerned why developers are leaving their current jobs.
Employed full-time 36148
Independent contractor, freelancer, or self-employed 5233
Employed part-time 3180
Not employed, and not looking for work 2791
Not employed, but looking for work 2786
I prefer not to say 1086
Retired 1681. How does salary and career/job satisfaction differ from developers who are actively looking and not actively looking for a new job?
Developers who would likely quit would be the least paid, and the least satisfied with their jobs and careers.
Among the 36,000 full time developers, there are at least 2,500 developers who responded that they actively looking for a job. It does not include the others are not yet actively looking but are open to new opportunities. We can compare the salary and career/job satisfaction among these three different groups.
I'm not actively looking, but I'm open to new opportunities 14937
I am not interested in new job opportunities 6289
I am actively looking for a job 2515The developers who are actively looking for a job have the lowest median salary. Meanwhile, those who are not interested in new job opportunities are compensated more than the others.

Similarly, the developers who are actively looking have the lowest median career and job satisfactions. It is especially pronounced at the job level where these developers have much lower satisfaction. Meanwhile, those who are not interested are more satisfied in their career/jobs than the others.


2. What are the most important factors in assessing potential jobs to apply to?
The most important factors would be opportunities for professional development along and compensation & benefits.
When assessing potential jobs to apply to, the most important factor for full-time employed developers are opportunities for professional development. Compensation and benefits, followed by working environment round up the top three.

There are two more plots which stand out because their distributions are also leaning heavily on the Very important and Important responses. It can be inferred that developers seek jobs which have competitive compensations and benefits, and nice working environments.


3. Which factors would predict if developers will look for new jobs?
Developers who spend the most time looking for new job opportunities, and developers who have the lowest job and career satisfaction would be most likely to quit.
Finally, we determine which factors would likely cause developers to look for new jobs or retain their current ones. This question requires a supervised machine learning algorithm called AdaBoost to predict a developer’s tendency to start actively looking for a new job. The results of the model are shown below.
Final Model trained on full data
------
Accuracy on training data: 0.9068
F-score on training data: 0.5227
Accuracy on testing data: 0.9066
F-score on testing data: 0.5279The fully trained model has an accuracy of almost 90% for the testing data but we should be careful in interpreting that the model is superior because of the high value. There is class imbalance because of the low number of developers who said they are actively looking for jobs compared to those who don’t.
Based on the F-score, there is a 1/2 chance that the model will correctly predict if a developer starts looking for new jobs. The low score can be attributed to the difficulty in classifying those who are on the fence in leaving (I’m not actively looking, but I’m open to new opportunities) which we just simply classified as those who are not.
Regardless, the more important thing to gain from creating the model is to determine the features or columns that could provide the most predictive power. In this case, the five most important features will be obtained to predict the developer’s tendency/capacity to leave.

The five most relevant features for predicting if a developer would look for a new job are the following:
- Hours Per Week — This has the most bearing as developers who spend the most time looking for new job opportunities are those who have intently decided to do so. The weight is almost a quarter of all the weights.
- Job Satisfaction — As expected, developers who are the most satisfied in their current jobs are most likely to stay there.
- Career Satisfaction — Developers already have chosen their careers as such and are probably satisfied where they are, so this does not hold much weight as much as job satisfaction does. The nature of the job is mostly connected to the company and not to the career.
- Android / iOS Work Platform — Android and iOS development have accelerated for the past decade and developers are taking advantage by changing jobs quickly to gain experience.
- Up-to-date Coding Skills — For a rapidly changing industry, developers should keep up to date with their coding skills. This can help them change jobs if necessary.
Conclusions
In this article, we discovered the reasons why full-time employed developers quit and find potential jobs according to the Stack Overflow 2017 survey data.
- We looked at salary distribution and career/job distribution and discovered that developers who would likely quit are the least paid, and the least satisfied with their job and career. This is really unsurprising.
- We then assessed which factors are the most important when finding potential jobs. The three most important in order are: opportunities for professional development, compensation & benefits, and working environment. Employers may want to focus on these to retain their developers.
- Finally, we predicted that developers who spend the most time looking for new job opportunities, and developers who have the lowest job and career satisfaction are most likely going to quit. Developers who work in Android and iOS, and have up-to-date coding skill are also most likely to change jobs. This reiterates the first point on satisfaction and adds the platform and skills.
If you are a full-time developer, you may agree to the sentiments shared by your co-developers or you may have completely different reasons. But if you are an employer, you may want to pay your employees well, and keep them satisfied by providing avenues of growth and a conducive working environment. Developers are not any different from others and they have the same aspirations as other professionals.
Whether you are a developer or not, you want to work in a company which provides growth, which pays well, and which looks nice.