Course: Sustainable TDD

Course Description

Sustainable Test-Driven Development This course teaches participants the skills of unit testing, refactoring, and incremental development. We take it farther than this. Unless developers are trained about which tests to write, how to write them, when to refactor code, and the techniques for breaking dependencies, testing can become unsustainable as projects mature. The course discusses how to make Test-Driven Development sustainable with a focus on deriving maximum value (technical and business) from minimal effort and cost.

Related Learning Paths

Related Roles

Related Support for Courses

Net Objectives Training

Provide Feedback

The resources on this page help students of Sustainable Test-Driven Development explore the topics in the course more deeply.

Web-based Resources

www.SustainableTDD.com

A blog by Scott L. Bain and Amir Kolsky, senior consultants at Net Objectives. The blog offers insight into the topics they are exploring about Test-Driven Development in support of a new book called “Sustainable Test-Driven Development.”

Net Objectives Pattern Repository

The purpose of this repository is to serve as a central clearing house for patterns in software. You are free to use this material for your edification and study.

Net Objectives Support Group (LinkedIn)

A LinkedIn group for all conversations relating to supporting Net Objectives courses including both technical agility, process, portfolio management. This LinkedIn group was formed by Net Objectives trainers and coaches who are active in the group.

Code Quality Practices: Flash-based interactive or PDF.

The practices involved in code quality including write tests first, code by intention, write clearly, encapsulate by convention and reveal by need, avoid redundancy, do not do more than needed, pull out things that vary, treat conceptually similar things the same way, favor composition over class inheritance, design to interfaces, separate use from construction, refactor code as needed, limit yourself to one perspective in a class or method.

Book Excerpts

The following books in the Net Objectives Effective Software Development Series relate to this course and offer online excerpts.

Essential Skills for the Agile Developer: A guide to better programming and design

This book answers the question many developers have after taking some initial Agile/Scrum training – “OK, how do I write code now that we are building our software in iterations?” This book provides over a dozen proven practices that help developers improve their coding practices and make their code more easily changeable and maintainable in Agile projects.

Emergent Design: The evolutionary nature of professional software development

As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software. Drawing on patterns, refactoring, and test-driven development, Scott L. Bain offers a blueprint for moving efficiently through the entire software life-cycle, smoothly managing change, and consistently delivering systems that are robust, reliable, and cost-effective.

Test-Driven Database Development

Max Guernsey explains why TDD offers so much potential to database practitioners, and how to overcome obstacles such as the lack of conventional “testable classes.” You’ll learn how to use “classes of databases” to manage change more effectively; how to define testable database behaviors; how to maximize long-term maintainability by limiting a database’s current scope; and how to use “emergent design” to simplify future expansion.

Design Patterns Explained

Design Patterns Explained provides the reader with a gentle yet thorough introduction to design patterns and recent trends and developments in software design.