ArticlePDF Available

Abstract and Figures

Agile software development is an important topic in software engineering and information systems. This chapter provides a characterization and definition of agile software development, an overview of research through a summary of existing overview studies, an analysis of the research literature so far, and an introduction to the main themes of this book. The first part of the book provides foundations and background of agile development. The second part describes findings from studies of agile methods in practice. The third part identifies principal challenges and discusses new frontiers that agile development methods will meet in the future.
Content may be subject to copyright.
1 Agile Software Development: An Introduction
and Overview
Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
Abstract: Agile software development is an important topic in software engineer-
ing and information systems. This chapter provides a characterization and defini-
tion of agile software development, an overview of research through a summary of
existing overview studies, an analysis of the research literature so far, and an in-
troduction to the main themes of this book. The first part of the book provides
foundations and background of agile development. The second part describes find-
ings from studies of agile methods in practice. The third part identifies principal
challenges and discusses new frontiers that agile development methods will meet
in the future.
1.1 Introduction
Agile software development has had a major influence on how software develop-
ment is conducted. It has become an umbrella term for a number of changes in
how software developers plan and coordinate their work, how they communicate
with customers and external stakeholders, and how software development is orga-
nized in small, medium-sized and large companies from the telecom and health-
care sectors to games and interactive media.
We see the agile development methods as a reaction to plan-based or traditional
methods, which emphasize “a rationalized, engineering-based approach” (Dybå
2000) incorporating extensive planning, codified processes, and rigorous reuse
(Boehm 2002). By contrast, agile methods address the challenge of an unpredic-
table world by recognizing the value competent people and their relationships
bring to software development (Nerur and Balijepally 2007).
In this chapter, we will first define what we see as agile software development
and define other central terms that will be used throughout the book. Further, we
give a broad overview of research conducted in this field, and describe the main
themes of the book: foundations and background of agile development, agile
methods in practice and principal challenges and new frontiers. Finally, we state
what we see as some of the main challenges and main future directions for re-
search on agile software development.
T. Dingsøyr et al. (eds.), Agile Software Development,
DOI 10.1007/978-3-642-12575-1_1, © Springer Verlag Berlin Heidelberg 2010 -
2 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
1.2 What is Agile Development?
In an introduction to the special issue on agile methods in IEEE Computer in
2003, Williams and Cockburn (2003) state that agile software development “is
about feedback and change”, and they emphasize that software development is an
empirical or nonlinear process, where short feedback-loops are necessary to
achieve a desirable, predictable outcome. Ericksson et al. (2005) further underline
the importance of lightweight processes in agile development, defining agility as
to “strip away as much of the heaviness, commonly associated with the traditional
software-development methodologies, as possible to promote quick response to
changing environments, changes in user requirements, accelerated project dead-
lines and the like. (p. 89).
In an article discussing the concept of agility and leanness in software devel-
opment, Conboy (2009) argues that agile methods must contribute to one of more
of the following: creation of change, proaction in advance of change, reaction to
change or learning from change. Further, an agile method must contribute to and
not detract from: perceived economy, perceived quality, and perceived simplicity.
A third requirement is to be continually ready to prepare the component for use.
Thus, agile software development has been characterized differently than plan-
based or traditional development methods, mainly with the focus adapting to
change and delivering products of high quality through simple work-processes.
Nerur & Balijepally (2005) state that agile and traditional methods diverge on a
number of aspects, including their fundamental assumptions, approach to control,
management style, knowledge management, role assignment, role of the customer,
project cycle, development model and desired organizational structure.
1.3 Research on Agile Software Development
In this section we first give an overview of prior research on agile software devel-
opment, and then characterize the status of current research through examining the
volume of scientific studies on the topic.
1.3.1 An Overview of Prior Research
Introductions to and overviews of agile development are given by Abrahamsson et
al. (2002), Cohen et al. (2004), Erickson et al. (2005) and Dybå and Dingsøyr
(2008). These four reports describe the state of the art and state of the practice in
terms of characteristics of the various agile methods and lessons learned from ap-
plying such methods in industry.
3
The first review of the literature on agile software development was done in a
technical report published by Abrahamsson et al. at VTT (2002). The report dis-
cusses the concept of agile development, presents processes, roles, practices, and
experience with 10 agile development methods, and compares the methods with
respect to the phases that they support and the level of competence that they re-
quire. Only DSDM and the Rational Unified Process were found to give full cov-
erage to all phases of development, while Scrum mainly covers aspects related to
project management. Abrahamsson et al. found anecdotal evidence that agile
methods are “effective and suitable for many situations and environments”, but
state that very few empirically validated studies support these claims. Chapter 3 in
this book updates this review.
Cohen et al. (2004) published a review that emphasized the history of agile de-
velopment, showing some of the roots to other disciplines, and, in particular, dis-
cussed relations between agile development and the Capability Maturity Model.
The authors believed that agile methods would be consolidate d in the future, just
as object-oriented methods were consolidated. Further, they did not believe that
agile methods would rule out traditional methods. Rather, they believe that agile
and traditional methods will have a symbiotic relationship, in which factors such
as the number of people working on a project, application domain, criticality, and
innovativeness will determine which process to select.
Erickson et al. (2005) described the state of research on extreme programming
(XP), agile software development, and agile modelling. With respect to XP, they
found a small number of case studies and experience reports that promote the suc-
cess of XP. The practice of pair programming is supported by a more well-
established stream of research, and that there are also some studies on iterative de-
velopment. Erickson et al. recommend that the other core practices in XP be stud-
ied separately in order to identify what practices are working. Further, they saw
challenges with matching agile software development methods with standards
such as ISO, and they argued that this is an area that needs further research.
What is currently known about the benefits and limitations of agile software
development, the strength of the evidence in support of these findings, and the im-
plications of these studies for the software industry and the research community
were the focus areas for Dybå and Dingsøyr’s (2008) systematic review. The stud-
ies fell into four thematic groups: introduction and adoption, human and social
factors, perceptions of agile methods, and comparative studies. The authors identi-
fied a number of reported benefits and limitations of agile development within
each of these themes:
Regarding introduction, XP was difficult to introduce in complex organiza-
tions, yet seemingly easy in other types of organizations. Most studies reported
that agile development practices are easy to adopt and work well. Benefits were
reported in the following areas: customer collaboration, work processes for han-
dling defects, learning in pair programming, thinking ahead for management, fo-
cusing on current work for engineers, and estimation.
1 Agile Software Development
4 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
A recurring theme in studies on agile development was human and social factors.
A benefit of XP was that it thrived in radically different environments; in organi-
zations that varied from having a hierarchical structure to little or no central con-
trol. Further, conversation, standardization, and tracking progress have been stud-
ied and are described as mechanisms for creating awareness within teams and
organizations.
Many studies sought to identify how agile methods are perceived by different
groups. Customers are satisfied with opportunities for feedback and response to
change. However, the role of on-site customer can be stressful and cannot be sus-
tained for a long period. Companies that use XP have more satisfied employees.
There were mixed findings regarding the effectiveness of pair programming. Uni-
versity students perceive agile methods as providing them with relevant training.
The last theme was comparative studies. Some studies suggest benefits in pro-
jects that use agile methods because changes are incorporated more easily and
business value is demonstrated more efficiently. It is possible to combine agile
project management with overall traditional principles, such as the stage-gate pro-
ject management model. With respect to the productivity of agile and traditional
teams, three of the four comparative studies that address this issue found that
using XP results in increased productivity.
Fig. 1.1 Publications on agile software development, total number (top), conference papers
(middle) and journal articles (bottom). Note that the numbers for 2009 do not include all publica-
tions from that year
5
1.3.2 An Analysis of Literature on Agile Development
To describe the status of research on agile software development, we conducted a
literature search in the ISI Web of Science1. We found 719 scientific publications
regarding agile software development, published between 1997 and 2009. Of
these, 627 were papers in conference proceedings (87%), and 92 were journal arti-
cles (13%, including review articles). Figure 1.1 illustrates the trend in publica-
tions for conference papers, journal articles and the total. There seems to be a
steady growth in the number of publications in total (until 2009).
Table 1.1 The 20 countries with most publications on agile software development
Rank
Country Publications
1
USA 153
2
Germany 52
3
Finland 51
4
Canada 46
5
Australia 41
6
England 31
7
Ireland 27
8
Sweden 20
9
Spain 18
10
Italy 17
11
Israel 15
12
Austria 13
13
Denmark 13
14
Norway 13
15
India 12
16
Chile 11
17
Iran 11
18
New Zealand 10
19
Brazil 9
20
Peoples Republic of China 9
Note that all publications from 2009 have not been indexed at the time of the
search. For example, papers from the Agile 2009 conference were not indexed,
and this conference alone had 28 papers in the search results from 2008.
1 Search conducted on 22 February 2010, using the term “agile AND software AND develop-
ment” as topics for subject areas computer science: software engineering, theory and methods
and information systems. Document types proceedings paper, review or article. Databases: SCI-
EXPANDED, SSCI, A&HCI, CPCI-S, CPCI-SSH.
1 Agile Software Development
6 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
These figures seem to indicate that there is a substantial interest in agile software
development amongst research environments.
An examination of the country of origin of the publications, gives the list as in
Table 1.1, which states that authors from the USA are by far most frequent in the
author lists of publications, followed by Germany and Finland. The total number
of articles with authors from Europe among the top 20 countries is 301, about
twice that of the USA. Thus, it seems that most agile research is authored in Eu-
rope, followed by North America, Oceania and Asia.
Further, we present the institutions that are more frequently occurring in the
search, in Table 1.22. The VTT Technical Research Centre of Finland has the
highest number of publications, followed by the University of Calgary in Canada,
SINTEF in Norway and Technion Israel Institute of Technology. Europe has
eleven institutions among the top 20, while North America has four, Oceania
three, South America and Asia one each.
Another interesting bibliographic finding in the search is what papers on agile
development are most cited, and how much cited they are. In Table 1.3 we list the
20 most cited papers, and we see that the top three have 61, 46 and 33 citations re-
spectively. Further we see that only two of the highly cited articles are published
at conferences, papers 2 and 17, which were published at the International Confer-
ence on Software Engineering. Of the remaining, nine were published in maga-
zines (IEEE Software, IEEE Computer and Communications of the ACM) and
nine were published in primary journals like IEEE Transactions on Software En-
gineering and the European Journal of Information Systems. 70% of the articles
were published in venues we can categorize as mainly software engineering, and
30% we can arguably categorize as mainly information systems.
This analysis shows that journal publications are most important in the field of
agile software development, and that the field gathers interest mainly from the
software engineering community, but also from the information systems com-
munity.
2 Some institutions were registered with several names in ISI Web of Science. For Table 1.2, we
aggregated numbers for VTT and SINTEF, which were the only institutions among the top 20
with several names.
7
Table 1.2 The 20 institutions with most publications on agile software development
Rank
Institution Publications
1
VTT Technical Research Centre of Finland 22
2
University of Calgary, Canada 21
3
SINTEF, Norway 10
4
Technion Israel Institute of Technology 10
5
Dundalk Institute of Technology, Ireland 9
6
University of Technology Sydney, Australia 9
7
North Carolina State University, USA 8
8
Blekinge Institute of Technology, Sweden 6
9
Carnegie Mellon University, USA 6
10
Helsinki University of Technology, Finland 6
11
Pontificia Universidad Catolica Valparaiso, Chile 6
12
Sharif University of Technology, Iran 6
13
Technical University of Munich, Germany 6
14
University of Alabama, USA 6
15
University of Wollongong, Australia 6
16
Georgia State University, USA 5
17
University of Aalborg, Denmark 5
18
University of Cagliari, Italy 5
19
University of Limerick, Ireland 5
20
University of Oulu, Finland 5
1.4 Main Themes in this Book
The remaining chapters of the book are organized into three parts: Foundations
and Background of Agile Development, Agile Methods in Practice and Principal
Challenges and New Frontiers.
1.4.1 Foundations and Background of Agile Development
In addition to this chapter, this part includes two chapters: Chapter 2, “Towards an
understanding of the Conceptual Underpinnings of Agile Development Method-
ologies” by Nerur, Cannon, Balijepally and Bond, and Chapter 3, “Agile Software
Development Mehods: A Compararive Review” by Abrahamsson, Oza and Sip-
ponen.
1 Agile Software Development
8 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
Table 1.3 The 20 most cited articles on agile software development
Rank
Reference
1
Highsmith, J. and Cockburn, A. (2001) Agile software development: The business
of innovation, IEEE Computer, vol. 34.
2
Abrahamsson, P., Warsta, J., Siponen, M. T. and Ronkainen, J. (2003) New direc-
tions on agile methods: A comparative analysis, Proc. ICSE, pp. 244-254.
3
Boehm, B. (2002) Get ready for agile methods, with care, IEEE Computer, vol. 35.
4
Erickson, J., Lyytinen, K. and Siau, K. (2005) Agile modeling, agile software de-
velopment, and extreme programming: The state of research, Journal of Database
Management, vol. 16.
5
Sharp, H. and Robinson, H. (2004) An ethnographic study of XP practice, Empiri-
cal Software Engineering, vol. 9.
6
George, B. and Williams, L. (2004) A structured experiment of test-driven devel-
opment, Information and Software Technology, vol. 46.
7
Ramesh, B., Cao, L., Mohan, K. and Xu, P. (2006) Can distributed software devel-
opment be agile?, Communications of the ACM, vol. 49.
8
Fitzgerald, B., Hartnett, G. and Conboy, K. (2006) Customising agile methods to
software practices at Intel Shannon, European J. of Information Systems, vol. 15.
9
Janzen, D. and Saiedian, H. (2005) Test-driven development: Concepts, taxonomy,
and future direction, IEEE Computer, vol. 38.
10
Dybå, T. and Dingsøyr, T. (2008) Empirical studies of agile software develop-
ment: A systematic review, Information and Software Technology, vol. 50.
11
Aoyama, M. (1998) Web-based agile software development, IEEE Software, vol.
15.
12
Turk, D., France, R. and Rumpe, B. (2005) Assumptions underlying agile software
software-development processes, Journal of Database Management, vol. 16.
13
Boehm, B. and Turner, R. (2005) Management challanges to implementing Agile
Processes in traditional development organizations, IEEE Software, vol. 22.
14
Alshayeb, M. and Li, W. (2003) An empirical validation of object-oriented metrics
in two different iterative software processes, IEEE Trans. on Soft. Eng., vol. 29.
15
Henderson- Sellers, B. and Serour, M. K. (2005) Creating a dual-agility method:
The value of method engineering, Journal of Database Management, vol. 16.
16
Baskerville, R., Ramesh, B., Levine, L., Pries-Heje, I. and Slaughter, S. (2003) Is
Internet-speed software development different?, IEEE Software, vol. 20.
17
Hulkko, H. and Abrahamsson, P. (2005) A multiple case study on the impact of
pair programming on product quality, Proc. ICSE, pp. 495
18
Lippert, M., et al. (2003) Developing complex projects using XP with extensions,
IEEE Computer, vol. 36.
19
Olague, H. M., et al. (2007) Empirical validation of three software metrics suites to
predict fault-proneness of object-oriented classes developed using highly iterative
or agile software development processes, IEEE Trans. on Soft. Eng., vol. 33.
20
Lycett, M., Macredie, R. D., Patel, C. and Paul, R. J. (2003) Migrating agile meth-
ods to standardized development practice, IEEE Computer, vol. 36.
9
The intellectual foundation of agile methods is explored in Chapter 2, to under-
stand underlying premises for this new paradigm in software development. This
understanding will be valuable both in assessing current practice as well as to ad-
vance the field.
An overview and analysis of the agile methods that exist is presented in Chap-
ter 3, to make sense of the approaches. Agile methods are described in an analyti-
cal framework covering: project management support, life-cycle coverage, type of
practical guidance, adaptability in actual use, type of research objectives and ex-
istence of empirical evidence for the method. The analysis shows that agile meth-
ods support different phases of development, and most methods lack support for
project management.
1.4.2 Agile Methods in Practice
This part includes Chapter 4, “Three ‘C’s of Agile Practice: Collaboration, Co-
ordination and Communication” by Sharp and Robinson, Chapter 5, “From Exotic
to Mainstream: A 10-year odyssey from Internet Speed to Boundary Spanning
with Scrum” by Baskerville, Pries-Heje and Madsen, Chapter 6, “An Ideal Cus-
tomer: A Grounded Theory of Requirements Elicitation, Communication and Ac-
ceptance on Agile Projects” by Martin, Biddle and Noble and Chapter 7, “Pair
Programming: Issues and Challenges” by Lui, Barnes and Chan.
What is crucial in supporting team collaboration, co-ordination and communi-
cation is described in Chapter 4, based over on ten eight years of studies of agile
development teams. Story cards and walls are crucial to support collaboration and
co-ordination related to project progress. To share information on functional de-
pendencies, agile teams rely on communication and social practices.
The evolution of methods is the topic of Chapter 5, deriving from four empiri-
cal studies of software development over a ten-year period. From “internet-speed
development”, methods were affected by dramatic changes in the market for soft-
ware development, which caused disruption of established practices, experimenta-
tion and process adaptations. This was followed by consolidations of lessons
learned into more mature software development processes.
The customer has a very important role in agile development projects, and this
role is under investigation in Chapter 6. Described as a critical, complex and de-
manding role, the chapter outlines practices that ensure that the customer role
works effectively and sustainably in a way that involve the whole development
team.
Pair programming is perhaps still the most known practice in agile develop-
ment, made popular mainly through extreme programming. But even though pair
programming has been one of the most researched topics in agile development,
Chapter 7 describe the practice as controversial, despite its growth in popularity
both among practitioners and academics. One concern has been the productivity of
1 Agile Software Development
10 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
solo and pair programming, which is still not fully understood. However, the
chapter also seeks to explain how and why pair programming can be made pro-
ductive.
1.4.3 Principal Challenges and New Frontiers
This part includes Chapter 8, “Architected Agile Solutions for Software-Reliant
Systems” by Boehm, Lane, Koolmanojwong and Turner, Chapter 9, “Agile Inter-
action Design and Test-Driven Development of User Interfaces A Literature Re-
view” by Hellmann, Hosseini-Khayat and Maurer, Chaper 10, “Organizational
Culture and the Deployment of Agile Methods: The Competing Values Model
View” by Iivari and Iivari, and Chapter 11, “Future Research in Agile Systems
Development: Applying Open Innovation Principles Within the Agile Organiza-
tion” by Conboy and Morgan.
Balancing architecture and agility has been a concern of many, including advo-
cates of plan-driven software development. Chapter 8 describes key principles
when scaling up agile development projects that require stronger architectural
support. Further, the chapter provides guidance to the key principles, and il-
lustrates these with case studies.
Usability of software solutions is a challenge in any development project.
Chapter 9 gives an overview of previous studies on usability engineering which
has approaches shown to improve usability and reduce probability of revision.
Further, the chapter gives an overview of test-driven development of user inter-
faces, and explains how these two styles of development can be combined to pro-
duce testable GUI-based applications by agile teams.
Agile development seem to be exceptionally well-received by practitioners,
what is the explanation for this success? This is the central question in Chapter 10,
which describe organizational culture as a factor that affects the deployment of ag-
ile software development methods. Among the hypothesis posed is that agile
methods are incompatible with a hierarchical organizational culture, although ag-
ile development is more disciplined than ad hoc development.
Innovation is the topic of Chapter 11, which argues that the idea of a single
customer representative must be abandoned because it leads to a too narrow focus,
and to a lack of involvement of important stakeholders. Agile development should
adopt current thinking on open innovation, which leads to a much broader per-
spective, involving other business units, customers and partners.
11
1.5 Conclusion
In this chapter, we have motivated why agile development is an important topic,
and further, we have defined and characterized agile software development. In ad-
dition, we have given an overview of research on agile software development in
two parts:
First, an overview of prior research in the area through a summary of four
overview articles, focusing on describing the agile methods, relations to the capa-
bility maturity model, status of research on extreme programming and presenting
what is known about the benefits and limitations of agile methods. These articles
indicate that the field is still in a nascent phase, and that we need more studies of
high quality.
Second, an examination of studies of agile development through a literature
analysis. We presented an overview of publications by year for conference papers
and journal articles, the 20 countries with most publications, the 20 institutions
with most publications, and the 20 most cited articles. The main findings from the
literature analysis is that there seems to be a substantial interest in agile software
development amongst research environments. Further, we find publications from
all over the world: primarily Europe and North America, but also in Oceania, Asia
and South America. When we rank the institutions after publications, they follow
almost the same pattern. From the presentation of the most cited papers, we see
that most highly cited articles are published in journals. Further, we see that the
field gathers most interest from the software engineering community, but also
from the information systems community.
The overview articles that exist in the field summarize research until 2005. The
literature analysis identifies more than 500 articles published on agile software
development since then, which justifies the need for a contemporary overview of
research in the field, which you will find in the remaining chapters of this book.
References
Abrahamsson, Pekka, Salo, Outi, Ronkainen, Jussi and Warsta, Juhani (2002) Agile software de-
velopment methods: Review and analysis, VTT Technical report, pp. 107.
Boehm, Barry (2002) Get ready for agile methods, with care, IEEE Computer, 35, 64 - 69.
Cohen, David, Lindvall, Mikael and Costa, Patricia (2004) In Advances in Computers, Advances
in Software Engineering, Vol. 62 (Ed, Zelkowitz, M. V.) Elsevier, Amsterdam.
Conboy, Kieran (2009) Agility From First Principles: Reconstructing the Concept of Agility in
Information Systems Development, Information Systems Research, 20, 329-354.
Dybå, Tore (2000) Improvisation in Small Software Organizations, IEEE Software, 17, 82-87.
Dybå, Tore and Dingsøyr, Torgeir (2008) Empirical Studies of Agile Software Development: A
Systematic Review, Information and Software Technology, 50, 833-859.
Erickson, John, Lyytinen, Kalle and Siau, Keng (2005) Agile Modeling, Agile Software Devel-
opment, and Extreme Programming: The State of Research, Journal of Database Manage-
ment, 16, 88 - 100.
1 Agile Software Development
12 Torgeir Dingsøyr, Tore Dybå, Nils Brede Moe
Nerur, S., Mahapatra, R. and Mangalaraj, G (2005) Challenges of migrating to agile methodolo-
gies, Communications of the ACM, 48, 72 - 78.
Nerur, Sridhar and Balijepally, VenuGopal (2007) Theoretical Reflections on Agile Develop-
ment Methodologies, Communications of the ACM, 50, 79-83.
Williams, Laurie and Cockburn, Alistair (2003) Agile Software Development: It’s about Feed-
back and Change, IEEE Computer, 36, 39-43.
Author Biographies
Torgeir Dingsøyr works with software process improvement and knowledge man-
agement projects as a senior scientist at SINTEF Information and Communication
Technology, and as an adjunct associate professor at the Department of Computer
and information Science, Norwegian University of Science and Technology. He
has published articles in IEEE Transactions on Software Engineering, IEEE Soft-
ware, Communications of the ACM, Information and Software Technology and
Empirical Software Engineering. He is a co-author of the book "Process Im-
provement in Practice: A Handbook for IT Companies", which appeared on Klu-
wer Academic Publishers in 2004. He wrote his doctoral thesis on knowledge
management in software engineering. His current research interests include soft-
ware process improvement, agile software development and knowledge manage-
ment in software engineering.
Tore Dybå is chief scientist and research manager at SINTEF Information and
Communication Technology, and an adjunct full professor at the Department of
Informatics, University of Oslo. He received his doctoral degree in computer and
information science from the Norwegian University of Science and Technology.
Dr. Dybå worked as a consultant for eight years in Norway and Saudi Arabia be-
fore he joined SINTEF in 1994. His research interests include empirical and evi-
dence-based software engineering, software process improvement, and organiza-
tional learning. Dr. Dybå is the author and co-author of more than 60 refereed
publications appearing in international journals, books, and conference proceed-
ings, including IEEE Transactions on Software Engineering, IEEE Software, In-
formation and Software Technology, Empirical Software Engineering and Soft-
ware Process: Improvement and Practice. He is the principal author of the book
“Process Improvement in Practice: A Handbook for IT Companies,” published as
part of the Kluwer International Series in Software Engineering. He is a member
of the International Software Engineering Research Network, the IEEE, the IEEE
Computer Society, and the editorial board of Empirical Software Engineering.
Nils Brede Moe received the MS degree in computer science from the Norwegian
University of Science and Technology. He is a research scientist at SINTEF In-
formation and Communication Technology. He has 12 years of experience work-
ing as a project manager and researcher within software development. He is a co-
13
author of the book Process Improvement in Practice: A Handbook for IT Com-
panies. His current research interests include global software development, pro-
cess improvement, self-management, and agile software development.
1 Agile Software Development
... Overview of Agile Software Development Williams and Cockburn (2003) as cited in (Dingsoyr et al., 2010) state that agile software development -is about feedback and change‖. They emphasize that software development is an empirical or nonlinear process where short feedback loops are necessary to achieve a desirable, predictable outcomes ( (Erickson et al., 2005) as cited in (Dingsoyr et al., 2010) The outcomes of their discussion were the four values and twelve principles as outlined in the agile manifesto (Beck et al., 2001). ...
... Overview of Agile Software Development Williams and Cockburn (2003) as cited in (Dingsoyr et al., 2010) state that agile software development -is about feedback and change‖. They emphasize that software development is an empirical or nonlinear process where short feedback loops are necessary to achieve a desirable, predictable outcomes ( (Erickson et al., 2005) as cited in (Dingsoyr et al., 2010) The outcomes of their discussion were the four values and twelve principles as outlined in the agile manifesto (Beck et al., 2001). ...
Thesis
Full-text available
This research delved into the intricate dynamics of agile mindsets in the context of organizational transformations, striving to unveil their characteristics, influence on success, and effective cultivation strategies. Through a comprehensive exploration of both quantitative and qualitative data, the study illuminated the core components of agile mindsets, their varying impacts on transformation success across organizational scales, and the strategies organizations can employ to foster and sustain these mindsets. Aligning these insights with established behavioural theories, the research connected agile mindset characteristics to Bandura's Social Cognitive Theory, Maslow's Hierarchy of Needs, the Theory of Planned Behavior, and Transformational Leadership Theory. The findings contribute to a nuanced understanding of agile transformations, offering practical guidance for practitioners and shedding light on the intricate interplay between mindset, behaviour, and organizational success.
... Game development also include agile methods, which have been reported to be beneficial, based on placing an iteration at the beginning of the designing process [29,30] or using iterative design through a scrum (see details of agile 1 method [29] to enable sprints (short documentation of progress through designing and planning game designing procedures) for a reliable end product. To briefly explain, software development methods such as SCRUM, Lean, or Kanban are adapted and applied in game design and development due to games being software [30,31] and that games are potentially improved with iterations of each prototype [32][33][34]. ...
... Game development also include agile methods, which have been reported to be beneficial, based on placing an iteration at the beginning of the designing process [29,30] or using iterative design through a scrum (see details of agile 1 method [29] to enable sprints (short documentation of progress through designing and planning game designing procedures) for a reliable end product. To briefly explain, software development methods such as SCRUM, Lean, or Kanban are adapted and applied in game design and development due to games being software [30,31] and that games are potentially improved with iterations of each prototype [32][33][34]. ...
Chapter
Full-text available
This chapter intends to present game designers’ perspectives which elaborates on the ways they approach designing games. While it is diverse, the interpretive analysis of 17 game designers’ perspectives will be able to shed light on how game-designing processes may be influenced by their experience-based and reflective practice, or whether they apply formal methods based on how game-designing fields represent. Furthermore, it discusses whether the formal methods explained by the game designers resonate with existing literature and compare the relevance between the practices and the literature that advocates best practices. The results are discussed through interpretivism paradigm, to provide the essence of game designers’ experiences and approaches. Lastly, it concludes with a list of common practices in their designing processes for games and a future direction towards how we can understand game designers’ perspectives and ease the designing process of games.
... Furthermore, the agile mindset recognizes that various problems call for unique methods. When deciding on a strategy or technique for project management, It is important to keep in mind the four principles outlined by Cockburn [9] (1) a larger group requires a more robust methodology; (2) a more critical system requires more transparency in its building structure; (3) project cost is inversely related to project methodology size or density as an increase in one decreases other; and (4) physical meeting is the most effective way of communication. The approach taken may also be affected by such factors as priority, deadline, quality, and the degree of transparency wanted. ...
Article
Full-text available
Over the past few decades, the significance of knowledge work has caused companies to shift from a progressive way of dealing with project management to a more cooperative working style. A flexible project management system is essential for project managers in today's increasingly interconnected world, where they must respond quickly and effectively to new threats and opportunities. "Agile" project management practices are well-versed in the necessity of distributing responsibility and initiative in support of transformation to change. In this article, we will compare and contrast Agile Project Management with more conventional methods of project management, focusing on its past practices and current applicability. Considering the increased complexity and unpredictability of projects in the modern economy, Agile Project Management has emerged as a useful tool for both the modern knowledge worker and the project managers responsible for their execution. Aiming to promote the adoption of the agile approach in the business world, this document provides an overview of the framework. INTRODUCTION The idea of the perfect executive is debunked in the February 2007 issue of Harvard Business Review, which instead promotes the "incomplete leader" who is less concerned with "command and control" and more with delegating authority and encouraging individual initiative [4]. Because of the increasing value of knowledge work, businesses have been shifting from a hierarchical structure towards a more collegial one for several decades. The writers of an essay published in September 2005's issue of the Project Management Journal share similar feelings regarding the administration of projects, calling into doubt the "veracity of tight centralized management," "rationalist" discourse, and a "command and control" strategy [21]. The writers argue that local reactions should be made more malleable so that the project system can more easily adapt to new challenges as they arise. The "agile" methodology is well-versed in this need to delegate authority and encourage self-starting behavior to better accommodate unforeseen changes. In this article, we'll take a look at the origins of Agile PM and see if it makes sense to adopt its methodology for our projects. The new economy's information workers and project managers are finding that Agile Project Management is an invaluable instrument. According to Zwicker [15], Lockheed Martin discovered the agile approach while searching for a better way to create software products. Agile project management will be contrasted with more conventional methods. New Project Management Theories Complex and uncertain project circumstances are hallmarks of the modern economy, and much attention in recent years has been devoted to explaining or rethinking a hypothesis of project management that can be utilized in this setting. Authors of a study from 2002, Koskela and Howell [21], contend that the theory of project management has become defunct. The Project Management Institute (PMI) PMBOK (Project Management Body of Knowledge) guide was written with the management-as-planning model, the sending model of implementation, and the thermostat model of control as its theoretical foundations [10]. Koskela and Howell [15] express reservations about the theory's viability in the real world, particularly regarding dealing with ambiguity and innovation. We don't propose anything completely new, but we do suggest some out-of-the-ordinary details: 2) a greater emphasis on Flow and Value generation in addition to change; 3) the incorporation of management-as-organizing for planning; the language/action perspective for implementation; and the scientific experimentation model for control. Although Serum is an agile project management strategy, Koskela and Howell [16] show that it has substantial theoretical foundations. These foundations include the
... The end users give their prerequisites in the first phase of requirement analysis and after that depending on the got necessities design get made and afterward development begins. The conventional procedure allows timely development of the software if no rapid changes are required by the customer and the customer defines it's all requirements initially before the development starts [16]. However, if changes are required by the customer then it's not possible to deploy a software product on time and even within the defined budget. ...
Article
Full-text available
The 1990s saw a shift in software development methodology trends, with an increased emphasis on incremental, iterative methods to software development. The "lightweight model for development," sometimes referred to as the "Agile Approach," is one such tactic. Agile emphasises teamwork and communication more than ever while working on software projects. The right model must be chosen for software development in order to provide high-quality software. Traditional heavy weight development, in contrast to the iterative and collaborative nature of agile light weight development, depends on checkpoints and final reviews to guarantee product quality. This article reviews the different elements that contribute to the success of agile software development as well as the problems involved in ensuring quality in the agile process. This paper review the integration and challenges of quality assurance (QA) within agile software development methodologies. The study identifies key challenges in agile QA, including requirements gathering, stakeholder perspectives, and adapting QA practices to agile's dynamic environment. It highlights the need for more empirical research and practical case studies to validate proposed frameworks and methodologies, suggesting that further exploration is required to optimize QA practices in agile settings and ensure consistent software quality.
... Continuous Improvement: Building a DevOps portfolio is a never-ending journey that demands constant improvement and fine-tuning [78]. Aspiring professionals need to keep their portfolios up-to-date by showcasing their most recent projects and accomplishments [79]. This showcases a dedication to personal development and acquiring knowledge, which are greatly appreciated qualities within the DevOps community [80]. ...
Article
Full-text available
This article provides valuable insights and guidance for aspiring DevOps professionals on building a strong portfolio to succeed in the rapidly evolving technology industry. It highlights the importance of DevOps in driving innovation, efficiency, and collaboration within organizations, and emphasizes the growing demand for skilled professionals in this field. The article discusses the versatility and flexibility required in DevOps roles, and outlines essential skills such as version control, build automation, repository management, CI/CD, scripting and automation, configuration management, Infrastructure as Code, containerization, container orchestration, monitoring and observability, and cloud platforms. It also emphasizes the significance of additional skills, including systems design, data structures and algorithms, programming languages, and security. The article provides practical advice on building a compelling DevOps portfolio through personal projects, illustrating expertise, showcasing a range of projects, effective documentation and presentation, and continuous improvement. By following these guidelines and consistently enhancing their skills, aspiring DevOps professionals can position themselves for a successful and rewarding career in this dynamic field.
... Various Agile methods are used in software development, including the eXtreme programming development process, Scrum development process, crystal family of methodologies (CM), and dynamic system development method [25][26][27]. These methods are utilized to satisfy customers, support interactions, communicate, and produce high-quality products. ...
Article
Full-text available
Agile project management pursues repetitive and continuous management through an empirical process control method considering the complexity of the project. This study aimed to propose a collaborative Building Information Modeling (BIM)-based work process, focusing on construction coordination tasks among participants during the construction phase of a project. The theoretical framework chosen for this endeavor was the Scrum framework, selected after analyzing previous research to align with the specific characteristics of construction coordination. Using the Scrum framework as a foundation, the study employed the exCPM methodology to model the collaborative BIM-based construction coordination progress. To validate the model, it underwent a transformation into a Petri-Nets model through the marked graph building block (MGBB) along with established rules for model conversion. The converted model was then subjected to validation through reachability tree analysis. The findings of this study hold applicability to diverse collaboration processes that leverage BIM in the construction industry.
Article
An understanding of Agile principles and a readiness mindset for human resources professionals play a crucial role in determining the application of Agile for HR in an organisational context. With the rise in extended and non-linear workforce configurations and geo-neutral team arrangements, Agile organisations necessitate that the nature of the HR function evolve from working through traditional architectural models and quickly adopting Agile models of functional excellence. The dearth of literature on understanding and implementing Agile practices in the HR function within enterprises requires a clear examination of the advantages of going Agile for HR. This essay explores the intuitive concept of Agile HR and operating schema, which can develop as a starting point in examining an understanding of how Agile practices in HR can evolve for sustainable enterprises and some challenges that are encountered.
Research
Full-text available
This project expatiates on the definition of Agile Software Development, its benefits and challenges after which Artificial Intelligence was explained, the various machine learning techniques available discussed. �The objectives of this research paper includes Showing shortcomings of Agile methodology that can be addressed by AI integration. Detailing the benefits of AI with Agile integration and showing this benefits using numbers, studies, percentages and figures. Identifying processes in Agile methodology where AI applications can be adopted. Citing challenges that can be experienced during AI application and emphasizing the need for AI application post-processing .
Article
Full-text available
Agile - denoting "the quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion" - software development methods are attempting to offer an answer to the eager business community asking for lighter weight along with faster and nimbler software development processes. This is especially the case with the rapidly growing and volatile Internet software industry as well as for the emerging mobile application environment. The new agile methods have evoked a substantial amount of literature and debates. However, academic research on the subject is still scarce, as most of existing publications are written by practitioners or consultants. The aim of this publication is to begin filling this gap by systematically reviewing the existing literature on agile software development methodologies. This publication has three purposes. First, it proposes a definition and a classification of agile software development approaches. Second, it analyses ten software development methods that can be characterized as being "agile" against the defined criteria. Third, it compares these methods and highlights their similarities and differences. Based on this analysis, future research needs are identified and discussed.
Article
Full-text available
Agile software development represents a major departure from traditional, plan-based approaches to software engineering. A systematic review of empirical studies of agile software development up to and including 2005 was conducted. The search strategy identified 1996 studies, of which 36 were identified as empirical studies. The studies were grouped into four themes: introduction and adoption, human and social factors, perceptions on agile methods, and comparative studies. The review investigates what is currently known about the benefits and limitations of, and the strength of evidence for, agile methods. Implications for research and practice are presented. The main implication for research is a need for more and better empirical studies of agile software development within a common research agenda. For the industrial readership, the review provides a map of findings, according to topic, that can be compared for relevance to their own settings and situations.
Article
Full-text available
While there are many claims for the successful use of extreme programming (XP) and agile modeling (AM), and the proponents can often be vocal in the extreme regarding their supposed benefits, research evidence supporting proponents' claims is somewhat lacking. Currently, the only research appearing to investigate the phenomena consists of two prominent streams. A small number of case studies and experience reports that generally promote the success of XP in various development environments, and a well-established stream of research into pair programming has generated results that in part support the idea of XP. Research into AM appears to be even more sparse than that for XP. Case studies, comparative analyses, and experience reports comprise the majority of the research in the area, while very few empirical research efforts have been conducted. This article reviews the state of research in XP and AM, and recommends areas that could benefit from further study. Since nearly all empirical XP research relates to pair programming, a closer look into the unstudied XP core practices would be beneficial, although interaction between related core practice areas could confound such efforts. It might also be possible to group related core XP concepts and study the groups individually. Finally, there are those who claim that XP and AM, or even agility in general, are really nothing more than a repackaging of old concepts. This claim needs to be investigated.
Article
Full-text available
Agile processes focus on facilitating early and fast production of working code, and are based on software development process models that support iterative, incremental development of software. Although agile methods have existed for a number of years now, answers to questions concerning the suitability of agile processes to particular software development environments are still often based on anecdotal accounts of experiences. An appreciation of the (often unstated) assumptions underlying agile processes can lead to a better understanding of the applicability of agile processes to particular situations. Agile processes are less likely to be applicable in situations in which core assumptions do not hold. This paper examines the principles and advocated practices of agile processes to identify underlying assumptions. The paper also identifies limitations that may arise from these assumptions and outlines how the limitations can be addresses by incorporating other software development techniques and practices into agile development environments.
Article
Full-text available
peer-reviewed Awareness and use of agile methods has grown rapidly among the information systems development (ISD) community in recent years. Like most previous methods, the development and promotion of these methods have been almost entirely driven by practitioners and consultants, with little participation from the research community during the early stages of evolution. While these methods are now the focus of more and more research efforts, most studies are still based on XP, Scrum, and other industry-driven foundations, with little or no conceptual studies of ISD agility in existence. As a result, this study proposes that there are a number of significant conceptual shortcomings with agile methods and the associated literature in its current state, including a lack of clarity, theoretical glue, parsimony, limited applicability, and naivety regarding the evolution of the concept of agility in fields outside systems development. Furthermore, this has significant implications for practitioners, rendering agile method comparison and many other activities very difficult, especially in instances such as distributed development and large teams that are not conducive to many of the commercial agile methods. This study develops a definition and formative taxonomy of agility in an ISD context, based on a structured literature review of agility across a number of disciplines, including manufacturing and management where the concept originated, matured, and has been applied and tested thoroughly over time. The application of the texonomy in practice is then demonstrated through a series of thought trials conducted in a large multinational organization. The intention is that the definition and taxonomy can then be used as a starting point to study ISD method agility regardless of whether the method is XP or Scrum, agile or traditional, complete or fragmented, out-of-the-box or in-house, used as is or tailored to suit the project context.
Article
Software development methodologies are constantly evolving due to changing technologies and new demands from users. Today's dynamic business environment has given rise to emergent organizations that continuously adapt their structures, strategies, and policies to suit the new environment [12]. Such organizations need information systems that constantly evolve to meet their changing requirements---but the traditional, plan-driven software development methodologies lack the flexibility to dynamically adjust the development process.
Article
Identification of the theoretical and conceptual support for the emerging modeling methods of analyzing the basic knowledge of software practice modeled in the principles of agile methodologies is discussed. This type of support develops the agile phenomenon by examining its theoretical concepts. Proponents of agile methods have discovered inadequacies in formal design that follows systematic procedures dictated by rigid processes. The development of the problem solving ideas in architecture reveals several insights into the nature of design, and some of the problems include complexity, emergence, and integrative. Perspective that acknowledges the existence of environmental uncertainty and complexity is highly required in today's strategic management thinking in organizational contexts. The improvement of thinking in software engineering has proved to be effective in developing design ideas in architecture and strategic management.
Article
Agile approaches to software development provide flexibility within the method, but provide little or no flexibility to support software process improvement (SPI). This second kind of flexibility is important to permit organizations to improve with time. To accomplish such improvement, a method-engineering approach is shown here to be useful. Examples of the application of method engineering to agile method construction are given based on the use of the OPEN process framework. A dual-agility method to support both intraproject and interproject flexibility can then be constructed by the selection of appropriate method fragments from this repository with the use of the accompanying guidelines. This is illustrated in an industry study of an organization transitioning to an agile software-development environment in which a minimalistic agile method was first constructed and then enhancements were made as the organization itself improved the process.
Conference Paper
Pair programming is a programming technique in which two programmers use one computer to work together on the same task. There is an ongoing debate over the value of pair programming in software development. The current body of knowledge in this area is scattered and unorganized. Review shows that most of the results have been obtained from experimental studies in university settings. Few, if any, empirical studies exist, where pair programming has been systematically under scrutiny in real software development projects. Thus, its proposed benefits remain currently without solid empirical evidence. This paper reports results from four software development projects where the impact of pair programming on software product quality was studied. Our empirical findings appear to offer contrasting results regarding some of the claimed benefits of pair programming. They indicate that pair programming may not necessarily provide as extensive quality benefits as suggested in literature, and on the other hand, does not result in consistently superior productivity when compared to solo programming.