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 Mark Levison on Mar 05, 2010
Michael de la Maza asks the question what exactly is a Story Point? He went looking for an answer and found many: “Story points represent nebulous units of time.” or “Story point is a random measure used by Scrum teams. This is used to measure the effort required to implement a story.” or “...a story point estimate is an amalgamation of effort involved in developing the feature, the complexity of developing it, the risk inherent in it, and so on.” [Mike Cohn, Agile Estimation and Planning].
Michael goes on to document how they’re used: “Truth be told velocity really is a productivity
measure...” vs. “Using story points or ideal days to measure productivity is a bad idea because it will lead the team to gradually inflate the meaning of a point...”
With all this confusion Michael wonders what are story points? How do you introduce to people new to Agile and Scrum.
Dan Rawsthorne, replies:
Ron Jeffries, replies: “Story points are a relative measure of the time needed to implement a story, borrowed from XP (as is the notion of story). They are intended to be a way of estimating difficulty without committing to a specific time duration, so that variances in team size or time on task do not affect them” and “Yes, they measure size and complexity. The terms "size" and "complexity" are used to mean "how hard is this in terms of how long it'll take us to do it".”. Finally Ron notes that he (and other experts) no longer see story points as necessary.
Previously on InfoQ: Story Points vs Hours
Five Key Practices to Agile ALM
18 agile and lean practices for effective software development governance
Case Study: IBM's Agile Transformation
Maximize your business-responsiveness with Mingle. Provide your global development team a shared space that adapts to the way they work.
... but for some reason, people always try to turn anything represented by a number into metrics.
Wasn't it just an estimation of how many story points a team can accomplish in an iteration? Not to measure productivity, but to help the product owner to know how many stories she can pick for the iteration?
1. Teams that WANT it to be a productivity metric to brag about it just don't get it.
2. If the team have to try so hard to make 'Story Points [to] remain constant over the life of a project', it will lose its subjective, experience-based nature, and its reason to exist. <sarcasm>If you want a 'stable' metric, just use Function Points (which is full of rules about how to measure things).</sarcasm>
3. Again, to get this consistency, one must dictate strict rules to 'level' teams' estimations. <sarcasm>Just use Function Points instead.</sarcasm>
4. Well... yes.
People, stop this metrics fetish, please!
Why are these contradictory?
“Truth be told velocity really is a productivity
measure...” vs. “Using story points or ideal days to measure productivity is a bad idea because it will lead the team to gradually inflate the meaning of a point...”
These can both be true. Story points measure work. Velocity is how much work you get done in a certain amount of time. The two quotes aren't opposing.
Also, in reply to #2, ideally story points would remain constant for the life of the project but in practice this is difficult because we all have different perceptions. Consensus based estimation techniques allow the team to come to a mutual understanding and allow the notion of a point to stabilize over time. One reason is that when your estimate is an outlier you're often asked to justify your position. This helps others to see it from your perspective and you from theirs (via rebuttals).
It is suggested that one or two standard stories are to be used as a reference to fix the "size" of a story point.
This is questionable. As the story becomes familiar and solutions are learned, the story should use less points. Just like doing the same job a second time could be done in about half the time, thanks to learning and experience.
Also, two teams with different skills profiles would also judge the standard stories differently. A team with front-end experts can deliver front-end related stories faster that a team with back-end experts, and the other way around. It would be difficult to tell which team is most efficient.
Beyond that, I believe that estimation is a futile exercise except when needed to bill a customer. If work is done by priority, and as soon as possible, then estimation only gets in the way of getting the work done. It boils down to trust that the team is doing what it should be doing.
If the first story is the reference story, and the second is uses the first as a reference, then the third story may use either story as a reference, due to associative relationships. This remains true all the way, doesn't it?
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.
5 comments
Watch Thread Reply