playbook
playbook copied to clipboard
Test Driven Development
I'm going to start chipping away at this PR over the next week but comments/contributions are welcome. In my opinion TDD (or some offshoot/variation) is an incredibly important, necessary and powerful tool not just for protection against regressions but also for velocity in the initial implementations if done properly, refactoring ability and for turnaround time for hotfixes (regression specs are much easier to write in the context of a rich and comprehensive test suite).
Despite my efforts to evangelize this over the years we haven't really internalized it at Lockstep—I still regularly see PRs even on greenfield projects that have no specs or specs that were clearly added after the fact. Even low-hanging regression specs are frequently omitted. But the best firms in our industry stand by this as a cornerstone of their engineering practices (Pivotal, Thoughbot, etc), and it has been an important driver of stability/productivity/velocity for my own work over the years.
I'd like to begin the process of becoming more serious and formal about this as part of our development practice, but I also want to standardize our philosophy and approach because there are many ways to do XTDD poorly and I think they contribute to the failure of adoption. I'll be outlining my thoughts in this new playbook section.
Nice effort! Looking forward to your thoughts on this one.