assessing agile engineering practices
TRANSCRIPT
AT11 Agile Development Concurrent Session 11/13/2014 1:30 PM
"Assessing Agile Engineering Practices"
Presented by:
Rob Myers Agile Institute
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ [email protected] ∙ www.sqe.com
Rob Myers is the founder of Agile Institute. He has twenty-eight years of professional experience on software development teams, and has been training and coaching organizations in Agile, Scrum, and Extreme Programming topics since 1998. He has recently worked with numerous organizations, from start-ups to Fortune 100 companies, helping them with cultural change and essential practices during their Agile transformations. His courses are always a blend of fun and practical hands-on labs, "Training From the Back of the Room” learning techniques, and first-person stories from both successful and not-so-successful Agile implementations.
28 October 2014 © Agile Institute 2008-2014 1
Assessing Agile Engineering
Practices
Rob Myers Agile Development Practices
East 13 November 2014
28 October 2014 © Agile Institute 2008-2014 2
Test-Driven Development
Continuous Integration
Pair Programming Collective Code
Ownership
Relentless Refactoring
Sustainable Pace
Creative Slack
CRC Cards
ATDD
Mocks
Legacy Characterization
Tests
Spikes
Emergent Design
28 October 2014 © Agile Institute 2008-2014 3
five focusing steps
1. Identify the constraint.
2. Exploit the constraint: Maximize efficiency at the
constraint.
3. Subordinate all else to the constraint: Allow the
constraint to set the pace.
4. Elevate the constraint: Invest (wisely) in “more,
better, faster.”
5. Repeat.
28 October 2014 © Agile Institute 2008-2014 4
28 October 2014 © Agile Institute 2008-2014 5
28 October 2014 © Agile Institute 2008-2014 6
28 October 2014 © Agile Institute 2008-2014 7
“The results of the case studies indicate
that the pre-release defect density of the
four products decreased between 40%
and 90% relative to similar projects that
did not use the TDD practice.
Subjectively, the teams experienced a
15–35% increase in initial development
time after adopting TDD.” http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf, Nagappan et al,
© Springer Science + Business Media, LLC 2008
28 October 2014 © Agile Institute 2008-2014 9
“Laurie Williams of the University of Utah
…has shown that paired programmers are
only 15% slower than two independent
individual programmers, but produce
15% fewer bugs. Since testing and
debugging are often many times more
costly than initial programming, this is an
impressive result.” "Agility counts", The Economist, 20 Sep 2001
beyond academia
• The obvious: • Fewer defects. • Cross-training.
• The subtle: • Collaboration, courage, & creative
problem-solving. • Self-control, self-discipline, valuable
breaks, fewer interruptions. • Readable code, less ego-centric code. • Fewer “heroes” (a.k.a. single points of
failure).
28 October 2014 © Agile Institute 2008-2014 10
28 October 2014 © Agile Institute 2008-2014 11
“If it’s painful,
do it often.”
-- attributed to Kent Beck, who is not a masochist.
so boring, a computer could do it
• What it provides: • Rapid, automated feedback. • We know we’re testing/deploying a
version from a stable snapshot. • Often generates valuable metrics.
• What it helps avoid:
• Dependency integration defects, merge conflicts, lingering broken builds.
• A need for branching, & branched releases.
• Code freezes.
28 October 2014 © Agile Institute 2008-2014 12
a short Continuous Integration recipe
1. A build server. 2. A code repository. 3. A fast suite of automated tests. 4. Build scripts. 5. A Buildmeister. 6. A CI tool (optional, but adds zest)
28 October 2014 © Agile Institute 2008-2014 13
28 October 2014 © Agile Institute 2008-2014 14
Test-Driven Development
Continuous Integration
Pair Programming Collective Code
Ownership
Relentless Refactoring
Sustainable Pace
Creative Slack
CRC Cards
ATDD
Mocks
Legacy Characterization
Tests
Spikes
Emergent Design
28 October 2014 © Agile Institute 2008-2014 15
http://PowersOfTwo.agileInstitute.com/
@agilecoach