Agile, Tdd And .Net
-
Upload
declan-whelan -
Category
Technology
-
view
860 -
download
1
description
Transcript of Agile, Tdd And .Net
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