Introduction :

This project includes a survey on developers’ current use of programming languages, databases, platforms, and operating systems, as well as their learning preferences for the future. It also gathers additional demographic information to analyze developers’ preferences and trends in technologies they plan to work with.

Case Study:

Steps to prepare and clean the data using built-in Power BI analysis tools. The goal is to ensure data quality and formatting, which helps in drawing accurate conclusions about developers’ skills and trends.

Requirements:

  1. Download: survey_data_demographics
  2. Get Data
  3. Transform Data
  4. Ensure unique values in the Respondent column and remove duplicates.
  5. Change the data type of the Respondent column to Whole Number.
  6. In the Main Branch column, change:
    • “I am not primarily a developer, but I write code sometimes as part of my work” to not developer
    • “I am a developer by profession” to profession
  7. Rename the second Open-Source column to Software Quality Comparison.
  8. Modify the values in the Open-Source column as follows:
    • “The quality of OSS and closed source software is about the same” → Quality is the same
    • “OSS is, on average, of HIGHER quality than proprietary / closed source software” → Quality is higher
    • “OSS is, on average, of LOWER quality than proprietary / closed source software” → Quality is lower
  9. In the Employment column, remove “-” to make it “part time” or “full time”.
  10. Use Split in the Ed Level column to separate the values after the “)” and delete the created column with parentheses, leaving the following:
  1. Age / Respondent = Whole Number
  2. All other columns = Text

Data Preparation for Technologies Survey

Download: survey_data_technologies

Steps:

  1. Get Data
  2. Transform Data
  3. Delete the first row from the table using:
    • Remove Rows → Remove Top Rows
  4. In the Respondent column, use Sort (Descending) to check the length of the column, then Clear Sort.
  5. Note that there are duplicates in the Respondent column. Use a filter to display Participant ID 62. If you delete the duplicate here, some data will be lost, so leave it as is.
  6. Change the data type in the Respondent column to Whole Number.
  7. Set the remaining columns’ data type to Text.
  8. Change Other(s): in all relevant columns to Other.
  9. Replace Values null cells in the Dev Environ column with “Not Defined”.
  10. Create a duplicate column for the Dev Environ column, which will generate a new table. Apply the Length function to display numbers, then delete the new column afterward.
  11. Delete the Blockchain Is column.
  12. Verify all unique values and statistical operations by using:
    • View → Column Quality → Column Profile
  13. Click Close & Apply.

Case Study:

Relationships between tables are essential to link and integrate data in Power BI. Reviewing these relationships ensures the accuracy of analysis and improves performance by ensuring data is properly related.

Create Relationship:

  • Drag Respondent from technologies to demographics.
  • Both: The relationship will be from technologies (Many) to demographics (One).
  • Activate the Active option.

Using DAX to Find the Following:

This document provides the DAX formulas used to calculate the following:

  • Respondent Count: Calculates the unique number of respondents in the survey.
  • Man Count: Calculates the number of male respondents.
  • Woman Count: Calculates the number of female respondents.

Copy Code

Respondent_Count = DISTINCTCOUNT(‘survey_data_technologies’[Respondent])

Man_Count = CALCULATE(COUNTROWS(‘survey_data_demographics’), ‘survey_data_demographics’[Gender] == “Man”)

Woman_Count = CALCULATE(COUNTROWS(‘survey_data_demographics’), ‘survey_data_demographics’[Gender] == “Woman”)

Visualization:

Case Study:

These charts help in understanding the demographic distribution of developers and provide insights into current trends in the field of programming. The goal is to enhance recruitment and training strategies based on this data.

Report: Future Technology Trend

Add Three Card Respondent_Count ,Man_Count ,Woman_Count

title (Top Ten Languages Currently Used by Developers)

  • Chart Type: Column Chart
  • Fields:
    • X Axis: Language Worked With (Languages Currently Used)
    • Y Axis: Respondent Count (Measure that calculates the number of respondents)

Steps to Create:

  1. Drag the Language Worked With field to the X-axis.
  2. Drag the Respondent Count measure to the Y-axis (instead of using the count of the Language Worked With field).
  3. Apply a filter to show the Top Ten Languages:
    • Select the filter on the X-axis.
    • Choose Top N in the filter options.
    • Enter 10 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Five Databases Currently Used by Developers)

  • Chart Type: Pie Chart
  • Fields:
    • Axis: Database Worked With (Databases Currently Used)

Steps to Create:

  1. Drag the Database Worked With field to the Legend area (or Values area depending on the visual type).
  2. Drag the Respondent Count measure into the Values area.
  3. Apply a filter to show the Top Five Databases:
    • Select the filter in the Values area.
    • Choose Top N in the filter options.
    • Enter 5 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Seven Platforms Currently Used by Developers)

  • Chart Type: Tree map
  • Fields:
    • Group: Platform Worked With (Platforms Currently Used)

Steps to Create:

  1. Drag the Platform Worked With field to the Group area.
  2. Drag the Respondent Count measure into the Values area.
  3. Apply a filter to show the Top Seven Platforms:
    • Select the filter in the Values area.
    • Choose Top N in the filter options.
    • Enter 7 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Seven Web Frameworks Currently Used by Developers)

  • Chart Type: Column Chart
  • Fields:
    • X Axis: Web Frame Worked With (Web Frameworks Currently Used)
    • Y Axis: Respondent Count (Measure to calculate the number of respondents)

Steps to Create:

  1. Drag the Web Frame Worked With field to the X-axis.
  2. Drag the Respondent Count measure to the Y-axis (instead of using the count of the Web Frame Worked With field).
  3. Apply a filter to show the Top Seven Web Frameworks:
    • Select the filter on the X-axis.
    • Choose Top N in the filter options.
    • Enter 7 in the Top N field.
    • In the By value field, select Respondent Count.

Report: Future Technology Trend

title(Top Ten Languages Developers Plan to Learn Next Year)

  • Chart Type: Column Chart
  • Fields:
    • X Axis: Language Desire Next Year (Languages developers plan to learn next year)
    • Y Axis: Respondent Count (Measure to calculate the number of developers planning to learn each language)

Steps to Create:

  1. Drag Language Desire Next Year to the X-axis.
  2. Drag the Respondent Count measure to the Y-axis.
  3. Apply a filter to show the Top Ten Languages:
    • Select the filter on the X-axis.
    • Choose Top N in the filter options.
    • Enter 10 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Five Databases Developers Plan to Work with Next Year)

  • Chart Type: Pie Chart
  • Fields:
    • Axis: Database Desire Next Year (Databases developers plan to work with next year)
    • Values: Respondent Count (Measure to calculate the number of developers planning to work with each database)

Steps to Create:

  1. Drag Database Desire Next Year to the Legend area.
  2. Drag the Respondent Count measure to the Values area.
  3. Apply a filter to show the Top Five Databases:
    • Select the filter in the Values area.
    • Choose Top N in the filter options.
    • Enter 5 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Seven Platforms Developers Plan to Use Next Year)

  • Chart Type: Tree map
  • Fields:
    • Group: Platform Desire Next Year (Platforms developers plan to use next year)
    • Values: Respondent Count (Measure to calculate the number of developers planning to use each platform)

Steps to Create:

  1. Drag Platform Desire Next Year to the Group area.
  2. Drag the Respondent Count measure into the Values area.
  3. Apply a filter to show the Top Seven Platforms:
    • Select the filter in the Values area.
    • Choose Top N in the filter options.
    • Enter 7 in the Top N field.
    • In the By value field, select Respondent Count.

title(Top Seven Web Frameworks Developers Plan to Use Next Year)

  • Chart Type: Column Chart
  • Fields:
    • X Axis: Web Frame Desire Next Year (Web frameworks developers plan to use next year)
    • Y Axis: Respondent Count (Measure to calculate the number of developers planning to use each web framework)

Steps to Create:

  1. Drag Web Frame Desire Next Year to the X-axis.
  2. Drag the Respondent Count measure to the Y-axis.
  3. Apply a filter to show the Top Seven Web Frameworks:
    • Select the filter on the X-axis.
    • Choose Top N in the filter options.
    • Enter 7 in the Top N field.
    • In the By value field, select Respondent Count.

Report: Demographics Technology Trend

title(Respondent Count by Gender)

  • Chart Type: Donut Chart
  • Fields:
    • Axis: Gender (Gender distribution)
    • Values: Respondent Count (Measure to calculate the number of developers by gender)

Steps to Create:

  1. Drag Gender to the Legend section.
  2. In Values, select the Respondent Count measure to calculate the number of developers by gender.
  3. Filter the data to show the gender distribution.

title(Respondent Count by Age)

  • Chart Type: Line Chart
  • Fields:
    • X Axis: Age Bin (New Group) (Age groups)
    • Y Axis: Respondent Count (Measure to calculate the number of developers in each age group)

Steps to Create:

  1. Drag Age to Bins and select New Group.
  2. Group Age into bins (groups) of 10 years each.
  3. Drag Age Bin to the X-axis.
  4. Drag Age Bin again to the Y-axis.
  5. Set the Y-axis to use Respondent Count to calculate the number of developers in each age group.
  6. Apply a Line Chart to visualize the distribution.

title(Country by Gender and Education Level)

  • Chart Type: Matrix
  • Fields:
    • X Axis: Education Level (Education levels)
    • Value: Man_Count / Woman_Count
    • FORMAT: layout and style presets (style- condensed)
    • font: Arial(20)
    • go to the next level in the hierarchy / Drill up: There is a navigation button above the Matrix

title(Respondent Count by Employment)

  • Chart Type: Area Chart
  • Fields:
    • X: Employment (Employment )
    • Y: Respondent Count (Measure to calculate the number of developers by employment type)

Add slicer by (country)to which sync slicers are applied from the View tab, appear on the first report page only and interact with the rest of the reports

Make your reports accessible with the Themes feature of the View tab

Use the tooltip feature of format your visual and shadow feature

Use report page navigation/layout mobile/selection

using Bookmarks

For any questions or concerns, feel free to reach out to the Arab Data Hub

الله ولي التوفيق