➑️ "Deliver value daily" ⬅️

A one-principle manifesto for agile software development

Why?

By delivering value daily:

And of course:

How?

The single most important technique is to repeatedly choose features smaller than what are assumed to be needed, and make them useable by real users by the end of each day. Ideally they will be much smaller, so you limit the risk of not completing them within a day, and so you increase the chance of delivering value multiple times each day.

To make this choice, you often need to be close to users - for example in direct contact with them. It also requires a certain level of confidence - do what it takes to develop this if you think you're low.

But... what about https://agilemanifesto.org/?

Following this one principle will result in following the 12 principles of the original Agile Manifesto - at least the ones that help deliver value in your case. The exception is the apparent lower bound of a "couple of weeks" on how frequently working software can be delivered - we can do better!

But... what about investing for the future?

You can do tasks that don't result in value today, but just not whole days at a time - at least some of each day should be spent delivering value. By following the principle you will balance delivering value today with investing for more value tomorrow.

Do not refactor or address "tech debt" without a clear idea of how it will lead to value, and merge and release such investment changes daily, just as you would any other. And of course, if something repeatedly doesn't lead to value, you should consider not doing it.

But... does this risk reducing quality?

No! This is not about cutting corners, this is choosing the smallest pieces of work you can complete in a day that provide value at the quality level you decide is appropriate.

But... we have a fixed release cycle and I can't change that?

Do what you can to split out the smallest valuable parts of remaining tasks, and get them as close as possible to releasable that you have the power to do every single day. Be the change you want to see.

But... I won't be able to keep up by delivering every day?

Do not set out to complete features as envisaged each day - this is impossible. Instead, set out to complete thin slices of them, and don't be afraid of shrinking things even further as each day progresses.

This is effectively the opposite of Scrum's committment to achieving fixed sprint goals.

But... everything that's valuable will take more than a day?

If you really can't extract a small enough amount of work that's valuable today, is there anything that you can complete today that can set you up for delivering value tomorrow? Often something that gets feedback on your riskiest assumptions from users or technology is a good choice.

What other techniques can help deliver value every single day?

You will probably build up your own project-specific suites of techniques to help you deliver value, but here's some to start off with: