Great article from David about “evolutionary architecture” and a nice example about it from the Microsoft Word ribbon.
David explains desirements and requirements as:
A desirement is a non-compiled request for software to change. Examples include specification documents, Team Foundation Server Work Items, index cards, and hope expressed with Microsoft Word.
Everyone can state a desirement and throw it on the bottom of the wishlist.
The interesting part is when a desirement gets closer to be a requirement (bubbles up) and the team discusses about the details and writes acceptance tests with the business to confirm them.
A requirement, on the other hand, is an automated test proving desired behavior exists in software. Requirements (tests) must pass before software may ship.
This leads to creating a ATDD Ready Backlog, which is a great way to make sure you have “always releasable software”.
Full article from David Starr: