Agile Software Development Teams
Abstract
This book explores how agile development practices, in particular pair programming, code review and automated testing, help software development teams to perform better. Agile software engineering has become the standard software development paradigm over the last decade, and the insights provided here are taken from a large-scale survey of 80 professional software development teams working at SAP SE in Germany. In addition, the book introduces a novel measurement tool for assessing the performance of software development teams. No previous study has researched this topic with a similar data set comprising insights from more than 450 professional software engineers.
Chapters (5)
Software is nowadays omnipresent in many consumer and business products. From cars to complex business software over simple smart phone apps, many people regularly use software-based products or services at home or at work. With more than two billion people using broadband internet today, new markets emerge for software companies challenging established market incumbents with software-based services and products. Software brings life to various types of computer systems which have steadily become cheaper, more powerful, more compact, and more energy efficient over the last decades.
This chapter provides the theoretical and conceptual foundations of the study by introducing a theoretical research model with five empirically testable research propositions. The theoretical basis of the study was developed with insights from team effectiveness research and literature on agile software development. The central proposition of this study is that agile software development not only directly influences the performance of a software development team, but that it also triggers affective, behavioral, and cognitive teamwork mechanisms. Insights into these hidden effects within agile teams are expected to advance the theoretical understanding and evaluation of agile software development by integrating previously separated literature streams.
The previous chapter introduced the theoretical research model of this study to be tested with data from professional software development teams. This chapter explains the data collection process and methodology for analysis of the study results in the following chapters. Section 4.1 introduces the given research context; Sect. 4.2 describes the survey study design with three role-specific questionnaires for developers and the teams’ Scrum Masters, and the respective Product Owners. An overview of the measurement instrument for all latent variables in the research model is given in Sect. 4.3. Finally, two statistical techniques - both used to analyze the collected data and to test the research hypotheses - are introduced and briefly discussed in Sect. 4.4.
This chapter describes the analysis of the collected survey data and testing of the five hypotheses in the research model. Section 5.1 outlines the study sample providing an overview of studied population. In Sect. 5.2, the newly developed team performance measurement instrument and the gathered performance data is discussed. Testing of the research propositions are described in Sect. 5.3 and the final integration into a performance prediction model is summarized in Sect. 5.4.
Many software companies follow an agile development approach today (VersionOne 2012). Originally introduced as a counter-movement from the plan-driven approach, agile software development is mainstream today (West et al. 2010). The approach gained its popularity through the postulation of the Agile Manifesto and the persuasiveness of its four core values in 2001 (Fowler 2002). These agile values are reflected in numerous development methods and practices which were introduced by experienced consultants in the end of the 1990s and beginning 2000s and later labeled as “agile methods”. Scrum (Schwaber and Beedle 2002) and Extreme Programming (Beck 2000) are the most popular today.
... It focuses on delivering the highest value in the shortest time. It is a team oriented agile methodology that specifies a certain role, establishes a short time boxed iteration called sprints in which the system is incrementally developed and produces a different artifact that coordinates its work [19]. It is considered among the most used agile methods [8]. ...
... Daily scrum meetings are 15-minutes-long and conducted to enhance the communication, to synchronize the activities, to reconcentrate the team focus on the common goal that is shared by all team members, and to solve any problems or obstacles that may face the team. At the end of the sprint, two meeting are held; the sprint review meeting in which the sprint output "a potentially shippable increment" is inspected, analyzed and assessed, and the sprint retrospective meeting to discuss possible future improvement [19]. ...
... It attempts to reduce the cost of the requirements changes by replacing the long development cycle by multiple short cycles [13] to achieve a customer satisfaction. XP aims to improve the software quality by taking the concepts of software engineering to an extreme level [19]. ...
p>Software engineering is a discipline that undergone many improvements that aims to keep up with the new advancements in technologies and the modern business requirements through developing effective approaches to reach the final software product, agile software development is one of these successful approaches. Agile software development is a lightweight approach that was proposed to overcome the convolutional development methods’ limitations and to reduce the overhead and the cost while providing flexibility to adopt the changes in requirements at any stage, this is done by managing the tasks and their coordination through a certain set of values and principles.
In this work, a comprehensive review that outlines the main agile values and principles, and states the key differences that distinguish agile methods over the traditional ones are presented. Then a discussion of the most popular agile methodologies; their life cycles, their roles, and their advantages and disadvantages are outlined. The recent state of art trends that adopts agile development especially in cloud computing, big data, and coordination are also explored. And finally, this work highlights how to choose the best suitable agile methodology that must be selected according to the task at hand, how sensitive the product is and the organization structure.</p
... Agile development has the following characteristics (Schmidt, 2016;Surendra, 2009;Sutherland & Sutherland, 2014;Wang, Conboy, & Pikkarainen, 2012): (a) an acceptance that requirements will change, (b) an adaptable development process, (c) short iterations that deliver tangible functionality, (d) frequent, open communication between software developers and customers, and (e) system designs that are as simple as possible. The essential values of agile development are the following (Agile Alliance, 2001;Schmidt, 2016;Surendra, 2009;Sutherland & Sutherland, 2014): ...
... Agile development has the following characteristics (Schmidt, 2016;Surendra, 2009;Sutherland & Sutherland, 2014;Wang, Conboy, & Pikkarainen, 2012): (a) an acceptance that requirements will change, (b) an adaptable development process, (c) short iterations that deliver tangible functionality, (d) frequent, open communication between software developers and customers, and (e) system designs that are as simple as possible. The essential values of agile development are the following (Agile Alliance, 2001;Schmidt, 2016;Surendra, 2009;Sutherland & Sutherland, 2014): ...
... Most agile development methodologists (Cockburn, 2005), agile practitioners (Sutherland & Sutherland, 2014) and agile researchers (Schmidt, 2016) state that agile development is not a specific process that can be followed. Rather, agile development is a philosophy and a way of thinking about software development. ...
We use action research to understand the concepts of automating and informating, and study whether agile development practices could be an enabler of informating functionalities. Two questions based on these contrasts and connections motivate this research. Our first research question is: What are the characteristics of an informating functionality and how does an informating functionality differ from an automating functionality? Our second research question is: What role could agile practices play in the development of informating functionalities? In this paper, we discuss the actions, reflections and lessons learned from three action research iterations while developing an admissions application for a business college.
... In this context, team adaption theory is of high relevance, as it describes how well a team is able to adjust its strategies based on information gathered from its environment (Salas et al., 2005). Particularly for product development teams who face poorly specified product requirements and are exposed to a high risk of potential changes, their adaptability is an essential prerequisite for high performance (Schmidt, 2016). Following the teamwork theory by Salas et al., which has been proved to be applicable to (agile) product development as well (Strode, 2015;Schmidt, 2016), team orientation, team leadership, mutual performance monitoring, and backup behavior are important factors for developing team adaptability (Salas et al., 2005;Schmidt, 2016). ...
... Particularly for product development teams who face poorly specified product requirements and are exposed to a high risk of potential changes, their adaptability is an essential prerequisite for high performance (Schmidt, 2016). Following the teamwork theory by Salas et al., which has been proved to be applicable to (agile) product development as well (Strode, 2015;Schmidt, 2016), team orientation, team leadership, mutual performance monitoring, and backup behavior are important factors for developing team adaptability (Salas et al., 2005;Schmidt, 2016). Accordingly, the team size has a significant effect on agility because it promotes better communication and coordination. ...
... Particularly for product development teams who face poorly specified product requirements and are exposed to a high risk of potential changes, their adaptability is an essential prerequisite for high performance (Schmidt, 2016). Following the teamwork theory by Salas et al., which has been proved to be applicable to (agile) product development as well (Strode, 2015;Schmidt, 2016), team orientation, team leadership, mutual performance monitoring, and backup behavior are important factors for developing team adaptability (Salas et al., 2005;Schmidt, 2016). Accordingly, the team size has a significant effect on agility because it promotes better communication and coordination. ...
... The term is often used lightly and almost in°ationary to express the evolution toward the°e xibilization and modernization of companies and internal development projects [Cooper (2014)]. In its historical meaning, the theory of agility is substantially characterized by techniques and methods, which convey individual ideas on how to shape an \agile" organization [Schmidt (2016); Steireif et al. (2020)]. The \Agile Manifesto" summarizes the central basis of agile project development in four guiding values and 12 principles [Cockburn (2003); Highsmith and Cockburn (2001); Pichler (2013)]. ...
... He distinguishes agility from°exibility and leanness, as an agile entity is characterized by a stronger organizational orientation in contrast to a°e xible entity and by a less strong focus on cost and production e±ciency in contrast to a lean entity. Schmidt [2016] takes a more psychologically grounded perspective and argues that agility is expressed either as a behavior, as a capability, or as an attitude of individuals. It becomes obvious that it is crucial to familiarize with the relevant de¯nitions of OA more thoroughly. ...
The transformation of the energy system toward a sustainable energy supply is driven by a continuous development of new technologies. To cope with the challenges emerging from fast-paced changes, more flexible forms of organizing technology development are required. This paper explores how design factors for organizational agility (OA) can be described in the context of technology development. Therefore, structured interviews with 28 power-technology developers with theoretical or practical knowledge of agility were conducted. The results revealed a list of design factors for OA along with four organizational levels. The elaborated factors provide multifaceted design levers to shape an agile organization in technology development.
... On the other hand, Agile systems development methods are the other category of SDLC that came to life to address some of the challenges associated with traditional systems development methods. The first generation of Agile approaches, sometimes called lightweight development methods [23], are also shown in Figure 1. ...
Model-Based Software Engineering (MBSE) is an architecture-based software development approach. Agile, on the other hand, is a light system development approach that originated in software development. To bring together the benefits of both approaches, this article proposes an integrated Agile MBSE approach that adopts a specific instance of the Agile approach (i.e., Scrum) in combination with a specific instance of an MBSE approach (i.e., Model-Based System Architecture Process—“MBSAP”) to create an Agile MBSE approach called the integrated Scrum Model-Based System Architecture Process (sMBSAP). The proposed approach was validated through a pilot study that developed a health technology system over one year, successfully producing the desired software product. This work focuses on determining whether the proposed sMBSAP approach can deliver the desired Product Increments with the support of an MBSE process. The interaction of the Product Development Team with the MBSE tool, the generation of the system model, and the delivery of the Product Increments were observed. The preliminary results showed that the proposed approach contributed to achieving the desired system development outcomes and, at the same time, generated complete system architecture artifacts that would not have been developed if Agile had been used alone. Therefore, the main contribution of this research lies in introducing a practical and operational method for merging Agile and MBSE. In parallel, the results suggest that sMBSAP is a middle ground that is more aligned with federal and state regulations, as it addresses the technical debt concerns. Future work will analyze the results of a quasi-experiment on this approach focused on measuring system development performance through common metrics.
... In a collaborative environment, teams are more likely to sense various changes, plan effective ways to handle those changes and share their project learning based on their shared understanding of the project. Effective decision-making is a prerequisite for agility (Rebentisch et al., 2018;Schmidt, 2016). Therefore, we propose the following hypothesis. ...
Purpose
Agile principles have been widely used in software development team practice since the creation of the Agile Manifesto. Studies have examined variables related to agile principles without systematically considering the relationships among key team, agile methodology, and process variables underlying the agile principles and how these variables jointly influence the achievement of software development agility. In this study, the authors tested a team/methodology–process–agility model that links team variables (team autonomy and team competence) and methodological variable (iterative development) to process variables (communication and collaborative decision-making), which are in turn linked to software development agility (ability to sense, respond and learn).
Design/methodology/approach
Survey data from one hundred and sixty software development professionals were analyzed using structural equation modeling methods.
Findings
The results support the team/methodology–process–agility model. Process variables (communication and collaborative decision-making) mediated the effects of team (autonomy and competence) and methodological (iterative development) variables on software development agility. In addition, team, methodology and process variables had different effects on the three dimensions of software development agility.
Originality/value
The results contribute to the literature on organizational IT management by establishing a team/methodology–process–agility model that can serve as a basis for developing a core theoretical foundation underlying agile principles and practices. The results also have practical implications for organizations in understanding and managing holistically the different roles that agile methodological, team and process factors play in achieving software development agility.
... Scrum is an actual implementation of an agile framework in project management for an iterative software development process. This scrum focuses on producing high scores quickly (Rodríguez et al., 2019;Schmidt, 2016). The following stages will be carried out in the research: At this stage, the details of priority features are prepared to be included in the system to be built. ...
The standard service hospitals provide for their patients is a doctor's consultation. However, many patients need help accessing this service due to having to go to the hospital, queuing, and long waiting times. So that patients no longer have difficulty accessing consulting services, we need a system that can speed up consulting activities. The system development method used in Android-based e-consulting applications is the Scrum method. The system development process is somewhat accelerated using the Scrum methodology because all development activities require planning and timing for each sprint, starting with sprint planning, continuing through the daily scrum, sprint review, and sprint retrospective, which is repeated at each sprint to avoid delays in application development. By offering consultation services online, this system allows patients to access existing facilities and more efficiently supports the improvement of consulting services at existing hospitals, especially in Indonesia.
... Developers (pair programming) work together to write, observe, develop, and review code. Refactoring is used to improve the software, making it simple and maintainable by reconstructing the code without changing its functionality [27]. Refactoring is used to eliminate duplication, add flexibility [24], or rename code variables and functions for better understanding. ...
In addition to carrying out elderly care services, nursing homes also carry outroutine work related to information management. This information was obtained fromvarious activities, from the elderly entering the nursing home to leaving the nursing home.This study aims to design an "E-PANJO" application as a tool to support the managementof nursing home information. So that the design can produce the proper application andaccording to the needs, the development used the Extreme Programming (XP) method. XPwas chosen because of its ability to support small-scale application development processes.XP is a method consisting of an exploration phase, planning phase, iteration to releasephase, production phase, and death phase. The results of this study indicate that XP iseffective in supporting the design of E-PANJO as evidenced by a black box functionality testthat can accommodate the needs of nursing home information management such asmanaging information on monitoring health history, elderly mutations, family visits,receiving donations and monthly fees for the elderly.
... Agile development method has Scrum methoddelivering the highest value in the shortest time; Test Driven Development (TDD) method -based on building a small iteratively automated testing programs; Extreme programming method -improve the software quality by taking the concepts of software engineering to an extreme level (Schmidt, 2016); Feature-driven development (FDD) method -manages short incremental iterations leading to functional software and Dynamic System Development Method (DSDM)provides rapid application development based on the agile principles (Anwer et al., 2017) as its different forms. Adopting agile software development signifies shoring more cooperative environments and organisational policies that enable self-organisation and team efficiency (Ruk et al., 2019). ...
The development of reusable and extensible software for business purposes has been the hallmark of the day. More developers are taking advantage of numerous approaches towards reaching their goals. One such approach is the agile approach in the development of extensible applications which has become so popular since its introduction over a decade ago. Using an agile approach that has a defined value in developing applications portray numerous benefits which have been identified by various scholars pointing out their outcomes as motivating factors of its adoption. With all such outline benefits, there exist some potential obstacles to agile developmental approach which has not been fully addressed. Hence, this article is aimed at analysing the obstacles which software developers face during agile development through a database search and also to guide them on ways to overcome such obstacles.
... In recent years, the software development methodology evolves from the traditional approach to agile software development (Avison & Fitzgerald, 2002;Fitrianah, Hidayanto, Zen, & Arymurthy, 2015;Sucahyo, Rotinsulu, Hidayanto, Fitrianah, & Phusavat, 2017) That methodology is the iterative, incremental methodology which followed agile manifesto (Schmidt, 2016). Agile software development became one of the most popular methodologies because it can reduce time-consuming in completing the software development project (Read, Arreola, & Briggs, 2011). ...
In recent years, the software development methodology evolves from the traditional approach to agile software development. This paper attempted to conduct a systematic literature review (SLR) regarding the improved agile software development to tackle its weakness based on recent research papers. Systematic Reviews and Meta-Analyses (PRISMA) as Systematic Literature Review Method (SLR). SLR is the review method which uses some protocols in order to minimize bias in the reviews. The improved of agile software methodology mostly regarding code reusability, usability, project quality, estimation, software delivery, usability, user responses and requirements delivery, communication between members, usability, practical activities, communication between team and stake holder, usability, workflow (learning), problem identification and effort estimation.
... Stellman and Greene (2009) study team dynamics in the software industry from several experiences. Schmidt (2016) relates the effect of agile practices and methodologies on the performance of software development teams and the leadership characteristics of professionals that intend to direct agile teams. Visser et al. (2016) specifically focus on the process of team building in the software industry, emphasizing the best 10 practices for software development team formation. ...
Team performance varies depending on the organization of their members, the exploitation of their synergies and their planning to optimally meet the minimum requirements with the best results. This article reports a dual‐purpose methodology. First, we use the soft systems methodology to start up viability‐driven teamwork based on team complexity, a better understanding of idiosyncrasy, and the synergies leveraging team behavior. The viable systems model is used to propose the essential functions of a team that effectively operates in dynamic organizational environments. Second, this research provides guidance for training teams to apply holistic thinking in their problem‐solving practice by helping them to co‐integrate and apply systemic approach for immersive problem solving. In essence, this article reports success drivers, generic teamwork structures and viability accomplishment references for agilely, effectively and synergistically launching teams. We wrap up by discussing the lessons learned from applying this approach to several teams and outline future developments.
... The continuously increasing need for software applications in practically every domain, and the introduction of online open-source repositories have led to the establishment of an agile, component-based software engineering paradigm. The need for reusing existing (own or third-party) source code, either in the form of software libraries or simply by applying copy-paste-integrate practices has become more eminent than ever, since it can greatly reduce the time and cost of software development [19]. In this context, developers often need to spend considerable time and effort to integrate components and ensure high performance. ...
Nowadays, developers tend to adopt a component-based software engineering approach, reusing own implementations and/or resorting to third-party source code. This practice is in principle cost-effective, however it may also lead to low quality software products, if the components to be reused exhibit low quality. Thus, several approaches have been developed to measure the quality of software components. Most of them, however, rely on the aid of experts for defining target quality scores and deriving metric thresholds, leading to results that are context-dependent and subjective. In this work, we build a mechanism that employs static analysis metrics extracted from GitHub projects and defines a target quality score based on repositories’ stars and forks, which indicate their adoption/acceptance by developers. Upon removing outliers with a one-class classifier, we employ Principal Feature Analysis and examine the semantics among metrics to provide an analysis on five axes for source code components (classes or packages): complexity, coupling, size, degree of inheritance, and quality of documentation. Neural networks are thus applied to estimate the final quality score given metrics from these axes. Preliminary evaluation indicates that our approach effectively estimates software quality at both class and package levels.
... It is considered a better alternative to TPM in this field as IT and software projects tend to be volatile and intangible. Using TPM on these types of projects was leading to delays and failures due to its rigid nature and strict linear processes (Schmidt, 2016). ...
Agile is a catch-all that can be used to describe a variety of methodologies which are used to respond to change. It has become a buzzword in the software industry. Since the creation of the Agile Manifesto in 2001, Agile methods have been adopted by many software development companies which have resulted in successful projects yielding reduced lead-times, increased cost savings and working software in which clients have played a large part in helping to develop. The purpose of this dissertation was to carry out a thorough investigation of Agile and see if it could be used in a machine building environment? The secondary concern of this dissertation was to examine whether Agile practices could lead to improved communication across departments. To address this challenge a literature review was carried out on three core areas including Agile methodologies, Agile manufacturing and Agile project management. Surveys and in-depth interviews were carried out with people who were both familiar and unfamiliar with Agile. The majority of people were from a hardware background. The results reveal that agile can be used to develop hardware but that it is particularly suited to the automation phase of machine building. One major machine builder is currently using the method in testing and developing software prior to the machine going live. It was not proved conclusively that agile improves communication but it does cause it to increase however. Agile and particularly Scrum have been particularly successful in software development. With the complexity of machines on the rise and the increasing domination of software over both mechanical and electrical engineering, introducing Scrum into the software programming stage of machine building is advised in order to help de-risk projects.
The development of information technology which is increasing nowadays has influence various aspects of life, especially in the company operation. At this time, most companies have implemented information systems in carrying out their business activities such as implementing accounting information systems that can help to simplify their work. Currently, Balistung Panjer still carries out all of the company activities manually start from the process of cash receipts, cash disbursements, student’s data processing, supplies, employee payrolls, and has no financial reports. This study aims to: (1) assist the administrator in processing student’s data and supplies; (2) simplify to make the transaction summary; (3) simplify the company leaders to calculate employee salaries; (4) implement the accounting information systems in assisting financial reporting activities in Balistung Panjer. This website-based accounting information system is designed by using DFD and ERD as system design tools, MySQL database, PHP programming language, and Laravel framework. This study used a qualitative approach and the method was interviewing related parties. Meanwhile, the system development method used to design accounting information systems is the Extreme Programming (XP) method. The data collection techniques used were observations and interviews with the owner of the company, Mr. A.A. Gede Putra Partanta, ST. With Ms. Larasati Anggraeni as 1st Administrator and Ms. Ari as 2nd Administrator, as well. Based on the research conducted, it can be conclude that the accounting information system designed can be implemented to help administrators’ performance, especially in processing corporate financial data.Keywords: Accounting Information Systems, Tutoring, Website, Extreme Programming (XP)ABSTRAKPerkembangan teknologi informasi yang semakin meningkat pada saat ini memberikan pengaruh terhadap berbagai aspek di kehidupan terutama terhadap pengoperasian suatu perusahaan. Pada saat ini sebagian besar perusahaan sudah menerapkan sistem informasi dalam menjalankan aktivitas bisnisnya seperti menerapkan sistem informasi akuntansi yang dapat membantu mempermudah pekerjaan dalam perusahaan. Saat ini Balistung masih melakukan segala kegiatan perusahaan secara manual dari proses penerimaan kas, pengeluaran kas, proses pengolahan data siswa, persediaan, penggajian karyawan hingga tidak adanya laporan keuangan. Penelitian ini bertujuan untuk: (1) membantu admin dalam melakukan pengolahan data siswa dan persediaan; (2) mempermudah dalam membuat rekapan transaksi; (3) mempermudah pimpinan perusahaan dalam melakukan perhitungan gaji karyawan; (4) dapat mengimplementasi sistem informasi akuntansi dalam membantu kegiatan pembuatan laporan keuangan pada Balistung Panjer. Sistem informasi akuntansi berbasis website ini dirancang menggunakan DFD dan ERD sebagai tools perancangan sistem, database MySQL, bahasa pemrograman PHP, dan framework Laravel.Penelitian ini menggunakan pendekatan kualitatif dengan menggunakan metode wawancara kepada pihak yang terkait. Sedangkan, metode pengembangan sistem yang digunakan untuk merancang sistem informasi akuntansi adalah metode Extreme Programming (XP). Teknik pengumpulan data yang digunakan berupa observasi dan wawancara yang dilakukan dengan pemilik perusahaan Bapak A.A. Gede Putra Partanta, ST. dan kepada Ibu Larasati Anggraeni sebagai Admin 1 serta Ibu Ari sebagai Admin 2. Berdasarkan penelitian yang dilakukan, didapatkan kesimpulan bahwa sistem informasiakuntansi yang dirancang dapat diimplementasikan untuk membantu kinerja admin terutama padapengolahan data keuangan perusahaan.Kata Kunci : Sistem Informasi Akuntansi, Bimbingan Belajar, Website, Extreme Programming (XP)
The uncertainty of the pandemic needs agile change management to tackle COVID-19 in business. Agile change management is a proactive technique for managing COVID-19 in a fast-paced business context. It improves corporate agility to respond to uncertainty, driving competitive growth and efficiency. As consumer and technology markets evolve, agile change management has become an alternative in modern organizations. Leaders must be agile to fight COVID-19 effectively. The uncertainty caused by COVID-19 demands leaders to use agile change management to explore new business continuity methods. Change management insights and best practices help organizations minimize COVID-19’s impact on people, operations, and companies. Agile change management improves incremental people and environment results. Practical application to optimize organizational productivity in a distressing environment involves critical awareness, desire, knowledge, ability, and reinforcement. Strategic concepts for executives to align the company with COVID-19 disruption. The principles strive to achieve quantifiable goals within a set timeframe and collaborate and integrate processes throughout the organization.
Background In times of omnipresent digitization and big data, telemedicine and electronic case files (ECFs) are gaining ground for networking between players in the health care sector. In the context of the SALUS study, this approach is applied in practice in the form of electronic platforms to display and process disease-relevant data of glaucoma patients.
Objectives The SALUS ECF is designed and implemented to support data acquisition and presentation, monitoring, and outcome control for patients suffering from glaucoma in a clinical setting. Its main aim is to provide a means for out- and inpatient exchange of information between various stakeholders with an intuitive user interface in ophthalmologic care. Instrument data, anamnestic data, and diagnostic assessments need to be accessible and historic data stored for patient monitoring. Quality control of the data is ensured by a reading center.
Methods Based on an intensive requirement analysis, we implemented the ECF as a web-based application in React with a Datomic back-end exposing REST and GraphQL APIs for data access and import. A flexible role management was developed, which addresses the various tasks of multiple stakeholders in the SALUS study. Data security is ensured by a comprehensive encryption concept. We evaluated the usability and efficiency of the ECF by measuring the durations medical doctors need to enter and work with the data.
Results The evaluation showed that the ECF is time-saving in comparison to paper-based assessments and offers supportive monitoring and outcome control for numerical and imaging-related data. By allowing patients and physicians to access the digital ECF, data connectivity as well as patient autonomy were enhanced.
Conclusion ECFs have a great potential to efficiently support all patients and stakeholders involved in the care of glaucoma patients. They benefit from the efficient management and view of the data tailored to their specific role.
Teamwork is crucial in software development, particularly in agile development teams which are cross-functional and where team members work intensively together to develop a cohesive software solution. Effective teamwork is not easy; prior studies indicate challenges with communication, learning, prioritization, and leadership. Nevertheless, there is much advice available for teams, from agile methods, practitioner literature, and general studies on teamwork to a growing body of empirical studies on teamwork in the specific context of agile software development. This article presents the agile teamwork effectiveness model (ATEM) for colocated agile development teams. The model is based on evidence from focus groups, case studies, and multi-vocal literature and is a revision of a general team effectiveness model. Our model of agile teamwork effectiveness is composed of shared leadership, team orientation, redundancy, adaptability, and peer feedback. Coordinating mechanisms are needed to facilitate these components. The coordinating mechanisms are shared mental models, communication, and mutual trust. We critically examine the model and discuss extensions for very small, multi-team, distributed, and safety-critical development contexts. The model is intended for researchers, team members, coaches, and leaders in the agile community.
The decomposition of an application into independent microservices increases the attack surface, and makes it difficult to monitor each microservice in order to secure and control their network traffic. The adoption of microservices, together with new trends in software development that aim to quickly deliver software in short software development iterations often leaves software engineers with little time to give attention to the security of such applications. Consequently, it is not uncommon for many software development teams to release software without performing full-scale security testing. Although various tools and techniques are available to assist software engineers with the development of secure microservices throughout their life cycle, there is limited guidance on how these tools and techniques can be integrated into the software engineer’s daily software development tasks. The aim of this paper is to identify and review tools and techniques that software engineers can use as part of security-focused activities incorporated into the software development process, so that security is given early attention during the development of microservices.
This open access book constitutes the research workshops, doctoral symposium and panel summaries presented at the 20th International Conference on Agile Software Development, XP 2019, held in Montreal, QC, Canada, in May 2019.
XP is the premier agile software development conference combining research and practice. It is a hybrid forum where agile researchers, academics, practitioners, thought leaders, coaches, and trainers get together to present and discuss their most recent innovations, research results, experiences, concerns, challenges, and trends. Following this history, for both researchers and seasoned practitioners XP 2019 provided an informal environment to network, share, and discover trends in Agile for the next 20 years.
Research papers and talks submissions were invited for the three XP 2019 research workshops, namely, agile transformation, autonomous teams, and large scale agile. This book includes 15 related papers. In addition, a summary for each of the four panels at XP 2019 is included. The panels were on security and privacy; the impact of the agile manifesto on culture, education, and software practices; business agility – agile’s next frontier; and Agile – the next 20 years.
Is “Business Agility” the next frontier for Agile? With increased visibility, companies are adopting Agility into the diverse functions of their organizations – moving beyond engineering and IT – to operations, marketing, sales, human resources, and administration. This panel at the XP 2019 conference discussed the latest Agile trend and its implications for practitioners and businesses worldwide.
Context: Agile software development is widely-used by small teams and has benefits like increased transparency or faster feedback. However, companies want to benefit from Agile also in the development of big products, where multiple teams are involved. Many Scaling Agile Frameworks exist, but only few can be found in industry, especially SAFe, LeSS, and Nexus. Objective: The aim of this work is to identify commonalities of existing Scaling Agile Frameworks concerning their practices. Method: We extracted and consolidated the practices of twelve frameworks and compared the frameworks based on their practices using a visualization. Results: Frameworks prescribe scaling practices as well as practices on team level. There are practices common to most frameworks like the scaled Scrum events, e.g., a scaled planning meeting or retrospective. Conclusion: Practitioners are enabled to make informed decisions when choosing or tailoring their individual Scaling Agile Framework.
In reaction to reports of recent high-profile software security and privacy failures in our always-on agile world, users and regulators are demanding that companies deliver more trustworthy and resilient systems. This panel discussed some of the strategies and best practices for “building-in security” to our products and systems in contrast to “bolting-on security” – and how threats should be assessed and mitigated to avoid the unintended consequences of flawed design decisions.KeywordsSecurityPrivacyDesign
Motivation: Many companies aim to provide more autonomy to their development teams. While some teams report on successes, others still struggle with the agile adaption, e.g. due to the organisational environment. Objective: Our objective was to explore how organisational culture and structure influence team autonomy in bureaucratic companies. Method and Results: 30 qualitative interviews from different business divisions at a conglomerate revealed that organisational factors related to hierarchy, specialist culture and functionally departmentalised structure decreased agile team features and consequently resulted in a reduced speed of decision-making. We suggest the Agile Matching Theory which implies that prevalent organisational factors and desired agile team features need to match to allow team autonomy to occur. Conclusion: We therefore encourage managers to further work on a learning organisation and a supportive structure within which autonomous teams can grow.
Modern large software-intensive development organizations are nowadays more and more often believed to transform their structures and operations towards large-scale agility in search for higher performances. Based on a survey conducted in Finland in 2018, in this paper we explore the current state of the affairs with respect to how extensively organizations are actually transforming themselves, in what ways this takes place in practice and for what goals. Most of the respondents were in large organizations. The results show that the majority of the surveyed respondents indicated that their organizations have conducted agile transformations or are currently doing so. Different strategies and tactics have been used in the transformations, but markedly the respondents reported most that the company has had external consultants (subcontracting) to assist in the change. The most important goals aimed to be achieved with agile means were productivity and quality (operative) and responsiveness to customer/market changes (new features). Notably only very few respondents reported their organizations to be currently non-agile (do not use at all agile methods in software development).
This paper presents a model to assess team autonomy developed and deployed in a South African bank’s IT department. The bank has been deploying SAFe® for the last two years and in the process has increased significantly the number of software releases. Historically, the teams had to obtain multiple levels of authorization prior to a release but this level of governance and control was contradictory to the principle of team empowerment at the core of agile approaches. The model is inspired from the theme of a pilot’s ability to fly an aircraft using five levels. The level is determined based on team fly-ability and elevation safety described in detail in this paper. Team fly-ability includes two elements: (1) maturity of engineering practices and (2) the ability to manage traceability and risk through ease of recovery. Elevation Safety is based on two components: (1) historical data on deployment performance and severity of incidents and (2) the application dynamics and criticality. The main benefits of this program are improved accountability of teams, reduced approval time, and reduced attempts to find workarounds and loopholes.
As society becomes more dependent upon computer systems to perform increasingly critical tasks, ensuring that those systems do not fail becomes increasingly important. Many organizations depend heavily on desktop computers for day-to-day operations. Unfortunately, the software that runs on these computers is written by humans and, as such, is still subject to human error and consequent failure. A natural solution is to use statistical machine learning to predict failure. However, since failure is still a relatively rare event, obtaining labelled training data to train these models is not a trivial task. This work presents new simulated fault-inducing loads that extend the focus of traditional fault injection techniques to predict failure in the Microsoft enterprise authentication service and Apache web server. These new fault loads were successful in creating failure conditions that were identifiable using statistical learning methods, with fewer irrelevant faults being created.
The last chapter of this dissertation starts with a discussion of the findings in light of the posed research questions. The theoretical and practical contributions are then followed by the limitations of this research as well as the avenues for future work. The chapter finishes with a conclusion.