DOI: 10.6084/m9.figshare.28306277
title: replication-package-Analyzing-the-Impact-of-Years-of-Experience-on-Code-Quality

description: Replication Package for the Study: "Aged to Perfection? Analyzing the Impact of Years of Experience on Code Quality"Replication Package StructurePrograms for Data Extraction and SummarizationThese programs extract and summarize information from sources such as GitHub, Workana, and SonarQube.<code><strong>scraper.py</strong></code>: Collects public Workana profiles relevant to the research scope. The results are saved in <code>workana_profiles.csv</code>.<code><strong>fetch_repos.py</strong></code>: Downloads up to five Git repositories for each developer listed in <code>workana_profiles.csv</code>.<code><strong>fetch_sonar_qube.py</strong></code>: Uses SonarQube to analyze repositories and generate reports for each repository folder.<code><strong>aggregator.py</strong></code>: Consolidates all SonarQube reports for a given developer into a unified report, which is stored in each developer’s folder.Helper ProgramsThese programs assist with miscellaneous tasks.<code><strong>other_tools_and_helpers/anonimize_workana_profile_names</strong></code>: Replaces names in the profiles with anonymous identifiers.<code><strong>other_tools_and_helpers/get_github_repo_links</strong></code>: Generates a list of all downloaded repositories for each developer. The results are saved in <code>github_repo_links.csv</code>.Analysis Programs<code><strong>analysis.py</strong></code>: Conducts statistical tests and descriptive analyses of the collected data. This program populates the <code>metrics-dataset</code> folder with summarized reports and creates the consolidated file <code>all_developer_metrics_workana_sonarqube.csv</code>.Data Files<code><strong>workana_profiles.csv</strong></code>: Contains the collected Workana profiles. To protect privacy, sensitive information has been redacted and replaced with <code>[REDACTED]</code>.<code><strong>github_repo_links.csv</strong></code>: Lists the GitHub repository links analyzed during the study.<code><strong>collected_repos_report.xlsx</strong></code>: Provides a summary of all collected repositories, including the programming languages used.<code><strong>metrics-dataset</strong></code><b> </b><b>folder</b>: Contains the summarized metrics extracted by SonarQube for each developer.<code><strong>all_developer_metrics_workana_sonarqube.csv</strong></code>: Aggregates the years of experience and SonarQube metrics for each developer. This file serves as the final dataset for statistical analysis.ExecutionTo replicate the study, follow these steps:<b>Extract Workana profiles</b>: Run <code>scraper.py</code>.<b>Collect GitHub repositories</b>: Execute <code>fetch_repos.py</code>, ensuring that a GitHub API key is configured.<b>Analyze repositories with SonarQube</b>: Use the latest version of SonarQube Community Edition (as of November 2024). Ensure that the server is running locally on port 9001.<b>Summarize metrics</b>: Run <code>aggregator.py</code> to consolidate the SonarQube analysis results.<b>Analyze the data</b>: Execute the cells in <code>analysis.ipynb</code> to perform the final statistical analysis.