agile, tdd and .net

Post on 18-Jun-2015

654 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Brief overview of Agile and TDD.

TRANSCRIPT

Agile

Declan Whelan

It’s not something you

do,it’s something

you are.

WaterfallRequirements

Code

Test

Deploy

Challenged46%

Failed19%

Successful35%

Software Projects

“The CHAOS Chronicles” 2006 The Standish Group

Rarely19%

Never45%

Sometimes16%

Often13%

Always7%

Software Features Used

“The CHAOS Chronicles” 2006 The Standish Group

Requirements• Business

Requirements

• Technical Requirements

Analysis & Design• System

Specifications

• Component Specifications

Code• C#, C, C+

+ etc.• Big-

Bang Integration

Test• Validati

on Tests• Verificat

ion Tests

Deploy

Time

CostOf

Change

Waterfall

“… risky and invites failure.”

Winston Royce

agility

values, principles and practices thatfoster team communication and learning

to regularly deliver customer value through working software

agile values

individual and interactionsover processes and tools

working software over comprehensive documentation

customer collaboration over contract negotiation

responding to change over following a plan

agile principles

working software as primary measure of progress

craftsmanship

emergent design

do the

simplest thing that could possibly work

feedback

agile practices

Agile Practices – They Aren’t New!

Source: Software Best-Practices: Agile Deconstructed - Steven Fraser OOPSLA 2007

20001960 199019801970

Requirements forever

Pair Programming 50s

Test-Driven Design

Project Planning

Risk Management

Software Reuse

Software Architecture

Collective Ownership

Documentation

Cont. Integration

Simple Design

Data Hiding

Software Metrics

On-Site Customer

Coding Standards

Incremental Releases

Patterns

Evolutionary Design

Sustainable Pace

Metaphor

Refactoring

Retrospectives

Red Green Refactor

1. Write the test code2. Compile the test code (it should fail)3. Implement just enough to compile4. Run the test and see it fail5. Implement just enough to make it pass6. Run the test and see it pass7. Refactor for clarity and to remove duplication8. Repeat from step 1

Simple Design Rules

1.Has a test2.Intent revealing3.No duplication4.Minimum number of

classes/methods

TDD Resources

• “Test-Driven Development”Kent Beck

• “xUnit Test Patterns”Gerard MeszarosRick Mugride, Ward Cunningham

• “Pragmatic Unit Testing in C# with NUnit”Andrew Hunt, David Thomas

• http://www.testdriven.com• http://www.nunit.org/ - NUnit

top related