Publication | Open Access
When and How to Make Breaking Changes
73
Citations
47
References
2021
Year
Software MaintenanceOrganizationsEngineeringChange Impact AnalysisProject ManagementSoftware SystemsRepository MiningSoftware EngineeringSoftware AnalysisEmpirical Software Engineering ResearchOpen-source Software DevelopmentManagementOpen-source SystemSystems EngineeringKnowledge EcosystemsBreaking ChangesPublic PolicyChange ManagementSoftware EcosystemInformation ManagementSoftware DesignCode RefactoringOther PackagesSoftware TestingOpen-source SoftwareBusinessKnowledge ManagementPackage Management Systems
Open source software projects often rely on package management systems that help projects discover, incorporate, and maintain dependencies on other packages, maintained by other people. Such systems save a great deal of effort over ad hoc ways of advertising, packaging, and transmitting useful libraries, but coordination among project teams is still needed when one package makes a breaking change affecting other packages. Ecosystems differ in their approaches to breaking changes, and there is no general theory to explain the relationships between features, behavioral norms, ecosystem outcomes, and motivating values. We address this through two empirical studies. In an interview case study, we contrast Eclipse, NPM, and CRAN, demonstrating that these different norms for coordination of breaking changes shift the costs of using and maintaining the software among stakeholders, appropriate to each ecosystem’s mission. In a second study, we combine a survey, repository mining, and document analysis to broaden and systematize these observations across 18 ecosystems. We find that all ecosystems share values such as stability and compatibility, but differ in other values. Ecosystems’ practices often support their espoused values, but in surprisingly diverse ways. The data provides counterevidence against easy generalizations about why ecosystem communities do what they do.
| Year | Citations | |
|---|---|---|
Page 1
Page 1