Agile softwareengineering

23
Agile Software Agile Software Engineering Engineering A Presentation by: A Presentation by: Austin Riddle Austin Riddle

Transcript of Agile softwareengineering

Page 1: Agile softwareengineering

Agile Software EngineeringAgile Software Engineering

A Presentation by:A Presentation by: Austin RiddleAustin Riddle

Page 2: Agile softwareengineering

OverviewOverview

Agile MethodologyAgile Methodology– Concepts and IdeologyConcepts and Ideology– OriginsOrigins– Applicable DomainsApplicable Domains

Case StudiesCase StudiesProcess ExampleProcess ExampleAdoption DetractorsAdoption DetractorsAgile vs. Plan Driven ProcessesAgile vs. Plan Driven ProcessesFuture HeadingsFuture Headings

Page 3: Agile softwareengineering

What is Agile Software What is Agile Software Development?Development?

Easily moved, light, nimble, active Easily moved, light, nimble, active software processessoftware processesFitting the process to the projectFitting the process to the projectAvoidance of things that waste timeAvoidance of things that waste time

References: [1], [10]References: [1], [10]

Page 4: Agile softwareengineering

Agile Software Development Agile Software Development EcosystemEcosystem

““Chaordic” PerspectiveChaordic” PerspectiveCollaborative Values and PrinciplesCollaborative Values and PrinciplesStreamlined MethodologyStreamlined Methodology

Reference: [10] Reference: [10]

Page 5: Agile softwareengineering

Agile Software Development IdealsAgile Software Development Ideals

Individuals and interactions Individuals and interactions overover process and process and toolstoolsWorking Software Working Software overover comprehensive comprehensive documentationdocumentation– Rework vs. ReuseRework vs. Reuse

Customer collaboration Customer collaboration overover contract negotiation contract negotiation– Solutions vs. ProductsSolutions vs. Products

Responding to change Responding to change over over following a planfollowing a plan

References: [4], [10]References: [4], [10]

Page 6: Agile softwareengineering

Substantive DefinitionSubstantive Definition

“the continual readiness of an entity to rapidly or inherently, proactively or reactively, embrace change, through high quality, simplistic, economical components and relationships with its environment”.

Reference: [6]Reference: [6]

Page 7: Agile softwareengineering

Origins and FoundationsOrigins and Foundations

References: [1] (image), [6], [10]References: [1] (image), [6], [10]

XPCrystal Fam.

Scrum

AgilePP

Agile Modelling

Adaptive SD

Page 8: Agile softwareengineering

Applicable DomainsApplicable Domains

Multi-Sized CorporationsMulti-Sized Corporations– Multi-team environments using overlapping Multi-team environments using overlapping

cross-team communitiescross-team communities

Government ContractsGovernment ContractsMost effective for extreme projectsMost effective for extreme projectsProjects that do not work well in rigorous Projects that do not work well in rigorous plan-driven processesplan-driven processes

References: [2], [5], [8], [10], [14]References: [2], [5], [8], [10], [14]

Page 9: Agile softwareengineering

Case StudiesCase Studies

Daimler-Chrysler Embedded SoftwareDaimler-Chrysler Embedded SoftwareCaribouLake.com DatabaseCaribouLake.com DatabaseNuclear Control Systems ManufacturerNuclear Control Systems Manufacturer

References: [9], [12], [15]References: [9], [12], [15]

Page 10: Agile softwareengineering

Daimler-Chrysler Case StudyDaimler-Chrysler Case Study

ReasonsReasons1.1. Rising workloadRising workload2.2. Frequent late changesFrequent late changes3.3. Difficult time and quality Difficult time and quality

constraintsconstraints4.4. Late deliveryLate delivery

Problem: Customer specific add-ons a hassleProblem: Customer specific add-ons a hassle

SolutionsSolutions1.1. Implement highest initial value item firstImplement highest initial value item first2.2. Identify discrepancies of Work Products to Specifications Identify discrepancies of Work Products to Specifications as automated as automated

as possibleas possible3.3. Identify discrepancies of Work Products to Specifications Identify discrepancies of Work Products to Specifications as soon as as soon as

possiblepossible4.4. Fix discrepancies of Work Products to Specifications Fix discrepancies of Work Products to Specifications as soon as as soon as

possiblepossible

Image From: [15]Image From: [15]

Page 11: Agile softwareengineering

Daimler-Chrysler Case Study Daimler-Chrysler Case Study ResultsResults

Overall Solution: Combination of classical and agile Overall Solution: Combination of classical and agile practicespractices– Test First practicesTest First practices– Unit TestingUnit Testing

ChallengesChallenges– No external supportNo external support– Test cases were difficult to scopeTest cases were difficult to scope– Developer transitionsDeveloper transitions

implement->document->testimplement->document->testtest->implement->documenttest->implement->document

EffectsEffects– Substantial increase in flexibility, quality and timelinessSubstantial increase in flexibility, quality and timeliness– Greater acceptance of agile practicesGreater acceptance of agile practices

Page 12: Agile softwareengineering

CaribouLake.com Case StudyCaribouLake.com Case Study

Problem: Database design during short Problem: Database design during short development iterationsdevelopment iterationsReasonsReasons– Traditional up-front database development Traditional up-front database development

impracticalimpracticalLate requirements changesLate requirements changesDatabase changes more costly than application Database changes more costly than application changeschanges

Page 13: Agile softwareengineering

CaribouLake.com Case Study CaribouLake.com Case Study ResultsResults

Solution: Collaborative schema evolutionSolution: Collaborative schema evolution– Formalized RefactoringFormalized Refactoring– Test SuitesTest Suites– Database coding standardsDatabase coding standards

EffectsEffects– Distributed knowledge of database designDistributed knowledge of database design– Faster developmentFaster development– Leaner database schemaLeaner database schema

Page 14: Agile softwareengineering

Nuclear Control Systems Nuclear Control Systems Manufacturer Case StudyManufacturer Case Study

Problem: Difficulty replacing old control softwareProblem: Difficulty replacing old control software– Heavyweight waterfall process too inflexibleHeavyweight waterfall process too inflexible

Solution: Independent research and wholesale adoption Solution: Independent research and wholesale adoption of agile processesof agile processes– No upfront training of teamNo upfront training of team– Absence of common working area, workstation configurations Absence of common working area, workstation configurations

and an integration and build environmentand an integration and build environment

ResultsResults– Five development iterations produced Five development iterations produced

< 20% projected business value< 20% projected business value– Agile process approach “canned”Agile process approach “canned”– Team was demoralizedTeam was demoralized

Page 15: Agile softwareengineering

Example Process ComparisonExample Process Comparison

Image From: [13]

Page 16: Agile softwareengineering

Adoption DetractorsAdoption DetractorsInconsistent and diverse definitionsInconsistent and diverse definitionsLack of theoretical groundingLack of theoretical groundingDifferent way of thinkingDifferent way of thinking– Role changesRole changes– Situational customizationSituational customizationSolid people skills requiredSolid people skills requiredShort iterations inhibit long-term perspectiveShort iterations inhibit long-term perspectiveRisksRisks– Harder to manage feature creep and customer Harder to manage feature creep and customer

expectationsexpectations– Difficult to quantify cost, time, quality.Difficult to quantify cost, time, quality.

References: [1], [3], [6], [7], [13], [16]References: [1], [3], [6], [7], [13], [16]

Page 17: Agile softwareengineering

Agile vs. Plan Driven ProcessesAgile vs. Plan Driven Processes1.1. Small products and Small products and

teams; scalability limitedteams; scalability limited2.2. Untested on safety-Untested on safety-

critical productscritical products3.3. Good for dynamic, but Good for dynamic, but

expensive for stable expensive for stable environments.environments.

4.4. Require experienced Require experienced Agile personnel Agile personnel throughoutthroughout

5.5. Personnel thrive on Personnel thrive on freedom and chaosfreedom and chaos

1.1. Large products and Large products and teams; hard to scale teams; hard to scale downdown

2.2. Handles highly critical Handles highly critical products; hard to scale products; hard to scale downdown

3.3. Good for stable, but Good for stable, but expensive for dynamic expensive for dynamic environmentsenvironments

4.4. Require experienced Require experienced personnel only at start if personnel only at start if stable environmentstable environment

5.5. Personnel thrive on Personnel thrive on structure and orderstructure and order

Reference: [5]Reference: [5]

Page 18: Agile softwareengineering

Use of Agile and Plan Driven Use of Agile and Plan Driven ProcessesProcesses

Each have Each have appropriate roles in appropriate roles in software developmentsoftware developmentMost use Agile-Plan Most use Agile-Plan Driven HybridDriven Hybrid

When should each be When should each be used?used?

References: [5] (image), [7], [12]References: [5] (image), [7], [12]

Page 19: Agile softwareengineering

My Agile SynopsisMy Agile Synopsis

No such thing as Agile hybrid.No such thing as Agile hybrid.Agility is about flexibility and leanness.Agility is about flexibility and leanness.Agility != Lack of StructureAgility != Lack of StructureChange of process control from Top-Down Change of process control from Top-Down to Bottom-Upto Bottom-Up

Page 20: Agile softwareengineering

An Eye on the FutureAn Eye on the Future

Volatility and uncertainty in project Volatility and uncertainty in project environmentsenvironments– Increased demand for more adaptive Increased demand for more adaptive

processesprocessesMore theoretical research in Agile More theoretical research in Agile MethodsMethodsCombined methods emerging (Agile RUP)Combined methods emerging (Agile RUP)Expanded fields of use (anywhere design Expanded fields of use (anywhere design is present)is present)

References: [1], [3], [5], [6], [7], [11]References: [1], [3], [5], [6], [7], [11]

Page 21: Agile softwareengineering

ReferencesReferences1)1) Abrahamsson, P. et al. New Directions on Agile Methods: A Comparative Analysis. In Abrahamsson, P. et al. New Directions on Agile Methods: A Comparative Analysis. In Proceedings of the 25Proceedings of the 25 thth

International Conference on Software EngineeringInternational Conference on Software Engineering . IEEE 244-256, Portland, Oregon, May 2003. May be found . IEEE 244-256, Portland, Oregon, May 2003. May be found at: at: http://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770244abs.htmhttp://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770244abs.htm

2)2) Alleman, G. B. and Henderson, M. Making Agile Development Work in a Government Contracting Alleman, G. B. and Henderson, M. Making Agile Development Work in a Government Contracting Environment. In Environment. In Proceedings of theProceedings of the Agile Development Conference (ADC’03).Agile Development Conference (ADC’03). IEEE 114-120, Salt Lake City, IEEE 114-120, Salt Lake City, Utah, June 2003. May be found at: Utah, June 2003. May be found at: http://csdl.computer.org/comp/proceedings/adc/2003/2013/00/20130114abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2003/2013/00/20130114abs.htm

3)3) Armitage, J. Are Agile Methods Good for Design? Armitage, J. Are Agile Methods Good for Design? InteractionsInteractions. ACM 14-23. 11,1 January 2004. May be found . ACM 14-23. 11,1 January 2004. May be found at: http://portal.acm.org/citation.cfm?id=962342.962352at: http://portal.acm.org/citation.cfm?id=962342.962352

4)4) Beck, K. et al. Manifesto for Agile Software Development. Last Access: 02-7-2005. May be found at: Beck, K. et al. Manifesto for Agile Software Development. Last Access: 02-7-2005. May be found at: http://www.agilemanifesto.org/http://www.agilemanifesto.org/

5)5) Boehm, B. and Turner, R. Using Risk to Balance Agile and Plan-Driven Methods. Boehm, B. and Turner, R. Using Risk to Balance Agile and Plan-Driven Methods. IEEE ComputerIEEE Computer. IEEE 57-. IEEE 57-66, 36,6, June 2003. May be found at: 66, 36,6, June 2003. May be found at: http://csdl.computer.org/comp/mags/co/2003/06/r6057abs.htmhttp://csdl.computer.org/comp/mags/co/2003/06/r6057abs.htm

6)6) Conboy, K. and Fitzgerald, B. Toward a Conceptual Framework of Agile Methods: A Study of Agility in Conboy, K. and Fitzgerald, B. Toward a Conceptual Framework of Agile Methods: A Study of Agility in Different Disciplines. In Different Disciplines. In Proceedings of the 2004 ACM Workshop on Interdisciplinary Software Engineering Proceedings of the 2004 ACM Workshop on Interdisciplinary Software Engineering ResearchResearch. ACM 37-44, Newport Beach, CA. November 2004. May be found at: . ACM 37-44, Newport Beach, CA. November 2004. May be found at: http://http://portal.acm.org/citation.cfm?idportal.acm.org/citation.cfm?id=1029997.1030005=1029997.1030005

7)7) Derbier, G. Agile Development in the Old Economy. In Derbier, G. Agile Development in the Old Economy. In Proceedings of theProceedings of the Agile Development Conference Agile Development Conference (ADC’03).(ADC’03). IEEE 125-132, Salt Lake City, tah, June 2003. May be found at: IEEE 125-132, Salt Lake City, tah, June 2003. May be found at: http://csdl.computer.org/comp/proceedings/adc/2003/2013/00/20130125abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2003/2013/00/20130125abs.htm

8)8) Green, B. Agile Methods Applied to Embedded Firmware Development. In Green, B. Agile Methods Applied to Embedded Firmware Development. In Proceedings of theProceedings of the Agile Agile Development Conference (ADC’04).Development Conference (ADC’04). IEEE 71-77, Salt Lake City, Utah, June 2004. May be found at: IEEE 71-77, Salt Lake City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480071abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480071abs.htm

9)9) Harriman, A., Hodgetts, P. and Leo, M. Emergent Database Design: Liberating Database Development with Harriman, A., Hodgetts, P. and Leo, M. Emergent Database Design: Liberating Database Development with Agile Practices. In Agile Practices. In Proceedings of theProceedings of the Agile Development Conference (ADC’04).Agile Development Conference (ADC’04). IEEE 100-105, Salt Lake IEEE 100-105, Salt Lake City, Utah, June 2004. May be found at: City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480100abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480100abs.htm

Page 22: Agile softwareengineering

References (Cont.)References (Cont.)10)10) Highsmith, J. What is Agile Software Development? Highsmith, J. What is Agile Software Development? CrossTalk: The Journal of Defense Software CrossTalk: The Journal of Defense Software

EngineeringEngineering. Oct. 2002. May be found at: . Oct. 2002. May be found at: http://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.htmlhttp://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.html11)11) Hirsch, M. Making RUP Agile. In Hirsch, M. Making RUP Agile. In Practitioners Reports of the Conference on Object Oriented Practitioners Reports of the Conference on Object Oriented

Programming Systems Languages and Applications (OOPSLA 2002)Programming Systems Languages and Applications (OOPSLA 2002). ACM 1-28. Seattle, . ACM 1-28. Seattle, Washington, November 2002. May be found at: Washington, November 2002. May be found at: http://http://portal.acm.org/citation.cfm?idportal.acm.org/citation.cfm?id=604251.604254=604251.604254

12)12) Hodgetts, P. Refactoring the Development Process: Experiences with the Incremental Adoption of Hodgetts, P. Refactoring the Development Process: Experiences with the Incremental Adoption of Agile Practices. In Agile Practices. In Proceedings of theProceedings of the Agile Development Conference (ADC’04).Agile Development Conference (ADC’04). IEEE 106-113, Salt IEEE 106-113, Salt Lake City, Utah, June 2004. May be found at: Lake City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480106abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480106abs.htm

13)13) Huo, M. et. al. Software Quality and Agile Methods. In Huo, M. et. al. Software Quality and Agile Methods. In Proceedings of the 28th Annual International Proceedings of the 28th Annual International Computer Software and Applications Conference (COMPSAC'04).Computer Software and Applications Conference (COMPSAC'04). IEEE 520-525, Hong Kong. IEEE 520-525, Hong Kong. September 2004. May be found at: September 2004. May be found at: http://csdl.computer.org/comp/proceedings/compsac/2004/2209/01/220910520abs.htmhttp://csdl.computer.org/comp/proceedings/compsac/2004/2209/01/220910520abs.htm

14)14) Kähkönen, T. Agile Methods for Large Organizations – Building Communities of Practice. In Kähkönen, T. Agile Methods for Large Organizations – Building Communities of Practice. In Proceedings of theProceedings of the Agile Development Conference (ADC’04).Agile Development Conference (ADC’04). IEEE 2-11, Salt Lake City, Utah, June IEEE 2-11, Salt Lake City, Utah, June 2004. May be found at: 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480002abs.htmhttp://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480002abs.htm

15)15) Manhart, P. and Schneider, K. Breaking the Ice for Agile Development of Embedded Software: An Manhart, P. and Schneider, K. Breaking the Ice for Agile Development of Embedded Software: An Industry Experience Report. In Proceedings of the 26Industry Experience Report. In Proceedings of the 26thth International Conference on Software International Conference on Software Engineering (ICSE’04). IEEE 378-386, Edinburgh, Scotland, UK. May 2004. May be found at: Engineering (ICSE’04). IEEE 378-386, Edinburgh, Scotland, UK. May 2004. May be found at: http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630378abs.htmhttp://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630378abs.htm

16)16) Schneider, J. and Johnston, L. eXtreme Programming at Universities – An Educational Perspective. Schneider, J. and Johnston, L. eXtreme Programming at Universities – An Educational Perspective. In In Proceedings of the 25Proceedings of the 25thth International Conference on Software Engineering International Conference on Software Engineering. IEEE 594-599, . IEEE 594-599, Portland, Oregon, May 2003. May be found at: Portland, Oregon, May 2003. May be found at: http://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770594abs.htmhttp://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770594abs.htm

Page 23: Agile softwareengineering

Questions?Questions?