Agile, TDD and .NET
-
Upload
guest18f66d7 -
Category
Technology
-
view
647 -
download
2
description
Transcript of Agile, TDD and .NET
![Page 1: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/1.jpg)
Agile
Declan Whelan
It’s not something you
do,it’s something
you are.
![Page 2: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/2.jpg)
WaterfallRequirements
Code
Test
Deploy
![Page 3: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/3.jpg)
Challenged46%
Failed19%
Successful35%
Software Projects
“The CHAOS Chronicles” 2006 The Standish Group
![Page 4: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/4.jpg)
Rarely19%
Never45%
Sometimes16%
Often13%
Always7%
Software Features Used
“The CHAOS Chronicles” 2006 The Standish Group
![Page 5: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/5.jpg)
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
![Page 6: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/6.jpg)
“… risky and invites failure.”
Winston Royce
![Page 7: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/7.jpg)
agility
values, principles and practices thatfoster team communication and learning
to regularly deliver customer value through working software
![Page 8: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/8.jpg)
agile values
![Page 9: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/9.jpg)
individual and interactionsover processes and tools
![Page 10: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/10.jpg)
working software over comprehensive documentation
![Page 11: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/11.jpg)
customer collaboration over contract negotiation
![Page 12: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/12.jpg)
responding to change over following a plan
![Page 13: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/13.jpg)
agile principles
![Page 14: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/14.jpg)
working software as primary measure of progress
![Page 15: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/15.jpg)
craftsmanship
![Page 16: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/16.jpg)
emergent design
![Page 17: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/17.jpg)
do the
simplest thing that could possibly work
![Page 18: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/18.jpg)
feedback
![Page 19: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/19.jpg)
agile practices
![Page 20: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/20.jpg)
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
![Page 21: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/21.jpg)
![Page 22: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/22.jpg)
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
![Page 23: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/23.jpg)
Simple Design Rules
1.Has a test2.Intent revealing3.No duplication4.Minimum number of
classes/methods
![Page 24: Agile, TDD and .NET](https://reader033.fdocuments.in/reader033/viewer/2022042715/5582400ad8b42a0d368b5284/html5/thumbnails/24.jpg)
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