Agile teams should deliver working software after each sprint. Sounds good. What does it really mean?
Ideally, the team should be delivering value to the business with each sprint. Of course, the term value is equally obscure.
Ultimately, what works or has value is up to the end users to decide. Obviously, they don’t understand what the software is doing internally — nor do they care. The business folks can only evaluate what they see.
That’s why it’s critically important for agile developers to deliver incremental updates that the end users can experience and observe. The improvements can take many forms. Here are a few:
- User interface changes (that hopefully improve the user experience)
- New features (things the software does)
- Better performance (faster is always better)
- Bug fixes (focus on the ones that have the most impact)
- Improved reporting (businesses love reports — lots of them)
There will be times when the team needs to refactor, rework, or even redesign. Fine, but the users won’t care. If you have to spend time doing work that the business can’t observe or experience, try to include something from the list above.
As long as you can offer observable improvements, you’ll buy time and keep the business engaged in the effort. Because once the business loses interest in your project, you’re done — really done.