These are the slides used in our Mastering Agile Development session in September 2012. It gives some insights into the why, how and smells of doing TestDriven Development
2. Scrum is Hot, but…
Many Scrum teams are struggling
• Slow down (fewer features/sprint)
– More and more production issues
– Increased fragility
• Requests for ‘refactoring’ stories from
development team
3. Scrum is Hot, but…
• Regression testing is demanded
– Takes up lots of time in a sprint
– Sprints start to lengthen
• Documentation becomes an issue because Agile
teams “don’t do” documentation.
• Technical debt is introduced via “Copy and paste
coding”.
4. 10 Year Agile Manifesto meet up 2011 concluded
“As a group, we agreed on the following four belief statements:
•Demand technical excellence
•Promote individual change and lead organizational change
•Organize knowledge and improve education
•Maximize value creation across the entire process”
9. Uncle Bob About TDD
“The act of writing a unit test is more an act of
design than of verification. It is also more an act
of documentation than of verification.
The act of writing a unit test closes a remarkable
number of feedback loops, the least of which is
the one pertaining to verification of function”
10. Kent Beck about TDD
“TDD encourages simple designs
and inspires confidence”
11.
12. About Unit Testing
“A procedure used to validate that individual units
of source code are working properly.
A unit is the smallest testable part of an application.
In procedural programming a unit may be
an individual program, function, procedure, etc.,
while in object oriented programming,
the smallest unit is a method.”
13. Why Unit Tests?
• Avoid Combinatorial Complexity
• Fine grained makes it easy to pin-point defects
• Coded documentation that stays in sync
• Supports changing the code
• Supports collective code ownership