Skip to main content

2011 | Buch

Agile Processes in Software Engineering and Extreme Programming

12th International Conference, XP 2011, Madrid, Spain, May 10-13, 2011. Proceedings

herausgegeben von: Alberto Sillitti, Orit Hazzan, Emily Bache, Xavier Albaladejo

Verlag: Springer Berlin Heidelberg

Buchreihe : Lecture Notes in Business Information Processing

insite
SUCHEN

Über dieses Buch

This book contains the refereed proceedings of the 12th International Conference on Agile Software Development, XP 2011, held in Madrid, Spain, in May 2011. The year 2011 marked the 10th anniversary of the Agile Manifesto. In this spirit, the XP conference continued its fine tradition of promoting agility by disseminating new research results in a timely manner and by bringing together researchers and practitioners for a fruitful mutual exchange of experiences. As introduced for XP 2010, there were again two different program committees, one for research papers and one for experience reports. Regarding the research papers, 11 out of 56 submissions were accepted as full papers; and as far as the experience reports were concerned, the respective number was 4 out of 17 submissions. In addition to these papers, this volume also includes the short research papers, the abstracts of the posters, the position papers of the PhD symposium, and the abstracts of the workshops.

Inhaltsverzeichnis

Frontmatter

Research Papers

Analysing the Usage of Tools in Pair Programming Sessions

In this study we observe the daily work of nineteen software developers of a large Italian manufacturing company for a period of ten months to determine the effects of pair programming on the use of tools. Fifteen developers are existing team members and four have recently joined the team. They practice Pair Programming spontaneously, that is, when they feel it is needed. We identify the tools the developers use, how they distribute their time among these tools when working alone and when doing Pair Programming. The data have been extracted non-invasively by means of PROM – tool for automated data collection and analysis. The preliminary results indicate that developers working in pairs devote significantly more time to programming activities than developers working alone.

Ilenia Fronza, Alberto Sillitti, Giancarlo Succi, Jelena Vlasenko
Studying Lean-Kanban Approach Using Software Process Simulation

We developed an event-driven simulator of the Kanban process a WIP limited pull system visualized by the Kanban board. WIP (work in process) represent the capacity in the activity to perform features simoultaneously. The simulator is fully object-oriented, and its design model reflects the objects of the Lean software development domain. We used this simulator to assess comparatively WIP-limited and unlimited processes. We also studied the optimum values of the working item limits in the activities, using a paradigmatic case of 4 activities and 100 work items. The cost function used is equal to the total time needed to complete the project, plus a weighted sum of the limits themselves. We performed an exhaustive search on all the admissible values of the solution, finding sensible optimal values, and a non-trivial behavior of the cost function in the optimization space.

This demonstrates the feasibility and usefulness of the approach.

David Anderson, Giulio Concas, Maria Ilaria Lunesu, Michele Marchesi
A Feature Partitioning Method for Distributed Agile Release Planning

Agile software development represents a major approach that has gained increasing popularity in recent years. Economy forces agile organizations to overcome geographical distances to benefit from accessing a larger resource pool and to reduce development costs. However, agile and distributed development approaches differ significantly in their key tenets. While agile methods mainly rely on informal processes to facilitate coordination, distributed development typically relies on formal mechanisms. To address this situation, we present a distributed agile release planning approach to assist the release planning process of distributed agile development teams by identifying feature chunks that can be implemented co-located to minimize the communication needs between dispersed teams. The presented method demonstrates how this approach 1) necessitates less intensive communication and coordination, 2) can provide better utilization of resources, and 3) can produce higher quality feature distribution plans. Finally, the paper analyzes benefits and issues from the use of this approach.

Ákos Szőke
Collaboration in Pair Programming: Driving and Switching

This paper reports on an empirical study about the mechanisms of the collaboration of drivers and navigators in Pair Programming (PP) sessions. Based on video recordings of professional software developers, we analysed the mechanisms of role switches and how developers split the task of driving. We found that developers do not evenly contribute to the task of driving and that they spend on average a third of the session without any computer interaction focusing mainly on communication. In addition, our results show that most pairs switch roles frequently and that the frequency and fluidity of switches indicate a high level of engagement on the part of both developers.

Laura Plonka, Judith Segal, Helen Sharp, Janet van der Linden
Using Silent Grouping to Size User Stories

User stories are used to describe the functionality delivered in a product or system. Planning Poker is a common technique for sizing user stories, however it has challenges. It can be time consuming and teams can get bogged down in unnecessary discussion. This paper describes a technique called Silent Grouping that can be used to compliment Planning Poker, explaining how to apply it so that large sets of user stories can be sized in minutes. Experiences of seven Scrum teams from Cisco’s Unified Communications Business Unit are used as examples. The paper shows how to apply the technique with co-located teams, and includes an example of how it was used with distributed teams. Silent Grouping has several advantages. It is fast, which in turn leads to significant time and cost savings. It also has more subtle benefits. This paper discusses the techniques, challenges, cost savings and benefits of Silent Grouping.

Ken Power
Supporting Self-organizing Agile Teams
What’s Senior Management Got to Do with It?

Self-organizing Agile teams need a supportive environment to emerge and flourish. Through a Grounded Theory study of 58 Agile practitioners across 23 different software organizations in New Zealand and India, we found that senior management support is a critical environmental factor influencing self-organizing Agile teams. We describe the influence of senior management, and show how their support can create and sustain a supportive environment for self-organizing Agile teams.

Rashina Hoda, James Noble, Stuart Marshall
From Manufacture to Software Development: A Comparative Review

Agile Software Development methods have caught the attention of software engineers and researchers worldwide, but scientific research on the subject still remains quite scarce. The aim of this study is to organize and facilitate future works on Agile methods derived from manufacturing industry. This comparative review is performed from the standpoint of using Abrahamsson et al.’s analytical perspectives: project management support, life-cycle coverage, type of practical guidance, adaptability in actual use, type of research objectives and existence of empirical evidence. Our results show that Agile methods derived from manufacturing industry cover various phases of the life-cycle and that most fail to provide adequate project management support. To describe the status of research on Agile methods derived from manufacturing, we conducted a literature search in the ISI Web of Science. After ten years of application empirical evidence remains quite limited.

Eduardo T. Katayama, Alfredo Goldman
Effective Communication in Distributed Agile Software Development Teams

Agile methods prefer team members to be collocated to promote effective communication between team members. Effective communication is crucial for distributed Agile software development where team members are scattered across different geographic locations, and often across several time zones. We are conducting in a Grounded Theory study that explores distributed Agile software development from the perspective of Agile practitioners. We present the causes of communication challenges, and the strategies adopted by our participants to overcome communication challenges in distributed Agile teams.

Siva Dorairaj, James Noble, Petra Malik
Simulating Kanban and Scrum vs. Waterfall with System Dynamics

Nowadays, Scrum is the most used Agile Methodology, while the Lean-Kanban approach is perhaps the fastest growing AM. On the other hand, traditional, waterfall-like approaches are still very used in real-life software projects, due to the ease of up-front planning and budgeting, that however are seldom matched upon project completion. In our opinion, more effort is needed to study and model the inner structure and behavior of these approaches, highlighting positive and negative feedback loops that are strategic to understand their features, and to decide on their adoption. In this paper we analyze the dynamic behavior of the adoption of Kanban and Scrum, versus a traditional software development process such as the Waterfall approach. We use a system dynamics model, based on the relationships between system variables, to assess the relative benefits of the studied approaches. The model is simulated using a commercial tool. The proposed model visualizes the relationships among these software development processes, and can be used to study their relative advantages and disadvantages.

Luisanna Cocco, Katiuscia Mannaro, Giulio Concas, Michele Marchesi
Factors Affecting Effectiveness of Agile Usage – Insights from the BBC Worldwide Case Study

The past decade has seen significant changes in systems development with many organizations adopting agile methodologies as a viable methodology for developing systems. An increasing number of research studies reveal the growing popularity and acceptance of agile methodologies. While most academic research has focused on adoption and adaptation of agile methods, there is very limited understanding of their post-adoption usage and incorporation within organizations. What factors explain the effective usage of agile methodologies? A synthesis of past research in Systems Development Methodologies, Information Systems implementation, Diffusion of Innovations, and Agile Methodologies was conducted to develop a research model that identifies the main factors pertinent to the propagation and effective usage of agile methodologies in organizations. The model is tested by applying it to the usage of Kanban for Software Engineering practices at BBC Worldwide, London. Insights gained from the case study are discussed.

Mali Senapathi, Peter Middleton, Gareth Evans
Challenges to Teamwork: A Multiple Case Study of Two Agile Teams

Agile software development has become the standard in many companies. While there are reports of major improvements with agile development over traditional development, many teams still strive to work effectively as a team. A multiple case study in two companies discovered challenges related to communication, learning and selecting the tasks according to the priority list. For example, the fact that the developers were not actively involved in the planning process, resulted in weak team orientation; even though the teams had identified and discussed recurring problems, they found it difficult to improve their teamwork practices; and because customers and support communicated tasks directly to the developers and developers chose tasks according to interest and expertise, following the priority list became difficult. We provide practical suggestions for teamwork in agile software development that intend to overcome these problems and strengthen team orientation and team learning in order to achieve effective agile teams.

Viktoria Gulliksen Stray, Nils Brede Moe, Torgeir Dingsøyr
TaskBoard - Using XP to Implement Problem-Based Learning in an Introductory Programming Course

Introductory courses on Algorithms and Computer Programming typically present high failure rates. The lack of motivation and the difficulty encountered by some students are among the factors that lead to poor achievement. This paper presents a new teaching methodology for CS1, integrating PBL with the flexibility of Extreme Programming, creating a more collaborative, challenging and dynamic learning experience. The method also contributes to raise the quality of code and to enhance students’ abilities by using best practices from Software Engineering. In order to implement the method we developed an application called TaskBoard, which assists groups of students in the process of XP-based problem solving, facilitating the development, management and persistence of the solutions and related artifacts.

Halley Wesley A. S. Gondim, Ana Paula L. Ambrósio, Fábio M. Costa
Using Function Points in Agile Projects

Agile development has become increasingly common in the organizational software development environment. This paper examines whether function points would be compatible with story points on agile projects. Specifically, it addresses the question of whether function points are a relevant measure of velocity. Although any unit of measure can be used, this paper contrasts theoretical concepts about Story Points (SP) and function points (FP) as units for measuring size. It was also realized a statistical correlation between FP and SP using 2191 stories and 18 iterations in a Brazilian public agency. The conclusion drawn from this study was that function points, in that particular case, could be related with the initial value of the Story Points found after the planning poker.

Célio Santana, Fabiana Leoneo, Alexandre Vasconcelos, Cristine Gusmão
Empirical Investigation on Agile Methods Usage: Issues Identified from Early Adopters in Malaysia

Agile Methods are a set of software practices that can help to produce products faster and at the same time deliver what customers want. Despite the benefits that Agile methods can deliver, however, we found few studies from the Southeast Asia region, particularly Malaysia. As a result, less empirical evidence can be obtained in the country making its implementation harder. To use a new method, experience from other practitioners is critical, which describes what is important, what is possible and what is not possible concerning Agile. We conducted a qualitative study to understand the issues faced by early adopters in Malaysia where Agile methods are still relatively new. The initial study involves 13 participants including project managers, CEOs, founders and software developers from seven organisations. Our study has shown that social and human aspects are important when using Agile methods. While technical aspects have always been considered to exist in software development, we found these factors to be less important when using Agile methods. The results obtained can serve as guidelines to practitioners in the country and the neighbouring regions.

Ani Liza Asnawi, Andrew M. Gravell, Gary B. Wills
Pair Programming and Software Defects – An Industrial Case Study

In the last decade there has been increasing interest in pair programming. However, despite work has been done, there is still a lack of substantial evidence of pair programming effects in industrial environments. To increase a body of evidence regarding the real benefits of pair programming, we investigate its relationship with software defects. The analysis is based on 14-months data collected from a large Italian manufacturing company. The team of 17 developers adopted a customized version of extreme programming and used pair programming on a daily basis. We explore and compare the defect rate of the code changed by doing pair and solo programming. The results show that defects appear to be lower for the code modified during pair programming. As a consequence, we formulate a hypothesis that pair programming is effective in reducing the introduction of new defects when existing code is modified.

Nattakarn Phaphoom, Alberto Sillitti, Giancarlo Succi
Test-Driven Development of Graphical User Interfaces: A Pilot Evaluation

This paper presents a technique for test-driven development of GUI based applications, as well as a pilot evaluation. In our approach, user interface prototypes are created in such a way as to allow capture/replay tools to record interactions with them. These recordings can then be replayed on the actual GUI as it is being developed in a test-driven fashion. The pilot evaluation found that developers integrated GUI tests, based on user interface prototypes,into their development process and used them as a way to determine when a feature is actually complete.Study participants felt that TDD of GUI based applications is useful.

Theodore D. Hellmann, Ali Hosseini-Khayat, Frank Maurer
A Test-Driven Approach for Extracting Libraries of Reusable Components from Existing Applications

In agile approaches such as Extreme Programming, time is not spent on making sure that system components can be reused in similar systems. Therefore, there is a need to investigate whether reuse can be achieved by extracting reusable assets from existing applications. This paper presents an approach that relies on refactoring and testing practices for extracting reusable assets from existing applications. The approach creates reusable APIs in a bottom-up fashion, on demand when a new application might benefit from component in an existing application. The extraction process is guided and supported by the usage examples and the testing scenarios in the existing application and the new one. The paper presents a case study, where the approach was used to extract components from the user interface of an existing application, wrap these components in an API, and use this API in the existing and new applications.

Elaf Selim, Yaser Ghanam, Chris Burns, Teddy Seyed, Frank Maurer
An Empirical Study of Decision Making, Participation, and Empowerment in Norwegian Software Development Organisations

With the growth of agile software development methods we have seen an increased focus on the empowerment of software developers as a means to improving productivity and quality in software development. From other knowledge-intensive industries we also see that participation in decision making is argued to improve not only business, but also workers’ job satisfaction. In this study, interviews from four different types of software development organisations in Norway are collected and analysed to get more insight in how decisions are made in software development. The four types of organisations are a) Small, in-house software teams, b) Software company with undefined development process, c) Software company using unified process, and d) Software company using scrum. The data confirm that experience is a dimension that significantly influences a developer’s empowerment. But there is also clear differences between these four groups in what kind of decisions developers are participating in, and what level of participation they are admitted.

Bjørnar Tessem

Experience Reports

A Case Study in Agile-at-Scale Delivery

Many individuals and teams involved on projects are already using agile development techniques as part of their daily work. However, we have much less experience in how to scale and manage agile practices as part of a concerted effort of improvement across an integrated supply-chain for enterprise software delivery. In this paper we discuss the scalability of agile approaches through a detailed case study in agile adoption. In the context of this example we examine how “agility-at-scale” is applied, describe the key scaling factors and their impact on agility, and review some of the rollout and deployment issues that can limit the adoption of agile approaches in practice.

Alan W. Brown
A Never Ending Battle for Continuous Improvement

This paper takes the readers through a real project life path to show what went well and what didn’t. The paper first lays out all the pain points of the project. Then it describes how the team has successfully handled each of the issues. The paper doesn’t stop here. Instead, it digs further by taking off the veil of success as the project looks at and focuses on the areas needing improvement. The paper elaborates on how to squeeze out nonvalue-added waste through value stream mapping. It also discusses the importance of Agile “transfer”, customer redefinition as well as running a true iterative iteration.

J. J. Zang
Agile Technical Management of Industrial Contracts: Scrum Development of Ground Segment Software at the European Space Agency

ESOC (the European Space Agency’s Operation Centre) is experimenting with Agile and Scrum methodologies in its quest for improving productivity, enhancing project visibility and control, reducing time to market, improve software quality and increasing user satisfaction. In this article we present lessons learned from applying Agile in general and Scrum in particular to a number of projects, from applying a few Agile best practices to full Scrum. ESOC has traditionally developed its software using a waterfall life cycle mostly under Firm Fixed Price contracts, in this context using Agile brings challenges from project management, contracts and quality control perspective. Using a coaching approach, delivered by SixSq a Swiss-based company specialised in agile and Scrum coaching and development, the organisation has managed to accelerate its integration of Scrum, including industrial teams developing the software, and already yields positive results which are promising for the future.

Rui Santos, Felix Flentge, Marc-Elian Begin, Vicente Navarro
Evolution of Longer-Term Planning in a Large Scale Agile Project – F-Secure’s Experience

This article describes the experience of F-Secure on practicing a long/mid-term planning for a multi-team, multi-site project. It shows how the planning is thought to cover several iterations so a meaningful business value is potentially reached and given to the customer as well as all the procedures and artifacts used for and during the planning. The paper also describes the evolution (modifications and improvements) done on the planning process along the whole project. We also reflect on the major events of the project (such as project split) for which the project steering was enabled by the planning method.

Gabor Gunyho, Juan Gutiérrez Plaza

Posters

Defects and Agility: Localization Issues in Agile Development Projects

It has been noted that software localization does not always fit well into agile software development. This poster aims to illustrate the relationship between the two by examining how localization issues occur in agile projects. A list of common localization issues is presented and examined as to where and why they can be caused during development and if there is a connection to agile methodologies. The poster serves as an introduction to our research in this area.

Malte Ressin, José Abdelnour-Nocera, Andy Smith

Ph.D. Symposium

Prioritization of Features in Agile Product Line Engineering

Agile Software Development (ASD) and Software Product Line Engineering (SPLE) methodologies have proved significant benefits in software development. Although they pursue common promises (faster time-to-market, better quality and lower cost), many of their foundations are completely different. ASD focuses on requirements at hand and proposes continuous delivery of valuable software by short time-framed iterations.Instead, SPLE exploits the commonality across the products of a same family by investing on an upfront design of reusable assets (

domain engineering

) which are assembled into customer-specific products (

application engineering

).

Jessica Díaz, Juan Garbajosa, Jennifer Pérez
Lost in Agility? Approaching Software Localization in Agile Software Development

Adapting software for different languages is required to gain market access by increasing product acceptance and usability, and satisfying legal requirements. This process commonly consists of two steps:

Internationalization

, i.e. the generalization of any language- and culture-specific properties and elements of the software in question, and

localization

, i.e. the specialization of said elements for specific languages, cultures and countries [1]. It is a topic with increasing relevance as new technologies enable new software uses and interaction modes, which in turn create new cultural dependencies which need to be localized, and new ways to do it, e.g. crowdsourcing [2] and machine translation [3].

Malte Ressin, José Abdelnour-Nocera, Andy Smith
Empirical Evaluation of Agile Practices Impact on Team Productivity

Agile methods have become more popular since the early 2000s and, in some cases, can offer better results for software development projects when compared to traditional approaches. Agile methods promise to achieve high productivity and to deliver high-quality software, attracting the attention of companies, which demand ever-higher development speed and quality in their products.

Claudia de O. Melo, Fabio Kon
An Approach on Applying Organizational Learning in Agile Software Organizations

Agile software development (ASD) has been in evidence over the past years by encouraging changes on how software is developed [1]. However, agile methods strongly focus on empowering the project team in achieving its goals [2]. Little attention is given to creating insights and experiences to the organizational level [3]. Therefore, there is a challenge to overcome the barriers to scale the knowledge on the group level to the organizational level effectively [4].

Viviane Santos, Alfredo Goldman
Managing Uncertainty in Software Development Projects: An Assessment of the Agile Development Method Scrum

In the face of uncertainties that constitute a challenge to every software development project, developers lack guidance to manoeuvre between the boundaries of flexibility and structures when choosing or amending development methods to their needs. The underlying motivation for this research was the question of how to improve the predictability and controllability while at the same time increasing flexibility, which lies at the heart of system design [1].This is especially true in fast changing industries such as software development. In order to investigate how agile development methods, and especially the project management framework Scrum, can best support different software development endeavours it is necessary to test agile methods for their capability to establish a balance of organisational flexibility and stability, which is a fundamental challenge for organisations [2].

Denniz Dönmez, Gudela Grote

Workshops

Agile Testing and Critical Systems

The need to count on critical systems is growing day by day. Together with traditional domains such as medical devices, automotive, railway, aeronautical, space and telecommunications, new applications and services are coming up every day. Terms such as ubiquitous, pervasive, or autonomic computing, products under the general umbrella of smart devices or the use of large wireless sensors networks indicate a clear trend in the increase of application complexity and dependency. The dependency of daily life on computers and computer based systems is growing up at a high rate, and testing is gaining importance at the same rate.

Jørgen Bøegh, Juan Garbajosa, Alex Rennoch
Value-Based Software Traceability Workshop (VALSOT 2011)

Traceability defines and maintains relationships among the artifacts involved in the software-engineering life cycle. This mechanism is widely used for purposes as project visibility and accountability, and it provides an essential support for developing high-quality software systems. Traceability has traditionally been strongly influenced by software process drivers; however, during the last few years, the software process is starting to take into account new drivers.One such driver is the software product’s value. The global value of a product can be understood as the perceived benefits in relation to its cost. Both business and technical areas of an organization consider the value concept as a priority, for analyzing software costs and benefits. For these purposes, a tight interaction between these two sides is fundamental.

Angelina Espinoza, Richard Paige, Juan Garbajosa
Second XP Workshop about Dealing with Usability in an Agile Domain

The Second Workshop “Dealing with Usability in an Agile Domain” is aimed to be a forum for discussing these approximations for the intersection of agility and usability. More concretely, issues regarding the implications of usability in agile environments, alternatives for integrating HCI techniques in an agile process, approaches for incorporating usability features into agile artifacts or open issues in the integration of agile and usability where discussed.

Ana Maria Moreno, Agustin Yagüe
Backmatter
Metadaten
Titel
Agile Processes in Software Engineering and Extreme Programming
herausgegeben von
Alberto Sillitti
Orit Hazzan
Emily Bache
Xavier Albaladejo
Copyright-Jahr
2011
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-20677-1
Print ISBN
978-3-642-20676-4
DOI
https://doi.org/10.1007/978-3-642-20677-1

Premium Partner