Agile software development as a response to complexity
Date
2014-04
Authors
Pringle-Wood, Wayne Austen
Journal Title
Journal ISSN
Volume Title
Publisher
Stellenbosch : Stellenbosch University
Abstract
ENGLISH ABSTRACT: Organisations are faced with ever increasing complexity. While there are many responses to
complexity just as there are many definitions of complexity this thesis highlights the use of
agile software development as a useful method. The case of agile software development is
influenced by its people first approach and minimal process implementation to implement
constraints in which phenomena of complexity can be understood.
Chapter 1 introduces why complexity is relevant in the organisation today and the issues
associated with complexity. A basic introduction to agile software development and why it is
a response to complexity is tabled.
Chapter 2 investigates the concepts of complexity. To highlight the difference between linear
and non-linear systems and reductionistic thinking the ideas that not all things are complex is
explored. Key concepts of complex systems are described to come to a better understanding
of what entails a complex system. Information theory and dynamic systems are discussed
including system attributes such as attractors and bifurcations. Finally the theory of complex
adaptive systems is presented and a classification of all complexity theories is tabled.
Chapter 3 is centred on agile software development, presenting practices and processes as a
understanding of how agile software development is applicable to complexity. Three agile
methods are identified.
Chapter 4 presents the ideas of modelling and limits to understanding. Models of complex
systems are useful but are limited, due to the properties of complex systems. The concept of
mental models leads to models of organisations and how leaders need to help with
transformation of these models towards models that are more aligned to agile type thinking.
Chapter 5 looks at the core concepts, and practices of agile applied to complexity and why
these are relevant in responding to complexity. Towards the end of chapter the role of
narrative is explored in the terms of problem definition and solutioning in complex systems.
Chapter 6 concludes the thesis with insights where agile software development is an
appropriate response to complexity and the conditions in which it is not.
AFRIKAANSE OPSOMMING: Organisasies staar toenemende kompleksiteit in die gesig en alhoewel daar verskeie maniere bestaan om kompleksiteit teen te werk, asook verskeie definisies van wat kompleksiteit is, focus die tesis op aanpasbare ("agile") sagteware ontwikkeling as n bruikbare metode. Met eienskappe soos “mense/verbruiker/gebruiker – eerste” benadering asook minimale proses implementering, verskaf aanpasbare sagteware ontwikkeling die raamwerk waar binne die konsep kompleksiteit verstaan kan word. Hoofstuk 1 bespreek die kwessies rondom kompleksiteit en die relevansie daarvan in organisasies vandag. Verder word aanpasbare sagteware ontwikkeling kortliks bespreek en hoe dit gebruik kan word om kompleksiteit te verstaan, word getoon. Hoofstuk 2 ondersoek die verskillende konsepte random kompleksiteit. Daar word gekyk na linêre en nie-linêre stelsels asook die oortuiging dat nie alle dinge kompleks is nie word geondersoek. Sleutel kenmerke van komplekse stelsels word beskryf om sodoende ‘n better begrip te kry van wat ‘n komplekse stelsel behels. Informasie teorie en dinamiese stelsels word bespreek, insluitend kenmerke soos “attraktors” en “bifurkasies”. Laastens, word die teorie rondom komplekse aanpasbare stelsels bespreek en ‘n klassifikasie van alle komplekse teorieë word uiteengesit. Hoofstuk 3 fokus op “agile software development” en hoe sulke praktyke en prosesse toepaslik is op kompleksiteit. Daaropvolgend word drie aanpasbare metodes ge-identifiseer en individueel bespreek. Hoofstuk 4 verduidelik die idees rondom modellering en grense van begrip. Modelle van komplekse stelsels kan nuttig wees, maar weens die eienskappe van komplekse stelsels, is die nuttigheid beperk. Die konsep van mentale modelle lei tot modelle van organisasies en hoe leiers hierdie modelle moet transformer na modelle wat meer in-lyn is met agile denkwyses. Hoofstuk 5 kyk na die kern konsepte en praktyke waar “agile” toegepas word tot kompleksiteit en waarom dit relevant is om kompleksiteit teen te werk. In die tweede helfde van die hoofstuk word die rol van narratief ondersoek in terme van probleem-identifisering en die soek na oplossings in komplekse sisteme. Hoofstuk 6 sluit af met insigte tot aanpasbare sagteware ontwikkelingsmetodes as toepaslike oplossing tot kompleksiteit asook die toestande waaronder dit geld.
AFRIKAANSE OPSOMMING: Organisasies staar toenemende kompleksiteit in die gesig en alhoewel daar verskeie maniere bestaan om kompleksiteit teen te werk, asook verskeie definisies van wat kompleksiteit is, focus die tesis op aanpasbare ("agile") sagteware ontwikkeling as n bruikbare metode. Met eienskappe soos “mense/verbruiker/gebruiker – eerste” benadering asook minimale proses implementering, verskaf aanpasbare sagteware ontwikkeling die raamwerk waar binne die konsep kompleksiteit verstaan kan word. Hoofstuk 1 bespreek die kwessies rondom kompleksiteit en die relevansie daarvan in organisasies vandag. Verder word aanpasbare sagteware ontwikkeling kortliks bespreek en hoe dit gebruik kan word om kompleksiteit te verstaan, word getoon. Hoofstuk 2 ondersoek die verskillende konsepte random kompleksiteit. Daar word gekyk na linêre en nie-linêre stelsels asook die oortuiging dat nie alle dinge kompleks is nie word geondersoek. Sleutel kenmerke van komplekse stelsels word beskryf om sodoende ‘n better begrip te kry van wat ‘n komplekse stelsel behels. Informasie teorie en dinamiese stelsels word bespreek, insluitend kenmerke soos “attraktors” en “bifurkasies”. Laastens, word die teorie rondom komplekse aanpasbare stelsels bespreek en ‘n klassifikasie van alle komplekse teorieë word uiteengesit. Hoofstuk 3 fokus op “agile software development” en hoe sulke praktyke en prosesse toepaslik is op kompleksiteit. Daaropvolgend word drie aanpasbare metodes ge-identifiseer en individueel bespreek. Hoofstuk 4 verduidelik die idees rondom modellering en grense van begrip. Modelle van komplekse stelsels kan nuttig wees, maar weens die eienskappe van komplekse stelsels, is die nuttigheid beperk. Die konsep van mentale modelle lei tot modelle van organisasies en hoe leiers hierdie modelle moet transformer na modelle wat meer in-lyn is met agile denkwyses. Hoofstuk 5 kyk na die kern konsepte en praktyke waar “agile” toegepas word tot kompleksiteit en waarom dit relevant is om kompleksiteit teen te werk. In die tweede helfde van die hoofstuk word die rol van narratief ondersoek in terme van probleem-identifisering en die soek na oplossings in komplekse sisteme. Hoofstuk 6 sluit af met insigte tot aanpasbare sagteware ontwikkelingsmetodes as toepaslike oplossing tot kompleksiteit asook die toestande waaronder dit geld.
Description
Thesis (MPhil)--Stellenbosch University, 2014.
Keywords
Agile software development, Non linear systems, Complexity in organizations, UCTD, Dissertations -- Information science, Theses -- Information science