Agile Software Development and Test Driven Development: Agil8's Dave Putman 30 oct 2014

16
Agile Software Development - Test Driven Development David Putman Community Event : 30 th October 2014 agil8 2014 0

description

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.

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

[email protected]

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

R.I.PTDD The Death of

TDD?

[email protected]

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

and Back out Again• Anti-patterns:

not following the process

RedLion

agil8 2014 12

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

Next Steps & Further Reading

User Stories Applied: Mike CohnClean Code: Robert C MartinGrowing Object-Oriented Software: Steve Freeman, Nat PryceRefactoring: Martin FowlerContinuous Delivery: Jez Humble, David Farley

agil8 2014 15