It starts by asking questions that get to the heart of what you need to accomplish with your software.
Then those answers are formalized into people-friendly User Stories.
Diagnostic tests are made based on those User Stories. It's kind of like teaching a computer how to use the software.
Everything you want working is done! You can now use your shiny new system, or you can ask for additional improvements as inspiration strikes.
... then rinse and repeat. You get a useful result quickly, and it only gets better over time.
Breaking down a system into User Stories is a fantastic way to work. It's a great way to prioritize the parts that you need first, and it defines a clear set of expectations for everyone.
A User Story describes exactly one task, and comes in three parts:
As a (role)
I will (action)
Because I (motivation)
- Who is doing the task?
- How do they accomplish it?
- Why do they want to do this?
As a Blogger
I will write a blog post
Because I want to work over several sessions
As a Blogger
I will publish a blog post
Because I want to share my thoughts and opinions
You wouldn't trust a doctor who never examines their patients, nor an accountant who doesn't double-check their sums. Why trust your business to software that isn't tested properly?
Once User Stories are defined, they're used as a basis for automated tests. This benefits:
- Automated tests give us a common understanding and you get what you want.
- Waste not want not - no extra effort or cost for unnecessary work
- Tests solidify the original intent and protect against breakage.
- Tests double as system knowledge and knowing is half the battle.
- It's normal to think of new awesome features. A test suite means changes can be made without fear.