<--- Go Back to Project Groups
PROBLEM & MOTIVATION
In recent years, there is massive growth in the software industry. In order to help prospective coders, such as ourselves, to better manage their expectations and make more informed decisions, it is crucial for them to understand what is in demand and also what to expect from this booming industry.
OBJECTIVE
For our project, we will be focusing on 3 main objectives. It is as follows:
- Gain overall insights on developers demographics (the Stack Overflow community)
- Gain insights on job prospects for developers and their work culture. This would provide a glimpse into the software industry and allow users to understand the relations among salary, work hours and challenges faced by developers
- Understand the most popular/relevant programming languages, databases, frameworks and platforms. This will allow prospective coders to know which skills and knowledge that give them the best advantage in the industry.
SELECTED DATASET
We chose the StackOverflow Developer Survey 2019 dataset (at https://www.kaggle.com/mchirico/stack-overflow-developer-survey-results-2019), as StackOverflow is currently the largest online developer community. The dataset provided is freely accessible, and analysis of this dataset would provide a glimpse about the overall developer community.
The dataset contains 88,883 survey responses, with each row corresponding to one respondent, and each of the 85 different columns corresponding to the survey questions. Below is a quick summary about the data provided and their attributes, categorized by each of our 3 main objectives as mentioned above.
|
Data Attributes
|
Data Provided
|
Background
|
Likert
|
- Extent of considering oneself as a stack overflow member
|
Numerical, Discrete
|
|
Categorical
|
- Gender
- Ethnicity
- Profession
- Education
- Frequency and Purpose of using StackOverflow
|
Binary
|
- Coding for hobby
- Have dependents
|
Job prospects
|
Likert
|
- Job satisfaction
- Job competence
|
Numerical, Continuous
|
|
Numerical, Discrete
|
- Hours worked a week
- Hours spent on code review
|
Categorical
|
- Work structure, work challenges, working remotely
- Code review
|
Skills
|
Categorical
|
- Programming languages, databases, platforms, and web frameworks
- Developer tools used
- Operating system used
|
BACKGROUND SURVEY
Reference of Other Visualization
|
Learning Points
|
https://www.daxx.com/blog/development-trends/number-software-developers-world
|
This Choropleth map shows the distribution of the number of professional software developers in Europe by country
- Pros:
- It is very effective in showing the distribution of professional software developers in a glance. Darker shades represent a higher concentration of developers and vice versa.
- Cons:
- There is a lack of labeling on the map. For countries that have similar shading, it can become difficult for readers to differentiate the rankings for those countries.
|
https://www.wearedevelopers.com/business/developer-survey/#summary-download
|
This dashboard shows the demand for the top programming languages, frameworks and level experience.
- Pros:
- This dashboard is pretty comprehensive. Labels are also clear and concise. It is easy for readers to get the overview
- Cons:
- The bar colors used for the top 10 programming languages are not consistent. For the bottom 5 languages, it used a gradient of grey, while the top 5 used different colors. Gradient of the same color should be used for conveying quantity/intensity and not for differentiating between different categories.
|
https://insights.stackoverflow.com/survey/2019
|
This visualization shows the relation between Men/Women developers to Developer Role. The X-axis shows the ratio of men’s to women’s developers.
- Pros:
- The visualization shows a good correlation between Gender against Developer Role
- Cons:
- The X-axis can be confusing for the readers on what the 10x represents, clearer labels or axis title could have been used.
|
https://hired.com/blog/candidates/data-reveals-hottest-coding-languages/
|
This Proportional Symbol Map shows the hottest programing languages across different countries
- Pros:
- This is a good visualization for coders to view which languages are more relevant in the different countries.
- Cons:
- For readers with less geographical knowledge, it can be difficult to identify the exact countries
|
PROPOSED STORYBOARD
Storyboard
|
Insights / Comments
|
Title: STORY 1 - OVERVIEW OF DEVELOPER DEMOGRAPHICS
|
- The first story aims to provide viewers with the overall demographic information about developers
- Top left is an age pyramid chart of the selected group of developers
- Top right is a bar chart showing what are the different profiles of developers (students, professionals, etc.), and whether they code as a hobby or not
- Bottom shows a proportional symbol map with dot sizes representing the number of developers in that country/region
- Clicking on a dot or country on the map applies a filter that will update the other 2 charts based on the selected country
- Hovering over a dot or country on the map shows a tooltip that describes the number of developers and the median salary of the selected country
|
Title: STORY 2 - ANALYSIS OF DEVELOPER'S SALARIES
|
- The second story aims to tell viewers which types of developers have the highest median salaries. All charts shown are box plots that are sorted in descending order of salary
- Top left is a box plot comparing median salaries between different types of developers (full stack, database administrators, data scientist, etc.)
- Top right is a box plot comparing median salaries between developers of different educational background
- Bottom is a box plot comparing median salaries between developers who worked with which programming languages
- Clicking on a box plot bar applies a filter that will update the other 2 charts based on the selection. It is possible to apply multiple filters
- The sort order can be changed from top to bottom, and the number of box plots to show can be set by the user
|
Title: STORY 3 - ANALYSIS OF DEVELOPER'S SKILLS
|
- The third story aims to give aspiring developers more insights based on the selected programming language, which can help them to decide what to use and learn.
- By selecting a particular language as a filter, they are able to see how many developers are using which database, platform, developer tools, and so on, each represented by a bar chart.
- The charts are sorted in descending order of count, so that users are able to see the most popular ones first
- The sort order can be changed from top to bottom, and the number of box plots to show can be set by the user
|
Title: STORY 4 - ANALYSIS OF DEVELOPER'S JOB SATISFACTION
|
- The last story aims to show viewers which developers have higher job satisfaction based on the selected category
- This is done using a divergent stacked bar chart, which is good for comparing between different categories for Likert data. The count of records in each category is displayed on the right of the chart
- There are many options for the categories, such as those mentioned in previous stories, as well as interesting ones such as whether the developer can work from home
- Users can select the sort order and the category from the menu on the left
- Users can also set the reference line for the divergent stacked bar chart to control how the chart is visualized.
|
TECHNICAL CHALLENGES
Challenges
|
Mitigation Plan
|
- Unfamiliarity with R, R Shiny and Tableau
|
- Ask any seniors or friends who have taken any R-related courses to share their slides with us for references
- Watch video tutorials from YouTube
- Peer Learning
|
- Unfamiliarity of data cleaning and transformation using R
|
- Read online articles and forums for guidance
- Watch video tutorials on how to fully utilise packages such as tidyr and dplyr
- Trial and error
|
PROJECT TIMELINE
Feel free to leave us some comments on where we can improve!
No.
|
Name
|
Date
|
Comments
|
1.
|
Insert your name here
|
Insert date here
|
Insert comment here
|
2.
|
Insert your name here
|
Insert date here
|
Insert comment here
|
3.
|
Insert your name here
|
Insert date here
|
Insert comment here
|