Efficient Software Development Through Agile Methods
|Title:||Efficient Software Development Through Agile Methods|
|Series:||Blekinge Institute of Technology Licentiate Dissertion Series|
|Publisher:||Blekinge Institute of Technology|
|Organization:||Blekinge Institute of Technology|
|Department:||School of Computing (Sektionen för datavetenskap och kommunikation)
School of Computing S-371 79 Karlskrona
+46 455 38 50 00
|Abstract:||Context: Distributed teams characterize Global Software Engineering (GSE). GSE stakeholders are from different cultures, geographic places and potentially time zones. These conditions have significant consequences on communication, coordination and control of software projects. Given these constraints, distributed teams need to highly rely on each other. Trust is the glue that holds them together and enables more open communication, which increases their performance and quality of delivered products.
Simultaneously, in striving for more efficient software development approaches, Agile values and principles were formulated. Agile methods encourage establishing close collaboration between customers and developers, continuous requirements gathering and frequent face-to-face communications.
Objective: The major objective of the research is to study efficient software development approaches particularly in (globally) distributed settings. Thus, the dynamics of trust in GSE are investigated for bringing useful trust improvement suggestions to project managers. Furthermore, Agile practices that have been efficiently applied in GSE are identified through two different systematic literature review approaches (i.e. systematic literature review and backward snowballing). The differences identified in the use of Agile practices lead to a need to better understand and assess Agility.
Method: The research methods, include systematic literature reviews and case studies, are applied in different empirical cases. Then, a variety of secondary data collection methods are utilized such as semi-structured interviews, questionnaires, open discussions and presentations.
Result: Achieving trust was realized to be crucial and the success factor for trust was the “awareness” of particular GSE challenges, which shall be communicated properly to all distributed team members and proper actions shall be taken to address them.
Besides, the literature indicated several successful combinations of Agile and GSE. However, despite utilizing two different literature search methods the identified patterns were similar. The most common practices were “standup meetings” and “sprints/iterations”.
Nevertheless, the current literature reports “Agile” as a general term and “distributed team” as the most common team/organization setting, which motivated examining the applicability of existing Agile assessment tools in an industrial setting. We found one of the studied tools sufficiently applicable in the context of the case organization.
Conclusions: Trust achievement is crucial for efficient GSE collaborations regardless of the applied software development approach. Although Agile promotes trust among team members, it was formulated without considering teams’ distribution. Hence, combining Agile and GSE is challenging.
The literature contains several successful cases of implementing Agile in GSE while practitioners and researchers are not yet consistent regarding their perception of Agile practices and documenting them.
Therefore, they need to collaborate closely, illustrate the practices, agree on the terminology, how to document the context, and how to profile/assess Agility. For this purpose, we examined the applicability of a set of Agile assessment tools and proposed one tool for the case organization.