Agile softwareengineering

23
Agile Software Agile Software Engineering Engineering

description

qalearn.blogsot.com

Transcript of Agile softwareengineering

Page 1: Agile softwareengineering

Agile Software EngineeringAgile Software Engineering

Page 2: Agile softwareengineering

OverviewOverview

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

Case StudiesCase Studies

Process ExampleProcess Example

Adoption DetractorsAdoption Detractors

Agile vs. Plan Driven ProcessesAgile vs. Plan Driven Processes

Future 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 processes

Fitting the process to the projectFitting the process to the project

Avoidance 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” Perspective

Collaborative Values and PrinciplesCollaborative Values and Principles

Streamlined 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 toolstools

Working 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 Contracts

Most effective for extreme projectsMost effective for extreme projects

Projects 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 Software

CaribouLake.com DatabaseCaribouLake.com Database

Nuclear 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 workload

2.2. Frequent late changesFrequent late changes

3.3. Difficult time and quality Difficult time and quality constraintsconstraints

4.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 first

2.2. Identify discrepancies of Work Products to Specifications Identify discrepancies of Work Products to Specifications as as automated as possibleautomated as possible

3.3. Identify discrepancies of Work Products to Specifications Identify discrepancies of Work Products to Specifications as soon as soon as possibleas possible

4.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 iterations

ReasonsReasons– Traditional up-front database development Traditional up-front database development

impracticalimpracticalLate requirements changesLate requirements changes

Database 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 Detractors

Inconsistent and diverse definitionsInconsistent and diverse definitionsLack of theoretical groundingLack of theoretical groundingDifferent way of thinkingDifferent way of thinking– Role changesRole changes– Situational customizationSituational customization

Solid 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 Processes

1.1. Small products and Small products and teams; scalability limitedteams; scalability limited

2.2. Untested on safety-Untested on safety-critical productscritical products

3.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 development

Most 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 Structure

Change 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

processesprocesses

More 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 Proceedings of the

2525thth International Conference on Software Engineering International Conference on Software Engineering. IEEE 244-256, Portland, Oregon, May 2003. May . IEEE 244-256, Portland, Oregon, May 2003. May be found at: be found at: http://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 IEEE 114-120, Salt Lake City, Utah, June 2003. May be found at: City, Utah, June 2003. May be found at: http://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 . ACM 14-23. 11,1 January 2004. May be found at: found at: 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/

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 . IEEE 57-66, 36,6, June 2003. May be found at: 57-66, 36,6, June 2003. May be found at: http://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://portal.acm.org/citation.cfm?id=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.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.htm

9)9) Harriman, A., Hodgetts, P. and Leo, M. Emergent Database Design: Liberating Database Development Harriman, A., Hodgetts, P. and Leo, M. Emergent Database Design: Liberating Database Development with Agile Practices. In with Agile Practices. In Proceedings of theProceedings of the Agile Development Conference (ADC’04).Agile Development Conference (ADC’04). IEEE 100-105, Salt IEEE 100-105, 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/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.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: http://portal.acm.org/citation.cfm?id=604251.604254Washington, November 2002. May be found at: http://portal.acm.org/citation.cfm?id=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 26 thth 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?