agile softwareengineering
DESCRIPTION
qalearn.blogsot.comTRANSCRIPT
Agile Software EngineeringAgile Software Engineering
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
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]
Agile Software Development Agile Software Development EcosystemEcosystem
““Chaordic” PerspectiveChaordic” Perspective
Collaborative Values and PrinciplesCollaborative Values and Principles
Streamlined MethodologyStreamlined Methodology
Reference: [10] Reference: [10]
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]
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]
Origins and FoundationsOrigins and Foundations
References: [1] (image), [6], [10]References: [1] (image), [6], [10]
XPCrystal Fam.
Scrum
AgilePP
Agile Modelling
Adaptive SD
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]
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]
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]
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
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
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
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
Example Process ComparisonExample Process Comparison
Image From: [13]
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]
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]
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]
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
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]
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
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
Questions?Questions?