You are on page 1of 23

Agile Software Engineering

A Presentation by: Austin Riddle

Overview
Agile Methodology
Concepts and Ideology Origins Applicable Domains

Case Studies Process Example Adoption Detractors Agile vs. Plan Driven Processes Future Headings

What is Agile Software Development?


Easily moved, light, nimble, active software processes Fitting the process to the project Avoidance of things that waste time

References: [1], [10]

Agile Software Development Ecosystem


Chaordic Perspective Collaborative Values and Principles Streamlined Methodology

Reference: [10]

Agile Software Development Ideals


Individuals and interactions over process and tools Working Software over comprehensive documentation
Rework vs. Reuse

Customer collaboration over contract negotiation


Solutions vs. Products

Responding to change over following a plan


References: [4], [10]

Substantive 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]

Origins and Foundations

Scrum

Crystal Fam.

XP Adaptive SD Agile Agile Modelling

PP

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

Applicable Domains
Multi-Sized Corporations
Multi-team environments using overlapping cross-team communities

Government Contracts Most effective for extreme projects Projects that do not work well in rigorous plan-driven processes
References: [2], [5], [8], [10], [14]

Case Studies
Daimler-Chrysler Embedded Software CaribouLake.com Database Nuclear Control Systems Manufacturer

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

Daimler-Chrysler Case Study


Problem: Customer specific add-ons a hassle

Reasons
1. Rising workload 2. Frequent late changes 3. Difficult time and quality constraints 4. Late delivery

Solutions
1. 2. 3. 4.

Image From: [15]

Implement highest initial value item first Identify discrepancies of Work Products to Specifications as automated as possible Identify discrepancies of Work Products to Specifications as soon as possible Fix discrepancies of Work Products to Specifications as soon as possible

Daimler-Chrysler Case Study Results


Overall Solution: Combination of classical and agile practices
Test First practices Unit Testing

Challenges
No external support Test cases were difficult to scope Developer transitions
implement->document->test test->implement->document

Effects
Substantial increase in flexibility, quality and timeliness Greater acceptance of agile practices

CaribouLake.com Case Study


Problem: Database design during short development iterations Reasons
Traditional up-front database development impractical
Late requirements changes Database changes more costly than application changes

CaribouLake.com Case Study Results


Solution: Collaborative schema evolution
Formalized Refactoring Test Suites Database coding standards

Effects
Distributed knowledge of database design Faster development Leaner database schema

Nuclear Control Systems Manufacturer Case Study


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

Solution: Independent research and wholesale adoption of agile processes


No upfront training of team Absence of common working area, workstation configurations and an integration and build environment

Results
Five development iterations produced < 20% projected business value Agile process approach canned Team was demoralized

Example Process Comparison

Image From: [13]

Adoption Detractors
Inconsistent and diverse definitions Lack of theoretical grounding Different way of thinking
Role changes Situational customization

Solid people skills required Short iterations inhibit long-term perspective Risks
Harder to manage feature creep and customer expectations Difficult to quantify cost, time, quality.
References: [1], [3], [6], [7], [13], [16]

Agile vs. Plan Driven Processes


1.

2.
3.

4.

5.

Small products and teams; scalability limited Untested on safetycritical products Good for dynamic, but expensive for stable environments. Require experienced Agile personnel throughout Personnel thrive on freedom and chaos

1. Large products and

2.

3.

4.

5.

teams; hard to scale down Handles highly critical products; hard to scale down Good for stable, but expensive for dynamic environments Require experienced personnel only at start if stable environment Personnel thrive on structure and order
Reference: [5]

Use of Agile and Plan Driven Processes


Each have appropriate roles in software development Most use Agile-Plan Driven Hybrid
When should each be used?
References: [5] (image), [7], [12]

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

An Eye on the Future


Volatility and uncertainty in project environments
Increased demand for more adaptive processes

More theoretical research in Agile Methods Combined methods emerging (Agile RUP) Expanded fields of use (anywhere design is present)
References: [1], [3], [5], [6], [7], [11]

References
1) 2)

3) 4) 5)

6)

7)

8)

9)

Abrahamsson, P. et al. New Directions on Agile Methods: A Comparative Analysis. In Proceedings of the 25th International Conference on Software Engineering. IEEE 244-256, Portland, Oregon, May 2003. May be found at: http://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770244abs.htm Alleman, G. B. and Henderson, M. Making Agile Development Work in a Government Contracting Environment. In Proceedings of the Agile Development Conference (ADC03). IEEE 114-120, Salt Lake City, Utah, June 2003. May be found at: http://csdl.computer.org/comp/proceedings/adc/2003/2013/00/20130114abs.htm Armitage, J. Are Agile Methods Good for Design? Interactions. ACM 14-23. 11,1 January 2004. May be found at: http://portal.acm.org/citation.cfm?id=962342.962352 Beck, K. et al. Manifesto for Agile Software Development. Last Access: 02-7-2005. May be found at: http://www.agilemanifesto.org/ Boehm, B. and Turner, R. Using Risk to Balance Agile and Plan-Driven Methods. IEEE Computer. IEEE 57-66, 36,6, June 2003. May be found at: http://csdl.computer.org/comp/mags/co/2003/06/r6057abs.htm Conboy, K. and Fitzgerald, B. Toward a Conceptual Framework of Agile Methods: A Study of Agility in Different Disciplines. In Proceedings of the 2004 ACM Workshop on Interdisciplinary Software Engineering Research. ACM 37-44, Newport Beach, CA. November 2004. May be found at: http://portal.acm.org/citation.cfm?id=1029997.1030005 Derbier, G. Agile Development in the Old Economy. In Proceedings of the Agile Development Conference (ADC03). 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 Green, B. Agile Methods Applied to Embedded Firmware Development. In Proceedings of the Agile Development Conference (ADC04). 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 Harriman, A., Hodgetts, P. and Leo, M. Emergent Database Design: Liberating Database Development with Agile Practices. In Proceedings of the Agile Development Conference (ADC04). IEEE 100-105, Salt Lake City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480100abs.htm

References (Cont.)
10) 11)

12)

13)

14)

15)

16)

Highsmith, J. What is Agile Software Development? CrossTalk: The Journal of Defense Software Engineering. Oct. 2002. May be found at: http://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.html Hirsch, M. Making RUP Agile. In Practitioners Reports of the Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA 2002). ACM 1-28. Seattle, Washington, November 2002. May be found at: http://portal.acm.org/citation.cfm?id=604251.604254 Hodgetts, P. Refactoring the Development Process: Experiences with the Incremental Adoption of Agile Practices. In Proceedings of the Agile Development Conference (ADC04). IEEE 106-113, Salt Lake City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480106abs.htm Huo, M. et. al. Software Quality and Agile Methods. In Proceedings of the 28th Annual International Computer Software and Applications Conference (COMPSAC'04). IEEE 520-525, Hong Kong. September 2004. May be found at: http://csdl.computer.org/comp/proceedings/compsac/2004/2209/01/220910520abs.htm Khknen, T. Agile Methods for Large Organizations Building Communities of Practice. In Proceedings of the Agile Development Conference (ADC04). IEEE 2-11, Salt Lake City, Utah, June 2004. May be found at: http://csdl.computer.org/comp/proceedings/adc/2004/2248/00/22480002abs.htm Manhart, P. and Schneider, K. Breaking the Ice for Agile Development of Embedded Software: An Industry Experience Report. In Proceedings of the 26th International Conference on Software Engineering (ICSE04). IEEE 378-386, Edinburgh, Scotland, UK. May 2004. May be found at: http://csdl.computer.org/comp/proceedings/icse/2004/2163/00/21630378abs.htm Schneider, J. and Johnston, L. eXtreme Programming at Universities An Educational Perspective. In Proceedings of the 25th International Conference on Software Engineering. IEEE 594-599, Portland, Oregon, May 2003. May be found at: http://csdl.computer.org/comp/proceedings/icse/2003/1877/00/18770594abs.htm

Questions?

You might also like