SlideShare a Scribd company logo
1 of 7
Download to read offline
Live TDD Demo


Arithmetic Expression Evaluator


  Ionut G. Stan & Andrei Savu
Mindset change

Think about the smallest feature that you want to
implement and express it in test code.
 
Implement it.
 
This leads to emergent design.
Problem
1 + 2 * 5 - 4 = ? 


Tools
Python, unittest, TextMate


Data Flow
Expression > Split in tokens > Postfix notation > Evaluate

1+2*5-4  >  (1, +, 2, *, 5, -, 4)  >  (1, 2, 5, *, +, 4, -)  >  7
Postfix Notation !?


     1 + 2             >   1 2 +
     1 + 2 - 3        >   1 2 + 3 -
     1 + 2 * 3        >   1 2 3 * + 
     1 + 2 * 3 - 4  >   1 2 3 * + 4 -
Conclusions




      TDD is no silver bullet
Questions?

  thanks :)

More Related Content

Viewers also liked

Lessons learned since the four schools
Lessons learned since the four schoolsLessons learned since the four schools
Lessons learned since the four schools
Markus Gärtner
 
Agile Classrooms Workbook
Agile Classrooms WorkbookAgile Classrooms Workbook
Agile Classrooms Workbook
John Miller
 
Essential Elements of Effective Education
Essential Elements of Effective EducationEssential Elements of Effective Education
Essential Elements of Effective Education
Steve Peha
 

Viewers also liked (18)

Fail Fast Forward: UC Risk Summit 2013
Fail Fast Forward: UC Risk Summit 2013Fail Fast Forward: UC Risk Summit 2013
Fail Fast Forward: UC Risk Summit 2013
 
Death by Scrum Meeting Agile2010
Death by Scrum Meeting Agile2010Death by Scrum Meeting Agile2010
Death by Scrum Meeting Agile2010
 
Coding... For Communicators?
Coding... For Communicators?Coding... For Communicators?
Coding... For Communicators?
 
Uber Vu - Scrum & Startups
Uber Vu - Scrum & StartupsUber Vu - Scrum & Startups
Uber Vu - Scrum & Startups
 
Scrum in Hardware
Scrum in HardwareScrum in Hardware
Scrum in Hardware
 
Lessons learned since the four schools
Lessons learned since the four schoolsLessons learned since the four schools
Lessons learned since the four schools
 
Agile dashboard
Agile dashboardAgile dashboard
Agile dashboard
 
Agile Classrooms Reflection
Agile Classrooms ReflectionAgile Classrooms Reflection
Agile Classrooms Reflection
 
PM und SCRUM - Vortrag PMI FC 10.10.2011
PM und SCRUM - Vortrag PMI FC 10.10.2011PM und SCRUM - Vortrag PMI FC 10.10.2011
PM und SCRUM - Vortrag PMI FC 10.10.2011
 
Agile Classrooms Workbook
Agile Classrooms WorkbookAgile Classrooms Workbook
Agile Classrooms Workbook
 
AgileEE 2011: My Lightening Talk about "Definiton of READY"
AgileEE 2011: My Lightening Talk about "Definiton of READY"AgileEE 2011: My Lightening Talk about "Definiton of READY"
AgileEE 2011: My Lightening Talk about "Definiton of READY"
 
Scrum in Schools - Maritza van den Heuvel
Scrum in Schools - Maritza van den HeuvelScrum in Schools - Maritza van den Heuvel
Scrum in Schools - Maritza van den Heuvel
 
Using Agile in the Classroom
Using Agile in the ClassroomUsing Agile in the Classroom
Using Agile in the Classroom
 
Apply Scrum to Your Hardware & Manufacturing Projects for Better Results by H...
Apply Scrum to Your Hardware & Manufacturing Projects for Better Results by H...Apply Scrum to Your Hardware & Manufacturing Projects for Better Results by H...
Apply Scrum to Your Hardware & Manufacturing Projects for Better Results by H...
 
Agile dashboard
Agile dashboardAgile dashboard
Agile dashboard
 
Essential Elements of Effective Education
Essential Elements of Effective EducationEssential Elements of Effective Education
Essential Elements of Effective Education
 
The Sensei Retrospective (Guide)
The Sensei Retrospective (Guide)The Sensei Retrospective (Guide)
The Sensei Retrospective (Guide)
 
Great Expectations: Software Development as Dickensian Bildungsroman
Great Expectations: Software Development as Dickensian BildungsromanGreat Expectations: Software Development as Dickensian Bildungsroman
Great Expectations: Software Development as Dickensian Bildungsroman
 

More from OpenAgile Romania

Lessons learned in agile romania
Lessons learned in agile romaniaLessons learned in agile romania
Lessons learned in agile romania
OpenAgile Romania
 
Products andpeopleoverprocessanddogma
Products andpeopleoverprocessanddogmaProducts andpeopleoverprocessanddogma
Products andpeopleoverprocessanddogma
OpenAgile Romania
 
Agile teams as innovation teams
Agile teams as innovation teamsAgile teams as innovation teams
Agile teams as innovation teams
OpenAgile Romania
 
Open ro lightningretrospectives
Open ro lightningretrospectivesOpen ro lightningretrospectives
Open ro lightningretrospectives
OpenAgile Romania
 
Daniel nicolescu agilepm-final
Daniel nicolescu agilepm-finalDaniel nicolescu agilepm-final
Daniel nicolescu agilepm-final
OpenAgile Romania
 

More from OpenAgile Romania (15)

Lessons learned in agile romania
Lessons learned in agile romaniaLessons learned in agile romania
Lessons learned in agile romania
 
Products andpeopleoverprocessanddogma
Products andpeopleoverprocessanddogmaProducts andpeopleoverprocessanddogma
Products andpeopleoverprocessanddogma
 
Agile teams as innovation teams
Agile teams as innovation teamsAgile teams as innovation teams
Agile teams as innovation teams
 
Openagile
OpenagileOpenagile
Openagile
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Tdd demo
Tdd demoTdd demo
Tdd demo
 
Open ro lightningretrospectives
Open ro lightningretrospectivesOpen ro lightningretrospectives
Open ro lightningretrospectives
 
Daniel nicolescu agilepm-final
Daniel nicolescu agilepm-finalDaniel nicolescu agilepm-final
Daniel nicolescu agilepm-final
 
Open ro agilecoaching
Open ro agilecoachingOpen ro agilecoaching
Open ro agilecoaching
 
Survive In Agility Islands
Survive In Agility IslandsSurvive In Agility Islands
Survive In Agility Islands
 
Agile Startup
Agile StartupAgile Startup
Agile Startup
 
Brain & Quality Software
Brain & Quality SoftwareBrain & Quality Software
Brain & Quality Software
 
Executive Report Executive Dashboard Report Handout
Executive Report Executive Dashboard Report HandoutExecutive Report Executive Dashboard Report Handout
Executive Report Executive Dashboard Report Handout
 
Executive Dashboard Report For Agile Projects
Executive Dashboard Report For Agile ProjectsExecutive Dashboard Report For Agile Projects
Executive Dashboard Report For Agile Projects
 
The Life Of A Tester In An Agile Team
The Life Of A Tester In An Agile TeamThe Life Of A Tester In An Agile Team
The Life Of A Tester In An Agile Team
 

Tdd performance kata

  • 1. Live TDD Demo Arithmetic Expression Evaluator Ionut G. Stan & Andrei Savu
  • 2.
  • 3. Mindset change Think about the smallest feature that you want to implement and express it in test code.   Implement it.   This leads to emergent design.
  • 4. Problem 1 + 2 * 5 - 4 = ?  Tools Python, unittest, TextMate Data Flow Expression > Split in tokens > Postfix notation > Evaluate 1+2*5-4  >  (1, +, 2, *, 5, -, 4)  >  (1, 2, 5, *, +, 4, -)  >  7
  • 5. Postfix Notation !?  1 + 2             >   1 2 +  1 + 2 - 3        >   1 2 + 3 -  1 + 2 * 3        >   1 2 3 * +   1 + 2 * 3 - 4  >   1 2 3 * + 4 -
  • 6. Conclusions TDD is no silver bullet