Agile Software Development
Download
Report
Transcript Agile Software Development
®
IBM Software Group
Agile Software Development:
What’s Really Going On
Scott W. Ambler
Practice Leader Agile Development
© 2007 IBM Corporation
IBM Software Group | Rational software
Scott Ambler - Background
Practice Leader Agile Development
Fellow – International Association of Software
Architects
www-306.ibm.com/software/rational/bios/ambler.html
2
IBM Software Group | Rational software
Presentation Overview
Warning!
Agile Software Development (ASD)
Agile Adoption Rates
Going Beyond the Extreme Rhetoric
3
IBM Software Group | Rational software
Warning!
I’m spectacularly blunt at times
Many new ideas will be presented
Some may not fit well into your existing environment
Some will challenge your existing notions about
software development
Some will confirm your unvoiced suspicions
Don’t make any “career-ending moves”
Be skeptical but open minded
4
®
IBM Software Group
Agile Software Development (ASD)
What is ASD?
How it’s different
Mythbusters
Why does ASD Work?
Some Common Practices
© 2007 IBM Corporation
IBM Software Group | Rational software
What is Agile?
An iterative and incremental (evolutionary)
approach performed in a highly collaborative
manner with just the right amount of ceremony
to produce high quality software in a cost
effective and timely manner which meets the
changing needs of its stakeholders.
Core principles
“Fits just right” process
Continuous testing and validation
Consistent team collaboration
Rapid response to change
Ongoing customer involvement
Frequent delivery of working software
6
IBM Software Group | Rational software
How Agile is Different
Focus on collaboration:
Less paperwork and more conversation
Stakeholders actively involved
Focus on working software:
Greater feedback makes agile projects easier to manage
Less documentation is required
Less bureaucracy
Agilists are generalizing specialists:
Less hand offs between people
Less people required
Specialists find it difficult at first to fit into the team
Agile is based on practice, not theory:
This is a significant change from traditional
You need to see how agile works in practice to truly understand it
7
IBM Software Group | Rational software
Mythbusters
Myth
Reality
1. No Documentation
1. Agile Documentation
2. Undisciplined
2. Requires great discipline
3. No Planning
3. Just-in-time (JIT) planning
4. Not Predictable
4. Far more predictable
5. Does Not Scale
5. Eclipse is agile
6. Is a Fad
6. It’s quickly becoming the norm
7. Silver Bullet
7. It requires skilled people
8. RUP isn’t agile
8. RUP is as agile as you make it
9. Not Fixed Price
9. Agile provides stakeholders
control over the budget,
schedule, and scope
8
IBM Software Group | Rational software
Why Agile Works
www.ambysoft.com/essays/whyAgileWorksFeedback.htm
9
IBM Software Group | Rational software
Some Common Practices
Regular Deployment of Working Software
Pair Programming
Refactoring
Continuous Integration
Test Driven Development (TDD)
Shared Code Ownership
Active Stakeholder Participation
10
®
IBM Software Group
Agile Adoption Rates*
Have you Adopted Agile?
Number of Projects Run
Success Rates
*Figures
from an April 2007 Survey to be summarized in the August
2007 issue of Dr. Dobb’s Journal
© 2007 IBM Corporation
IBM Software Group | Rational software
Has Your Organization Adopted One or More Agile
Techniques?
No
31%
Yes
69%
12
IBM Software Group | Rational software
Number of Agile Projects Run
20+
10 to 20
57
30
5 to 10
82
2 to 5
1
194
64
13
IBM Software Group | Rational software
% of Successful Agile Projects
5%
6%
12%
44%
33%
90%+
75-90%
50-74%
25-49%
>25%
14
®
IBM Software Group
Going Beyond the Extreme Rhetoric
Modeling and Documentation
Rational Unified Process (RUP)
Testing
Database Refactoring
Database Regression Testing
Governance
© 2007 IBM Corporation
IBM Software Group | Rational software
Agile Model Driven Development (AMDD) Project Level
www.agilemodeling.com/essays/amdd.htm
16
IBM Software Group | Rational software
Agile Documentation
Document the stable, not the speculative
Agile documents:
Maximize stakeholder ROI
Describe “good things to know”
Have a specific customer and facilitate the work efforts of that customer
Are sufficiently accurate, consistent, and detailed
17
IBM Software Group | Rational software
Rational Unified Process (RUP)
18
IBM Software Group | Rational software
Agile Testing
www.ddj.com/dept/debug/196603549?cid=Ambysoft
Regression testing is critical to the success of evolutionary (iterative and
incremental) development
Acceptance tests are considered to be primary requirements artifacts
Unit tests are considered to be detailed design artifacts
19
IBM Software Group | Rational software
Database Refactoring
A database refactoring is a simple change
to a database schema that improves its
design while retaining both its behavioral
and informational semantics. Examples:
Move Column, Rename Table, and
Replace Blob With Table.
A database schema includes both
structural aspects such as table and view
definitions as well as functional aspects
such as stored procedures and triggers.
Important: Database refactorings are a
subset of schema transformations, but
they do not add functionality.
www.agiledata.org
20
IBM Software Group | Rational software
Database Testing
www.agiledata.org/essays/databaseTesting.html
21
IBM Software Group | Rational software
Agility at Scale: “Right-Sizing” Governance
Pragmatic
Governance Body
Manage Project Pipeline
By Business Value
Iterative Development
Staged Program
Delivery
Scenario-Driven
Development
Risk-Based Milestones
Adapt The Process
Continuous Improvement
Simple And
Relevant Metrics
Continuous Project
Monitoring
Embedded Compliance
Organization
& Meetings
Mission &
Principles
Processes
Measures
Roles &
Responsibilities
Policies &
Standards
Self-Organizing Teams
Integrated Lifecycle Environment
Align HR Policies With IT Values
Valued Corporate Assets
Align Organization Structure With
Architecture
Flexible Architectures
22
Keep In Touch!
®
IBM Software Group
Scott W. Ambler
www-306.ibm.com/software/rational/bios/ambler.html
© 2007 IBM Corporation
IBM Software Group | Rational software
References and Recommended Reading
www.agilealliance.com
www.agilemodeling.com
www.agiledata.org
www.ambysoft.com
www.databaserefactoring.com
www.enterpriseunifiedprocess.com
Ambler, S.W. (2002). Agile Modeling: Effective Practices for XP and the UP.
New York: John Wiley & Sons.
Ambler, S.W. (2003). Agile Database Techniques. New York: John Wiley &
Sons.
Ambler, S.W. (2004). The Object Primer 3rd Edition: AMDD with UML 2. New
York: Cambridge University Press.
Ambler, S.W. and Sadalage, P.J. (2006). Refactoring Databases: Evolutionary
Database Design. Reading, MA: Addison Wesley Longman, Inc.
Larman, C. (2004). Agile and Iterative Development: A Manager’s Guide.
Reading, MA: Addison Wesley
McGovern, J., Ambler, S.W., Stevens, M., Linn, J., Sharan, V., & Jo, E. (2003).
The Practical Guide to Enterprise Architecture. Prentice Hall PTR.
24