Agile software development as a response to complexity

Pringle-Wood, Wayne Austen (2014-04)

Thesis (MPhil)--Stellenbosch University, 2014.

Thesis

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.

Please refer to this item in SUNScholar by using the following persistent URL: http://hdl.handle.net/10019.1/86373
This item appears in the following collections: