New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Vikas Hazrati on Feb 17, 2009
Backlogs have been under criticism for some time now. Lean considers them as inventory and waste. Mary Poppendieck goes to the extent of suggesting that product backlog should be eliminated if it is not satisfying the desired purpose. On similar lines Jeff Patton suggested that flat backlogs fail to convey high level view of the system. He suggested using a story map instead.
According to Jeff, one of the most common problems that Agile teams face is that they quickly lose the big picture. The reason for this is the way stories are arranged completely ignoring the system which is being built. Jeff drew an interesting analogy,
"We spend lots of time working with our customers. We work hard to understand their goals, their users, and the major parts of the system we could build. Then we finally get down to the details - the pieces of functionality we'd like to build. In my head a see a tree where the trunk is built from the goals or desired benefits that drive the system; big branches are users; the small branches and twigs are the capabilities they need; then finally the leaves are the user stories small enough to place into development iterations."
"After all that work, after establishing all that shared understanding I feel like we pull all the leaves off the tree and load them into a leaf bag - then cut down the tree."
"That's what a flat backlog is to me. A bag of context-free mulch."
Jeff suggested using a story map instead of the backlog. The story map looks like this

Here, at top of the map, are big stories or activities that the users do when they interact with the system. The order of the activities is the order in which the user interacts with the system. Below the activities are the user tasks. These are the collection of tasks that the user performs to accomplish the activity. For example, if managing email is an activity then "send message," "read message," "delete message," "mark message as spam" etc are user tasks.
Jeff added that the activities on the map form the backbone of the system and the tasks are the ribs. The idea is not to prioritize the backbone because it is the foundation on which the system hinges. However, the stories should be prioritized. All the planning should be done on the basis of backbone and that is helpful in deciding on the priority of the user tasks which form the ribs.
The benefit of using a story map are that the big picture is now a central theme. Apart from this other benefits that Jeff suggested were,
I can walk the map from beginning to end with a user, stakeholder, or developer and tell a story about the users of the system and what they're doing. I can skim along the top of the map, and just touch on the high points. I can dig down into the map to discuss the details.
Talking through the map with users and others helps me find things I've missed. I often hear "you've missed a couple steps here" from users when doing this.
I can annotate the map with pain points or opportunities. As I talk through the map with a user it's common to hear him say, "this here is really a problem with the system today."
Thus, a story map helps the team to constantly focus on the product that they are building. It helps the teams not to lose focus on the forest for the trees.
Transforming Software Delivery: An IBM Rational Case Study
Agile Development: A Manager's Roadmap for Success
18 agile and lean practices for effective software development governance
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
Are there other ways to keep a constant focus on the big picture? or as Jeff mentioned story maps might be the silver bullet!
what you are suggesting is great, but it's pretty much covered by the style of use case development recommended by Alastair Cockburn,
yes, use cases can be done in an agile way,please see my post@ agileconsulting.blogspot.com/2008/02/can-use-ca...
Jeff Anderson
agileconsulting.blogspot.com
At least from a tracking point of view Feature Driven Development parking lot diagrams are useful to keep the big picture in mind. Otherwise, as Jeff Anderson mentioned, Cockburn-style use cases.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
3 comments
Watch Thread Reply