scholarly journals When and How to Make Breaking Changes

2021 ◽  
Vol 30 (4) ◽  
pp. 1-56
Author(s):  
Chris Bogart ◽  
Christian Kästner ◽  
James Herbsleb ◽  
Ferdian Thung

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.


Author(s):  
Donald Wynn Jr.

This study examines the concept of an ecosystem as originated in the field of ecology and applied to open source software projects. Additionally, a framework for assessing the three dimensions of ecosystem health is defined and explained using examples from a specific open source ecosystem. The conceptual framework is explained in the context of a case study for a sponsored open source ecosystem. The framework and case study highlight a number of characteristics and aspects of these ecosystems which can be evaluated by existing and potential members to gauge the health and sustainability of open source projects and the products and services they produce.



2021 ◽  
Author(s):  
Viktoria Stray ◽  
Nils Brede Moe ◽  
Henrik Vedal ◽  
Marthe Berntzen

Today, many large-scale software projects have members working from home, which has changed the way teams coordinate work. To better understand coordination in this setting, we conducted a case study through which we examined two teams in a large-scale agile project by observing meetings and conducting 17 interviews. Through the lens of Relational Coordination Theory (RCT), we analyzed the use of the goal-setting framework Objectives and Key Results (OKRs) and the collaboration tool Slack. Slack was used for frequent, timely, and problem-solving communication and, and its use decreased the number of planned meetings. However, discussions often started on Slack and continued in virtual ad-hoc meetings. The use of OKRs facilitated knowledge sharing, helped the teams align their goals, and provided inter-team insights. The main implication of our research is that projects using OKRs need to support project members, especially in formulating the key results that align and motivate the teams to work toward the same mission.



2018 ◽  
Vol 8 (1) ◽  
pp. 51
Author(s):  
Bakari Maligwa Mohamed ◽  
Geraldine Arbogast Rasheli ◽  
Leonada Rafael Mwagike

This paper has examined applicable theories on the records and archives management (RAM) in an attempt to use empirical results and findings to explain the RAM practices. The paper had used ten deliberately selected empirical studies on the RAM practices conducted in Tanzania. Results and findings from the examined empirical studies reveals that records life-cycle theory has been dominantly used to study RAM practices in Tanzania; whilst case study methodology being the dominant research design used by most of the examined studies. Empirically, it has been found that RAM practices in Tanzania have been constrained by a number of constraining factors. The identified factors were, inter alia: inadequacy of RAM practices; inexistence of RAM guidelines; inadequate funding over RAM activities; untrained personnel; lack of comprehensive RAM policy; inadequate records storage space, equipment and facilities; and unreformed records and archives management systems. Based on these results and findings it is concluded that theories propounded for the records and archives management could be supplemented by other management theories and philosophies in studying specific issues on the subject matter. It is recommended that RAM needs specialised studies to determine the influence of the constraining factors on the extent of proper management of records and archives in the specialised administration and management fields that need efficient management and care of records.



Author(s):  
Akinori Ihara ◽  
Yasutaka Kamei ◽  
Akito Monden ◽  
Masao Ohira ◽  
Jacky Wai Keung ◽  
...  


2020 ◽  
Author(s):  
Gabor Horvath ◽  
Reka Nikolett Kovacs ◽  
Peter Szecsi

Program faults, best known as bugs, are practically unavoidable in today's ever growing software systems. One increasingly popular way of eliminating them, besides tests, dynamic analysis, and fuzzing, is using static analysis based bug-finding tools. Such tools are capable of finding surprisingly sophisticated bugs automatically by inspecting the source code. Their analysis is usually both unsound and incomplete, but still very useful in practice, as they can find non-trivial problems in a reasonable time (e.g. within hours, for an industrial project) without human intervention Because the problems that static analyzers try to solve are hard, usually intractable, they use various approximations that need to be fine-tuned in order to grant a good user experience (i.e. as many interesting bugs with as few distracting false alarms as possible). For each newly introduced heuristic, this normally happens by performing differential testing of the analyzer on a lot of widely used open source software projects that are known to use related language constructs extensively. In practice, this process is ad hoc, error-prone, poorly reproducible and its results are hard to share. We present a set of tools that aim to support the work of static analyzer developers by making differential testing easier. Our framework includes tools for automatic test suite selection, automated differential experiments, coverage information of increased granularity, statistics collection, metric calculations, and visualizations, all resulting in a convenient, shareable HTML report.



2021 ◽  
Author(s):  
Viktoria Stray ◽  
Nils Brede Moe ◽  
Henrik Vedal ◽  
Marthe Berntzen

Today, many large-scale software projects have members working from home, which has changed the way teams coordinate work. To better understand coordination in this setting, we conducted a case study through which we examined two teams in a large-scale agile project by observing meetings and conducting 17 interviews. Through the lens of Relational Coordination Theory (RCT), we analyzed the use of the goal-setting framework Objectives and Key Results (OKRs) and the collaboration tool Slack. Slack was used for frequent, timely, and problem-solving communication and, and its use decreased the number of planned meetings. However, discussions often started on Slack and continued in virtual ad-hoc meetings. The use of OKRs facilitated knowledge sharing, helped the teams align their goals, and provided inter-team insights. The main implication of our research is that projects using OKRs need to support project members, especially in formulating the key results that align and motivate the teams to work toward the same mission.



2020 ◽  
Vol 9 (5) ◽  
pp. 2030-2037
Author(s):  
Vahid Bakhtiary ◽  
Taghi Javdani Gandomani ◽  
Afshin Salajegheh

Over recent years, software teams and companies have made attempts to achieve higher productivity and efficiency and get more success in the competitive market by employing proper software methods and practices. Test-driven development (TDD) is one of these practices. The literature review shows that this practice can lead to the improvement of the software development process. Existing empirical studies on TDD report different conclusions about its effects on quality and productivity. The present study tried to briefly report the results from a comparative multiple-case study of two software development projects where the effect of TDD within an industrial environment. Method: We conducted an experiment in an industrial case with 18 professionals. We measured TDD effectiveness in terms of team productivity and code quality. We also measured mood metric and cyclomatic complexity to compare our results with the literature. We have found that the test cases written for a TDD task have higher defect detection ability than test cases written for an incremental NON-TDD development task. Additionally, discovering bugs and fixing them became easier. The results obtained showed the TDD developers develop software code with a higher quality rate, and it results in increasing team productivity than NON_TDD developers.



Sign in / Sign up

Export Citation Format

Share Document