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 Aug 04, 2009
An implicit assumption made by most Agile teams is that 'value' is directly proportional to the 'velocity' of the team. While this may be true in some cases, however mostly, the team velocity gives little indication on the true value delivered.
Ryan Shriver suggested that value is a measure of the delivered benefits, as perceived by the stakeholders. On the other hand, velocity is the aggregation of story points that a team can deliver during an iteration. Whether all of these story points deliver value is debatable. According to Ryan, the development teams should ask the following questions,
Answer this question: What’s most important for the people financing your project-product-service? Is it the benefits they expect from the solution, such as increased revenue, market share or operational efficiencies (we’ll call this business value)?
Or is it the estimation accuracy of the team working on the solution (velocity)?
Similarly, Mike Cottmeyer suggested that value and velocity are not explicitly linked to each other. While a team may be adding feature after feature at a rapid speed, thus achieving a huge velocity. However, if the sales team is not able to sell the product or business is not able to use it then the team is actually adding little value. He also added that value for a complex product would depend on the value added by all the teams in the chain. According to Mike,
Let's say you have four teams that have to work together to deliver a new product suite to the market. Teams A, B, and C have fantastic velocity but team D just hasn't been able to get their stuff together. Team D ultimately delays the release... and the overall product is late to market. In the meantime... the competition just released the latest version of their product and yours doesn't do so well.
How much did the velocity of teams A, B, and C help the overall value of your product? Again... great velocity... not so much value.
So, if velocity is flawed, what is the best measure of productivity?
Kai Gilb’s suggested the role of a Value Product Owner . He illustrated how Stakeholder and Product Values can be integrated with Scrum to measure value. Here, the Product Owner plans, prioritizes and tracks results at the Stakeholder and Product value levels.
Ryan Shriver suggested other techniques for measuring value.
James Shore suggested an interesting way for measuring productivity. This is called Value Velocity. According to James,
Here's the trick: rather than asking your business experts to measure business value after delivery (difficult!), have them estimate it beforehand. Every story (or feature--keep reading) gets an estimate before it's scheduled. At the end of each iteration, add up the value estimates for the stories you completed in that iteration. This is your "value velocity." It's like traditional velocity, except it's based on your customers' estimates of value rather than your programmers' estimates of cost.
Thus velocity does not always reflect the true productivity of the team. The key is to measure value delivered and make concrete efforts to improve on delivering higher value than velocity in every iteration.
Transforming Software Delivery: An IBM Rational Case Study
Case Study: IBM's Agile Transformation
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!
A lot of people get confused over velocity. Velocity is for measuring iteration capacity for planning the next iteration, or looking forward in the backlog to see which iteration something is likely to get scheduled. Thats it. Reading any more meaning into velocity it flat out wrong.
I've seen teams use velocity as a measure of value, productivity etc etc a whole lot of other metrics for which velocity is a convenient number to use. It is none of these. If you want to measure productivity, look at cycle time instead.
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.
1 comment
Watch Thread Reply