persistence stories arrive late

In one of last week’s architecture workshops (see databases as life-support for domain objects) our group briefly considered how the new product line might emerge gradually from a series of user stories. The Product Owner agreed that stories about persistence would probably be placed relatively far down the backlog, behind the stories that deliver the first several tranches of usable business value. The Product Owner wants to see and understand the business logic first, and only later will he care about “non-functionals” such as persistence and levels of service.

So if we truly design and build our application story by story, without being tempted to predict what the Product Owner will want in the future, then the database will not exist until after many of the domain objects. This is business-level support for @jbrains‘s assertion that the database should be developed last. And it knocks sideways the idea that the ‘architecture’ should be designed at the start of a project.

Update, 9 Nov 2016

I’d like to thank Joe Rainsberger for taking the time and trouble to resurrect his article, which had disappeared from the interwebs sometime during the 11 years since I originally wrote this post.

One thought on “persistence stories arrive late

  1. Interesting article you’ve referenced here. I’ve designed (and redesigned many database schema) and can honestly say I’ve only gotten maybe 5 to 10% of them right first time. This is usually because I just never have all of the facts. I’m lucky if I get 25% of the details I really need when I’m initially engaged. Implementing the persistence layer is driven by a three way split between functional support requirements, performance requirements and service requirements. The key to success when implementing a persistence layer is getting hold of the information on how it’s going to be used.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s