Agile Software Development and Test Driven Development: Agil8's Dave Putman 30 oct 2014
-
Upload
agil8-ltd -
Category
Technology
-
view
445 -
download
5
description
Transcript of Agile Software Development and Test Driven Development: Agil8's Dave Putman 30 oct 2014
Agile Software Development
- Test Driven Development David Putman
Community Event : 30th October 2014
agil8 2014 0
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
agil8 2014 1
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
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
The Agile EquationScrum == XP – (difficult bits)
Release
Planning
Retrospectives
User Stories
Small
Releases
On Site
Customer
Acceptance
Testing
One
Team
Iterations
Open
Workspace
Coding
StandardsCollective
Ownership
Continuous
IntegrationSustainable
Pace
Metaphor
Simple
Design
Pair
Programming Refactoring
Test
First
agil8 2014 5
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
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
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
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
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
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
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
TDD is DeadLong 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