At 18F, we have learned that value is best delivered on government software products by using an agile or iterative approach. By working closely with users and stakeholders, regularly delivering small chunks of value, and verifying direction and progress, we’re able to quickly deliver quality software that meets user needs.
With each incremental release (every two weeks or so), we intend to deliver value to some set of users. We hope to succeed every time, but sometimes, we don't get it right. The benefit of working this way is that we can recover from our mistakes quickly, without a lot of wasted time or money. When we do not succeed, we take time to evaluate the mistake as a team, document our learnings, and adjust course in a better direction.
We keep everyone in the loop throughout this process so that there are no surprises. And, over time, this process will yield software that is tightly bound to the needs of users, and to stakeholder goals.
Whether you call it lean or agile or iterative development, the intention is to always start small with a clear idea of who you are helping and how you know you have successfully helped them, continually evaluate your success and feed any learnings back into the product development process.