Test Driven Development (or TDD) is the practice of writing unit tests before you write your production code in a cycle of write a test, write just enough production code to make the test pass, then refactor the code to make it clean. This website provides many articles on how to follow this practice from it’s basics to advanced aspects and language specific details. But before you invest a lot of time and effort learning this practice and adjusting your workflow to use it, it makes sense to understand how it will benefit you and your business. Because there’s really no point in adopting a practice if it doesn’t ultimately help you with reaching your business goals. The list below describes several ways that TDD does this.
Documents the Code
Your unit tests provide a compilable and executable example of how the production code is expected to work. This can help new developers immensely when trying to dive in an understand what the code is doing and how it works. If new developers can understand the code base more quickly and easily then they’ll start helping the business more quickly.
Keeps the Design Simple
One of the goals of TDD is to only write enough production code to make the currently failing test pass. This helps to drive to the simplest implementation possible. Simple designs are easier to understand, maintain, and modify in the future all of which help the business to put our high quality software faster.
Improves Code Quality
Bugs in your production code can be a serious problem for your business’s reputation. Unit testing should the be the first safety net to catch bugs in the production code. Every developer should be writing unit tests to verify that their code is working as expected for both positive and negative test cases. If you aren’t writing unit tests at all then you’re missing a huge opportunity to catch bugs in your code early and in ways that may be difficult to reproduce outside of unit tests.
Implement Features Faster
Getting new products and features out fast is critical for everyone’s business. Once you have the TDD workflow in place you will work faster. You will find bugs with your code, be able to back out the changes that have created those bugs, and then get back on the right track more quickly. The TDD cycle is a short 2-3 minute cycle of writing a test, writing the code to make the test pass, and refactoring. If any changes break any of the tests you’ll know very quickly and be able to back those changes out. You can’t break to much in 2-3 minutes. This is a much faster cycle than compiling an entire component, deploying it to the target environment, testing it, and trying to dig through a days worth of changes to figure out any problems.
Increase the Maintainability of Your Code Base
Business is always has a need for software products to be creating new features and capabilities. When you have working unit tests for all the code in your code base then you have a lot more confidence to make changes in that code base because your unit tests will immediately tell you if you’ve broken anything. Implementing unit tests first also helps drive your code to have a modular and object oriented design which helps with implementing changes later.