Professional Documents
Culture Documents
08 AgileLegacy Keynote Slides
08 AgileLegacy Keynote Slides
Software Development
2007 Construx Software Builders, Inc.
All Rights Reserved.
www.construx.com
Why Agile?
Basic Motivations
Developers
Value /
Functionality
Cost
Time
Waterfall Value Delivery
Software Development Best Practices
Value /
Functionality
Cost
Time
Iterative Value Delivery
Value /
Functionality
Cost
Time
Diminishing returns when functionality is
delivered in priority order
Software Development Best Practices
Time
Diminishing returns when functionality is
delivered in priority order
Software Development Best Practices
What, Specifically, is
Agile?
Origins of Agile
Agile Manifesto (2001)
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
10
11
or no documentation
Few or no requirements up front
Code-focused
12
13
These
15
Lifecycle Modeling
How the activities are sequenced and
partitioned makes up the lifecycle
The lifecycle model is the dominant attribute
of any method, whether Agile or traditional
Most variation among development
approaches can be explained by variation in
the lifecycle models
Additional variation can be explained by
specific techniques favored by different
methods
16
100%
100%
100%
100%
Requirements
Architecture
Construction
System
Test
17
1.
2.
3.
4.
18
In-phase
100%
Wide variety of techniques are used in
pursuit of the goal
Effectiveness of the techniques used to
accomplish the defect-removal goal
varies widely
Software Development Best Practices
19
20
Waterfall
100% of requirements done up front
100% of design done up front
1 development increment
100% of testing left to the end
Approach falls far short of achieving
100% in-phase defect removal
21
22
XP
Scrum
Code and Fix
Pure Waterfall
Staged Delivery
Design to Schedule
Evolutionary
Prototyping
Evolutionary
Delivery
Spiral
Design-to-Tools
23
Industry Experiences
with Packaged Agile
Methods
XP
Scrum
XP as a Whole
Based on evolutionary prototyping lifecycle
model (which explains many of its strengths
and weaknesses)
Primarily developer focused
Includes 12 key practices including pair
programming, test-driven development, onsite customer (and additional practices have
been added in version 2)
Includes 4 values (plus 1 more in version 2)
We see XP fail more often than it succeeds
(i.e., organizations abandon use of XP)
25
Scrum as a Whole
Based
26
27
Industry Experience
with Specific Agile
Practices
Industry Experience
Experience
29
Roadmap
Agile
30
32
33
Timebox Development
Agile Usage
30-day sprints (Scrum)
Iterations (XP)
Timeboxes (DSDM)
Construx Assessment
Keeps progress visible, supports high morale,
minimizes in-flow requirements changes as
long as timeboxes are short (~30 days)
Overall, a series of sprints seems to be more
sustainable for many teams than 40-hour
work week
Software Development Best Practices
34
35
Theory-Y: The belief that most workers are ambitious, selfmotivated, responsible, want to be self-directed, and are
motivated by the opportunity to do good work. Theory Y
managers try to remove barriers that prevent workers from
fully actualizing themselves and ensures they dont get
bogged down by rules.
36
Coding Standards
Agile Usage
Coding standard (XP)
Construx Assessment
Overall, a longstanding industry best
practice
37
38
39
40
Customer-Provided Acceptance
Tests
Agile Usage
Onsite customer creates acceptance tests
(XP)
Construx Assessment
Requires a level of ongoing customer
participation that is hard to obtain
Customers often dont know even generally
how to define meaningful test cases
Overall, a good, supplemental test practice
but not a substitute for independent testing or
developer testing
Software Development Best Practices
42
43
Simple Design
Agile Usage
Focus on the simplest thing that will work (XP)
Construx Assessment
A good design emphasis as long as team
doesnt oversimplify
44
Test-First Development
Agile Usage
Test-first coding style (XP)
Construx Assessment
Minimizes time to defect detection
Democratizes creation of test cases
Requires culture shift among developers,
which can be problematic
High Discipline--often dropped or
compromised
Overall, an important step forward in SQA,
and worth the effort
Software Development Best Practices
45
46
System Metaphor
Agile Usage
System metaphor (XP)
Construx Assessment
Probably the least understood aspect of
XP; XP experts dont even agree about
what it means
Tends to lead to time spent arguing
about metaphors
Overall, best to ignore this practice
Software Development Best Practices
48
On-Site Customer
Agile Usage
On-site Customer / Project Community (XP, Scrum)
Construx Assessment
Obtaining a full-time onsite customer is great, but its rarely
possible
If an onsite customer can be obtained, that customer isnt
necessarily representative
Role is frequently delegate to a business analyst or even
developer
Involving the customer is an important concept (goes back
to original Standish Group CHAOS report in 1994, or
earlier)
Within Agile, the concept has evolved toward embracing
the whole team or project community (aka project
stakeholders)
Overall, the original idea is migrating toward Boehms
Theory-W management, a good development
Software Development Best Practices
49
50
Pair Programming
Agile Usage
Strongly associated with XP
Construx Assessment
Sweet spot is pairing of junior and senior
programmers
Many programmers prefer not to work this
way
Very few organizations stay with the full-scale
practice on a sustained basis
Overall, lots of value when used selectively
Software Development Best Practices
51
Refactoring
Agile Usage
Organized approach to improving code quality
in the face of changes
Construx Assessment
Refactoring is often used as a cover for code
and fix
Large-scale refactoring projects are usually
disastrous, unfocused time wasters
Used by the book, refactoring adds useful
discipline to code changes
Overall, a good practice in whose name many
abuses are committed
Software Development Best Practices
52
Agile's Legacy
Agile's Legacy--Negatives
Latest in a long line of genuine advances that
have been hyped beyond their real
capabilities (structured, 4GLs, object oriented,
CASE, reuse, etc.)
Agile isnt the best solution for every
company, though it is for many
The Agile name has lost much of its meaning
due to excessive buzzword usage
Agile literature has sometimes thrown out the
baby with the bathwaterthere are still cases
where sequential practices are the best fit
54
Agile's LegacyPositives
Clear #1:
Heightened awareness of importance of short,
iterative and/or incremental development cycles
55
Agile's LegacyPositives
56
In Other Words,
The Pendulum has Swung
CMM /
Waterfall
Agile
57
CMM /
Waterfall
Agile
58
59
Seminars &
Professional Development
Consulting
Tools
sales@construx.com
www.construx.com
+1 (425) 636-0100