As a secondary benefit, both of these combine to lower risk. When we get better feedback, sooner, we are able to make directional changes that lower risk. When the quality is high, there is less risk of things going wrong.
Why might we want to use Test Driven Development (TDD)? Its focus on design results in a higher quality product. It also encourages smaller, more granular, automated tests which will provide faster and better feedback.
Why might we want to aggressively refactor the code? It results in higher quality.
Why might we want to have multiple people working together in pairs on an ensemble? Higher quality. Faster and better feedback.
Why might we want to continually integrate the code? How about releasing frequently? Faster and better feedback.
So if you’re asking yourself whether you need the agile technical practices, ask instead whether you need faster, more actionable, feedback and high quality. If you don’t care about those things then no, you don’t need any of this.
If you do care about being able to make better and more timely decisions and do want to deliver high quality solutions to your customers, then it’s time to focus on improving your technical practices.