convincing others to do test-driven development

Download Convincing Others To Do Test-Driven Development

Post on 12-Jan-2015




2 download

Embed Size (px)




  • 1. by Jon Kruger

2. People are resistant to change People dont know about TDD TDD takes a lot of practice TDD takes too much time It will take too long to learn how to do TDD We dont know where to start We cant test our codebase Egos 3. Check your own ego you are helping people tomake their lives better Know how to teach TDD 4. Never put other peoples code down Win the respect of your team members Be encouraging Find allies 5. People need a reason to change People are worried that they will fail People are worried that getting up to speed withsomething new will affect their performance Looming deadlines 6. Encourage the success of the team, not the successof individuals Your process should reward team success, notindividual success Create a learning culture Pair programming Practice 7. Bring in experienced TDD developers to helpmentor your team Know who to ask when you need help 8. Test-drive a new feature Refactor a small piece of functionality and writetests for it Dont try and rewrite the entire app! 9. Have the boss let the team know that TDD will be apriority Make sure that the team has the tools they need tosucceed Training time Get help 10. We dont know what code is supposed to doThe Legacy Codebase 11. We cant prove that our code is working without someonemanually verifying that it worksThe Last Minute Change 12. Bugs are a waste of timeThe Infinite Loop of Bugs 13. Low standards of qualityThrowing It Over the Wall 14. Bugs can be really expensive tofix Explosions and Blackouts 15. Over time, code bases tend to become more chaotic andpainful to work withThe Maintenance Nightmare 16. Measure the right things Used Car Salesmen 17. ProductivityTime 18. We need a way to ensure that our code is working We need a way to ensure that our code willcontinue to work after someone changes it We need a way to figure out what code is supposedto do We need to make software development lessstressful 19. Source: 20. If I dont need to make itwork, I can go a lot faster. -- Kent Beck 21. Source: 22. More regression testing Too expensive to make changes to software Software rewrites 23. A software development technique where you writeautomated unit tests before you write yourimplementation code A technique for ensuring good quality and gooddesign Awesome! 24. Concentrate on what the code is supposed to do(without worrying about implementation) We dont write more code than we need to write We have a goal to shoot for We know when we are done We will write fewer bugs You cant cheat and blow off the tests TDD helps design our code We will write testable code If youre going to write tests, why not write themfirst? 25. Proof that your code works Fewer bugs (both now and in the future) Freedom to refactor without fear of breaking things Prevent code from becoming legacy code Peace of mind 26. Microsoft Research Realizing quality improvementthrough test driven development: results and experiences offour industrial teams Cost of Testing, by Misko Hevery (Agile Coach/Javadeveloper at Google) TDD Derangement Syndrome, by Uncle Bob Martin 27. Behavior Driven Development So How do You Introduce TDD into an Organization orTeam?, by Jeremy Miller How to get started with TDD, by Misko Hevery (Javaexamples) TDD Starter Kit Sample Projects and Links (C# examples) Pair Programming Bot 28. String Calculator kata Bowling Game kata Prime Factors kata Katacasts (watch screencasts of people doing variouskatas) 29. Email: Twitter: @JonKruger Blog: .NET TDD Training:


View more >