Assessing Agile Engineering Practices

17
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

Transcript of Assessing Agile Engineering Practices

Page 1: Assessing Agile Engineering Practices

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

Page 2: Assessing Agile Engineering Practices

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.

Page 3: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 1

Assessing Agile Engineering

Practices

Rob Myers Agile Development Practices

East 13 November 2014

Page 4: Assessing Agile Engineering Practices

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

Page 5: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 3

Page 6: Assessing Agile Engineering Practices

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

Page 7: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 5

Page 8: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 6

Page 9: Assessing Agile Engineering Practices

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

Page 10: Assessing Agile Engineering Practices
Page 11: Assessing Agile Engineering Practices

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

Page 12: Assessing Agile Engineering Practices

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

Page 13: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 11

“If it’s painful,

do it often.”

-- attributed to Kent Beck, who is not a masochist.

Page 14: Assessing Agile Engineering Practices

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

Page 15: Assessing Agile Engineering Practices

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

Page 16: Assessing Agile Engineering Practices

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

Page 17: Assessing Agile Engineering Practices

28 October 2014 © Agile Institute 2008-2014 15

[email protected]

http://PowersOfTwo.agileInstitute.com/

@agilecoach