David Putman of agil8’s training and consulting team discussed the anti-patterns observed in organisations introducing technical practices into their Agile software development teams, and how to avoid them.
This presentation was made at agil8’s Community Event for past students, clients, colleagues and agil8 associates on 30 October 2014.
Agile Software Development and Test Driven Development: Agil8's Dave Putman 30 oct 2014
1. Agile Software Development
- Test Driven Development
David Putman
Community Event : 30th October 2014
agil8 2014 0
2. David Putman
• Agile Consultant since 2001
• SAFe Programme Consultant
• Certified ScrumMaster
• Agile Award Nominee in
2011: Agile Coach of the Year
• Agile Award Winner in 2012:
Special Recognition
david.putman@agil8.com
agil8 2014 1
3. Certified Scrum Developer
• Certified Scrum Developer (Agile Software
Development) – 3 day training course
– Hands on coding skills
– Emergent Agile Design
– Test Driven Development
– Refactoring
– Continuous Integration Etc.
• Delegates taking this course can apply for CSD
status when the also have CSM or CSPO
• 21 SEUs (Scrum Education Units) towards CSP
agil8 2014 2
5. Agenda
• Introduction
• The Agile Equation
• It all starts with a story
• Testing from the outside-in
• Introducing Jedward
• Testing from the inside-out
• Are you mocking me?
• Improving the design
• And back out again
• Putting it all together
• Next Steps and Further Reading
agil8 2014 4
6. The Agile Equation
Scrum == XP – (difficult bits)
Release
Planning
Retrospectives
User Stories
On Site
Customer
Test
First
Simple
Design
Small
Releases
Acceptance
Testing
One
Team
Iterations
Open
Workspace
Coding
Standards
Collective
Ownership
Continuous
Integration
Sustainable
Pace
Metaphor
Pair
Programming Refactoring
agil8 2014 5
7. It all starts with a Story…
• Collaboration is the key
• Consensus on the problem
we’re trying to solve
• A shared vision of what
we’re going to build
• Reducing the risk of
building the wrong thing
• Anti-patterns: missing or
wrong value statement,
stories only for one user,
stories written in isolation,
no acceptance criteria
agil8 2014 6
8. Testing from the Outside In
• Building the right thing
• Automating the agreed
acceptance criteria
• Customer-focused
acceptance testing
• The beauty of
automation
• Anti-patterns: no
automation, no tests, UI
only tests, lack of
customer involvement.
agil8 2014 7
9. Introducing JEDWARD
• Just Enough Design,
With All the Right Developers
• Agile modelling using CRC
and/or dynamic UML
techniques
• Consensus again – a shared
vision of how we’re going to
build it, everybody going in the
same direction
• Anti-patterns: not doing design,
design in isolation, team
working on multiple stories.
agil8 2014 8
10. Testing from the Inside Out
• Building the thing
right
• Engineering tests
• Building quality in
• A double entry
system
• Anti-patterns: slow
tests, linked tests,
broken tests, smoke
tests
agil8 2014 9
11. Improving the Design
• Refactoring
• “It works!” is just not
good enough
• Implies you know what
‘good’ design is
• Not doing design is the
worst sin of all
• Anti-pattern: refactoring
as a separate activity,
treating principles as
rules, the Golden
Hammer
agil8 2014 10
12. Are you Mocking me?
• Mocking for hard to
test items
• Canonicality
• How often do we
really need to use
them?
• Anti-patterns: overuse
of mocks, fragmented
codebase
agil8 2014 11
13. and Back out Again
• Anti-patterns:
not following the
process
Red
Lion
agil8 2014 12
14. Putting it all Together
• Continuous integration
• Single mainline
• Pipelines
• Continuous delivery
• DevOps
• The new yardstick
• Anti-patterns: branching, long
integration or deployment cycles
plan build integrate deliver operate
agil8 2014 13
15. TDD is Dead
Long live TDD!
More and more
organisations are
understanding the benefits
of building quality in
More and more engineers
are understanding the
benefits of disciplined
delivery
But only if you do it
right!
agil8 2014 14
16. Next Steps & Further Reading
User Stories Applied: Mike Cohn
Clean Code: Robert C Martin
Growing Object-Oriented Software: Steve
Freeman, Nat Pryce
Refactoring: Martin Fowler
Continuous Delivery: Jez Humble, David Farley
agil8 2014 15