Feedback is the breakfast of champions, or so the saying goes. The more I peer into our methodology for getting more projects done faster and more successfully, the more I think that great early feedback is the key to its success. In software development methodologies, feedback is called testing.
The phrase “working client-valued software features” contains two types of test: that the software works and that it adds value to a client. Client wishes change over time as does the software landscape that the new business features are released into. The world is moving on as we develop software. The more frequently each test is repeated the more quicker the project can react to these differences. Unit tests and functional tests help us discover what is required to get the features working. End-to-end tests and frequent releases are required to discover what is required to get the features adding value. The later a mistake is found, the more work that needs to be re-done in order to correct it
Each type of test requires work, so there will be a trade-off between testing and development. A key component of agile is flipping the script so that we bake tests into the development lifecycle. This makes tests so easy to execute that it becomes inexcusable not to test. Feedback comes baked-in every day.
You can see this from the Top Ten Agile Best Practices. Of the ten, four are ways of introducing feedback earlier:
- Code regression testing
- Continuous integration
- Test-driven development
- Database regression testing
How do you get earlier feedback in your projects?