Agile methods are - David F. Rico
Agile methods are - David F. Rico
Agile methods are - David F. Rico
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
A 1-Hour Introduction<br />
for Executives, Sr.<br />
Managers, and Staff<br />
Dr. <strong>David</strong> F. <strong>Rico</strong>, PMP, ACP, CSM<br />
Twitter: @dr_david_f_rico<br />
Website: http://www.davidfrico.com<br />
LinkedIn: http://www.linkedin.com/in/davidfrico<br />
Facebook: http://www.facebook.com/profile.php?id=1540017424
Author Background<br />
DoD contractor with 28+ years of IT experience<br />
B.S. Comp. Sci., M.S. Soft. Eng., & D.M. Info. Sys.<br />
Large gov’t projects in U.S., Far/Mid-East, & Europe<br />
Published six books & numerous journal articles<br />
Adjunct at George Washington, UMUC, & Argosy<br />
<strong>Agile</strong> Program Management & Lean Development<br />
Specializes in metrics, models, & cost engineering<br />
Six Sigma, CMMI, ISO 9001, DoDAF, & DoD 5000<br />
Cloud Computing, SOA, Web Services, FOSS, etc.<br />
2
Agenda<br />
<strong>Agile</strong> Introduction<br />
<strong>Agile</strong> Life Cycles<br />
<strong>Agile</strong> Practices<br />
<strong>Agile</strong> Summary<br />
3
Today’s Whirlwind Environment<br />
Work Life<br />
Imbalance<br />
Global<br />
Competition<br />
Vague<br />
Requirements<br />
Overruns<br />
Attrition<br />
Escalation<br />
Runaways<br />
Cancellation<br />
Demanding<br />
Customers<br />
Organization<br />
Downsizing<br />
Technology<br />
Change<br />
System<br />
Complexity<br />
4
Need for a New Model<br />
Need for a new model of system development<br />
Cope with high-level of uncertainty and ambiguity<br />
With just the right balance of flexibility and discipline<br />
R&D Oriented People Centered Adaptive Customer Friendly Fast & Efficient Disciplined<br />
New discoveries<br />
Highly-talented people<br />
Global threats<br />
Customer interaction<br />
New technology<br />
Lightweight strategy<br />
Complex problems<br />
Cross-functional teams<br />
Market threats<br />
A lot of communication<br />
Quick decision-making<br />
Lightweight plans<br />
One-off systems<br />
Small team size<br />
New customer needs<br />
Customer demos<br />
Iterative delivery cycles<br />
Lightweight lifecycles<br />
Vague requirements<br />
A lot of communication<br />
Changing scope<br />
Customer feedback<br />
Frequent deliveries<br />
Security engineering<br />
Incomplete information<br />
Interpersonal trust<br />
Changing technology<br />
Business value focus<br />
Fast delivery schedules<br />
Light requirements<br />
High uncertainty<br />
Rich collaboration<br />
Changing regulations<br />
Customer satisfaction<br />
Short timelines<br />
Light architecture<br />
Experimentation<br />
Empowered decisions<br />
Continuous change<br />
Customer responsive<br />
Fast time-to-market<br />
Lightweight design<br />
Simulations<br />
Sustainable pace<br />
Flexible culture<br />
Customer sensitivity<br />
First-mover capability<br />
Code reviews<br />
Prototyping<br />
Daily interaction<br />
Flexible attitudes<br />
Customer relationships<br />
Minimal process costs<br />
Rigorous V&V<br />
Innovation oriented<br />
Rich communications<br />
Flexible policies<br />
Customer contact<br />
Low work-in-process<br />
-<br />
Rigorous CM<br />
New products<br />
Face-to-face interaction<br />
Flexible processes<br />
Customer involvement<br />
Flexible processes<br />
Rigorous QA<br />
Creative solutions<br />
Cohesiveness<br />
Flexible technologies<br />
Customer driven<br />
Market responsiveness<br />
Project reviews<br />
Augustine, S. (2005). Managing agile projects. Upper Saddle River, NJ: Pearson Education.<br />
Chin, G. (2004). <strong>Agile</strong> project management: How to succeed in the face of changing project requirements. Broadway, NY: Amacom.<br />
DeCarlo, D. (2004). Extreme project management: Using leadership, principles, and tools to deliver value in the face of volatility. San Francisco, CA: Jossey-Bass.<br />
Highsmith, J. A. (2010). <strong>Agile</strong> project management: Creating innovative products. Boston, MA: Pearson Education.<br />
5
What is Agility?<br />
A-gil-i-ty (ə-'ji-lə-tē) Property consisting of quickness,<br />
lightness, and ease of movement; To be very nimble<br />
<br />
• The ability to create and respond to change in order to<br />
profit in a turbulent global business environment<br />
• The ability to quickly reprioritize use of resources when<br />
requirements, technology, and knowledge shift<br />
• A very fast response to sudden market changes and<br />
emerging threats by intensive customer interaction<br />
• Use of evolutionary, incremental, and iterative<br />
delivery to converge on an optimal customer solution<br />
• Maximizing the BUSINESS VALUE with right-sized, justenough,<br />
and just-in-time processes and documentation<br />
<br />
Highsmith, J. A. (2002). <strong>Agile</strong> softw<strong>are</strong> development ecosystems. Boston, MA: Addison-Wesley.<br />
6
What <strong>are</strong> <strong>Agile</strong> Methods?<br />
People-centric way to create innovative solutions<br />
Market-centric model to maximize business value<br />
Product-centric vs. wasteful processes/documents<br />
<strong>Agile</strong> Methods<br />
‘Values’<br />
<strong>Agile</strong> Methods<br />
‘Principles’<br />
Traditional Methods<br />
‘Values’<br />
Customer<br />
Collaboration<br />
also<br />
known as<br />
Customer<br />
Interaction<br />
valued<br />
more than<br />
Contract<br />
Negotiation<br />
Individuals &<br />
Interactions<br />
also<br />
known as<br />
High Performance<br />
Teams<br />
valued<br />
more than<br />
Processes<br />
& Tools<br />
Working<br />
Systems<br />
also<br />
known as<br />
Iterative<br />
Development<br />
valued<br />
more than<br />
Comprehensive<br />
Documentation<br />
Responding<br />
to Change<br />
also<br />
known as<br />
Adaptability<br />
or Flexibility<br />
valued<br />
more than<br />
Following<br />
a Plan<br />
<strong>Agile</strong> Manifesto. (2001). Manifesto for agile softw<strong>are</strong> development. Retrieved September 3, 2008, from http://www.agilemanifesto.org.<br />
7
When to Use <strong>Agile</strong> Methods?<br />
On exploratory or research/development projects<br />
When fast customer responsiveness is paramount<br />
In organizations that <strong>are</strong> highly-innovative & creative<br />
Traditional Project Management<br />
Predictable situations<br />
Low-technology projects<br />
Stable, slow-moving industries<br />
Low-levels of technological change<br />
Repeatable operations<br />
Low-rates of changing project performance<br />
Long-term, fixed-price production contracts<br />
Achieving concise economic efficiency goals<br />
Highly-administrative contracts<br />
Mass production and high-volume manufacturing<br />
Highly-predictable and stable market conditions<br />
Low-margin industries such as commodities<br />
Delivering value at the point-of-plan<br />
<strong>Agile</strong> Project Management<br />
High-levels of uncertainty and unpredictability<br />
High-technology projects<br />
Fast-paced, highly-competitive industries<br />
Rapid pace of technological change<br />
Research-oriented, discovery projects<br />
Large-fluctuations in project performance<br />
Shorter-term, performance-based RDT&E contracts<br />
Achieving high-impact product/service effectiveness<br />
Highly-creative new product development contracts<br />
Customer-intensive, one-off product/service solutions<br />
Highly-volatile and unstable market conditions<br />
High-margin, intellectually-intensive industries<br />
Delivering value at the point-of-sale<br />
Pine, B. J. (1993). Mass customization: The new frontier in business competition. Boston, MA: Harvard Business School Press.<br />
8
Agenda<br />
<strong>Agile</strong> Introduction<br />
<strong>Agile</strong> Life Cycles<br />
<strong>Agile</strong> Practices<br />
<strong>Agile</strong> Summary<br />
9
Scrum<br />
Created by Jeff Sutherland at Easel in 1993<br />
Has 5 practices, 3 roles, 5 products, rules, etc.<br />
Uses EVM to burn down backlog in 30-day iterations<br />
Schwaber, K., & Beedle, M. (2001). <strong>Agile</strong> softw<strong>are</strong> development with scrum. Upper Saddle River, NJ: Prentice-Hall.<br />
10
Extreme Programming<br />
Created by Kent Beck at Chrysler in 1998<br />
Has 28 practices, 7 roles, and 7 work products<br />
Popularized pair programming and test-driven dev.<br />
User<br />
Stories<br />
Test<br />
Scenarios<br />
Requirements<br />
New<br />
Stories<br />
Bugs<br />
Architectural<br />
Spike<br />
System<br />
Metaphor<br />
Release<br />
Planning<br />
Release<br />
Plan<br />
Iteration<br />
Latest<br />
Version<br />
Acceptance<br />
Tests<br />
Customer<br />
Approval<br />
Small<br />
Releases<br />
Uncertain<br />
Estimates<br />
Confident<br />
Estimates<br />
Next<br />
Iteration<br />
Spike<br />
Beck, K. (2000). Extreme programming explained: Embrace change. Reading, MA: Addison-Wesley.<br />
11
Lean-Kanban<br />
Adapted to IT by Dave Anderson in 2006<br />
Activities, buffers, queues, WIP limits, tasks, etc.<br />
Lean, JIT pull/demand system leading to high quality<br />
Anderson, D. J. (2010). Kanban: Successful evolutionary change for your technology business. Sequim, WA: Blue Hole Press.<br />
12
Agenda<br />
<strong>Agile</strong> Introduction<br />
<strong>Agile</strong> Life Cycles<br />
<strong>Agile</strong> Practices<br />
<strong>Agile</strong> Summary<br />
13
Onsite Customers<br />
Term coined by Kent Beck in 1999<br />
Customer who sits with developers full-time<br />
Fast and efficient way to capture customer needs<br />
Tabaka, J. (2006). Collaboration explained: Facilitation skills for softw<strong>are</strong> project leaders. Upper Saddle River, NJ: Addison Wesley.<br />
14
Release Planning<br />
Created by Kent Beck at Chrysler in 1998<br />
Project plan with a 30-60-90-day timing horizon<br />
Disciplined and adaptable project management F/W<br />
Beck, K., & Fowler, M. (2004). Planning extreme programming. Upper Saddle River, NJ: Addison-Wesley.<br />
15
User Stories<br />
Term coined by Kent Beck in 1999<br />
Functions or features of value to customers<br />
Highly-adaptable requirements engineering process<br />
Cohn, M. (2004). User stories applied: For agile softw<strong>are</strong> development. Boston, MA: Addison-Wesley.<br />
16
Pair Programming<br />
Term coined by Jim Coplien in 1995<br />
Consists of two side-by-side developers<br />
Highly-effective group problem-solving technique<br />
Williams, L., & Kessler, R. (2002). Pair programming illuminated. Boston, MA: Pearson Education.<br />
17
Refactoring<br />
Term coined by William Opdyke in 1990<br />
Process of frequently redesigning the system<br />
Improves readability, maintainability, and quality<br />
Fowler, M. (1999). Refactoring: Improving the design of existing code. Boston, MA. Addison-Wesley.<br />
18
Test-Driven Development<br />
Term coined by Kent Beck in 2003<br />
Consists of writing all tests before design<br />
Ensures all components <strong>are</strong> verified and validated<br />
Beck, K. (2003). Test-driven development: By example. Boston, MA: Addison-Wesley.<br />
19
Continuous Integration<br />
Term coined by Martin Fowler in 1998<br />
Process of automated build/regression testing<br />
Evaluates impact of changes against entire system<br />
Duvall, P., Matyas, S., & Glover, A. (2006). Continuous integration: Improving softw<strong>are</strong> quality and reducing risk. Boston, MA: Addison-Wesley.<br />
20
Agenda<br />
<strong>Agile</strong> Introduction<br />
<strong>Agile</strong> Life Cycles<br />
<strong>Agile</strong> Practices<br />
<strong>Agile</strong> Summary<br />
21
<strong>Agile</strong> Myths<br />
Common myths still abound, although agile <strong>methods</strong><br />
have been around for ~20 years<br />
• <strong>Agile</strong> <strong>methods</strong> <strong>are</strong> only good for rapid prototypes<br />
• <strong>Agile</strong> <strong>methods</strong> <strong>are</strong> only for softw<strong>are</strong> development<br />
• <strong>Agile</strong> <strong>methods</strong> <strong>are</strong> only for small co-located teams<br />
• <strong>Agile</strong> <strong>methods</strong> have no requirements or documents<br />
• <strong>Agile</strong> <strong>methods</strong> need traditional system architectures<br />
• <strong>Agile</strong> <strong>methods</strong> have no project management model<br />
• <strong>Agile</strong> <strong>methods</strong> <strong>are</strong> undisciplined and unmeasurable<br />
• <strong>Agile</strong> <strong>methods</strong> create unmaintainable systems<br />
• <strong>Agile</strong> <strong>methods</strong> result in security vulnerabilities<br />
• <strong>Agile</strong> <strong>methods</strong> mean deliver it fast and fix it later<br />
<strong>Rico</strong>, D. F., Sayani, H. H., & Sone, S. (2009). The business value of agile softw<strong>are</strong> <strong>methods</strong>: Maximizing ROI with just-in-time processes and documentation.<br />
Ft. Lauderdale, FL: J. Ross Publishing.<br />
22
<strong>Agile</strong> Case Studies<br />
80% of worldwide IT projects use agile <strong>methods</strong><br />
Includes highly-regulated industries like U.S. DoD<br />
Even split between top-down and bottom-up adoption<br />
Industry<br />
Org<br />
Project<br />
Purpose<br />
Size<br />
Metrics<br />
Electronic<br />
Commerce<br />
Google<br />
Adwords<br />
Advertising<br />
20 teams<br />
140 people<br />
5 countries<br />
1,838 User Stories<br />
6,250 Function Points<br />
500,000 Lines of Code<br />
Shrink<br />
Wrapped<br />
Primavera<br />
Primavera<br />
Project<br />
Management<br />
15 teams<br />
90 people<br />
Collocated<br />
26,809 User Stories<br />
91,146 Function Points<br />
7,291,666 Lines of Code<br />
Health<br />
C<strong>are</strong><br />
FDA<br />
m2000<br />
Blood<br />
Analysis<br />
4 teams<br />
20 people<br />
Collocated<br />
1,659 User Stories<br />
5,640 Function Points<br />
451,235 Lines of Code<br />
Law<br />
Enforcement<br />
FBI<br />
Sentinel<br />
Case File<br />
Workflow<br />
10 teams<br />
50 people<br />
Collocated<br />
3,947 User Stories<br />
13,419 Function Points<br />
1,073,529 Lines of Code<br />
U.S.<br />
DoD<br />
Stratcom<br />
SKIweb<br />
Knowledge<br />
Management<br />
3 teams<br />
12 people<br />
Collocated<br />
390 User Stories<br />
1,324 Function Points<br />
105,958 Lines of Code<br />
<strong>Rico</strong>, D. F. (2010). Lean and agile project management: For large programs and projects. Proceedings of<br />
the First International Conference on Lean Enterprise Softw<strong>are</strong> and Systems, Helsinki, Finland, 37-43.<br />
23
Benefits of <strong>Agile</strong> Methods<br />
Analysis of 23 agile vs. 7,500 traditional projects<br />
<strong>Agile</strong> projects <strong>are</strong> 54% better than traditional ones<br />
<strong>Agile</strong> has lower costs (61%) and fewer defects (93%)<br />
3.00<br />
2.25<br />
1.50<br />
2.8<br />
1.1<br />
Before <strong>Agile</strong><br />
After <strong>Agile</strong><br />
20<br />
15<br />
10<br />
18<br />
11<br />
Before <strong>Agile</strong><br />
After <strong>Agile</strong><br />
0.75<br />
61%<br />
Lower<br />
Cost<br />
5<br />
39%<br />
Less<br />
Staff<br />
Project Cost in Millions $<br />
Total Staffing<br />
20<br />
18<br />
13.5<br />
Before <strong>Agile</strong><br />
After <strong>Agile</strong><br />
2500<br />
2270<br />
Before <strong>Agile</strong><br />
After <strong>Agile</strong><br />
15<br />
1875<br />
10<br />
5<br />
24%<br />
Faster<br />
1250<br />
625<br />
381<br />
93%<br />
Less<br />
Defects<br />
Delivery Time in Months<br />
Cumulative Defects<br />
Mah, M. (2008). Measuring agile in the enterprise: Proceedings of the <strong>Agile</strong> 2008 Conference, Toronto, Canada.<br />
24
Conclusion<br />
Agility is the evolution of management thought<br />
Confluence of traditional and non-traditional ideas<br />
Improve performance by over an order-of-magnitude<br />
<strong>Agile</strong> <strong>methods</strong> <strong>are</strong> …<br />
Systems development approaches<br />
New product development approaches<br />
Expertly designed to be fast and efficient<br />
Intentionally lean and free of waste (muda)<br />
Systematic highly-disciplined approaches<br />
Capable of producing high quality systems<br />
Right-sized, just-enough, and just-in-time tools<br />
Scalable to large, complex mission-critical systems<br />
Designed to maximize business value for customers<br />
“The world of traditional <strong>methods</strong> belongs to yesterday”<br />
“Don’t waste your time using traditional <strong>methods</strong> on 21 st century projects”<br />
Wysocki, R.F. (2010). Adaptive project framework: Managing complexity in the face of uncertainty. Boston, MA: Pearson Education.<br />
25