background preloader

INVEST in Good Stories

INVEST in Good Stories
(French) In XP, we think of requirements of coming in the form of user stories. It would be easy to mistake the story card for the “whole story,” but Ron Jeffries points out that stories in XP have three components: Cards (their physical medium), Conversation (the discussion surrounding them), and Confirmation (tests that verify them). A pidgin language is a simplified language, usually used for trade, that allows people who can’t communicate in their native language to nonetheless work together. But what are characteristics of a good story? I – IndependentN – NegotiableV – ValuableE – EstimableS – SmallT – Testable Independent Stories are easiest to work with if they are independent. We can’t always achieve this; once in a while we may say things like “3 points for the first report, then 1 point for each of the others.” Negotiable… and Negotiated A good story is negotiable. Valuable A story needs to be valuable. This is especially an issue when splitting stories. Estimable Small Testable

Planning poker Planning poker, also called Scrum poker, is a consensus-based technique for estimating, mostly used to estimate effort or relative size of development goals in software development. In planning poker, members of the group make estimates by playing numbered cards face-down to the table, instead of speaking them aloud. The cards are revealed, and the estimates are then discussed. By hiding the figures in this way, the group can avoid the cognitive bias of anchoring, where the first number spoken aloud sets a precedent for subsequent estimates. The method was first defined and named by James Grenning[1] in 2002 and later popularized by Mike Cohn in the book Agile Estimating and Planning,[2] whose company trade marked the term. Process[edit] The reason[edit] The reason to use Planning poker is to avoid the influence of the other participants. Equipment[edit] Planning poker is based on a list of features to be delivered and several copies of a deck of numbered cards. Planning Poker card deck

INVEST (mnemonic) One of the characteristics of Agile Methodologies such as Scrum or XP is the ability to move stories around, taking into account their relative priority - for example - without much effort. If you find user stories that are tightly dependent, a good idea might be to combine them into a single user story. The only thing that is fixed and set in stone in an agile project is an iteration backlog (and, even then, it can be broken). The focus here is to bring actual project-related value to the end-user. If a user story size cannot be estimated, it will never be planned, tasked, and, thus, become part of an iteration. Try to keep your user story sizes to typically a few person-days and at most a few person-weeks. Bear in mind that a story should only be considered DONE, among other things, if it was tested successfully. Jeff Sutherland's Blog

Suggested Topics for Definition of Done Discussion Ken Schwaber and the rest of us advocate paying attention to what “done” means for a Product Backlog Item (PBIs, or “stories”). For a lot of programmers (like me), “done” often means “It works on my workstation!” The Scrum Master is charged with advocating a “done” that includes everything else needed to build a potentially-shippable product increment. So we need a cross-functional team. To avoid nasty surprises at the Sprint Review Meeting, I’d suggest initially attaching a definition of done to each PBI during the estimation process. Don’t be surprised if the estimate more than doubles — better to find out now than have the illusion of progress and an unpredictable ship date. If you’re using cards, write the definition of done on the cards. Scrum, a generalized framework rather than a defined process, doesn’t prescribe a particular definition of done. However, reading this may save you a couple iterations because the same kinds of things come up a lot.

User story History[edit] User stories originated with Extreme Programming (XP), whose first written description in 1998 only claimed that customers defined project scope "with user stories, which are like use cases". Rather than offered as a distinct practice, they were described as one of the "game pieces" used in the planning game. However, most of the further literature thrust around all the ways arguing that user stories are "unlike" use cases, in trying to answer in a more practical manner "how requirements are handled" in XP and more generally Agile projects. In 2001, Ron Jeffries proposed the well-known Three C's formula, i.e. A Card (or often a Post-it note) is a physical token giving tangible and durable form to what would otherwise only be an abstraction; The Confirmation, the more formal the better, ensures that the objectives the conversation revolved around have been reached finally. Creating user stories[edit] Format[edit] "As a <role>, I want <goal/desire> so that <benefit>" Run tests Or

An E-Commerce Study: Guidelines For Better Navigation And Categories SAP HANA SPS 11: New Developer Features In this blog, we will collect the various smaller blogs that detail all the new developer related features in SAP HANA SPS 11. This will be a "living" document which is updated as new blogs are released. In this blog series we are going to describe a large number of new features in both the underlying HANA infrastructure and in particular in the custom development aspects of HANA native development. We haven't removed or disabled any of the current architecture. Therefore customers can upgrade with confidence to SPS 11 without fear that the new innovations will somehow disrupt their existing applications. One final note: in addition to this blog series, we also have recordings of the lectures on this topic from SAP TechEd 2015. In this blog we will look into detail at the addition of the SAP HANA extended application services, advanced model (or XS Advanced/XSA for short). SAP HANA SPS 11: New Developer Features; XS Advanced SAP HANA SPS 11: New Developer Features; Node.js

Splitting User Stories Good user stories follow Bill Wake’s INVEST model. They’re Independent, Negotiable, Valuable, Estimable, Small, and Testable. The small requirement drives us to split large stories. But the stories after splitting still have to follow the model. Many new agile teams attempt to split stories by architectural layer: one story for the UI, another for the database, etc. This may satisfy small, but it fails at independent and valuable. Over my years with agile, I’ve discovered nine patterns for splitting user stories into good, smaller stories. (Note: As with any pattern language, I didn’t invent these patterns, I’ve just observed and compiled them. How Small? How small should stories be? When you’re in a planning meeting and you hit your trigger estimate, pull out the cheat sheet at the end of this article and try a few of the patterns until you find a good split. Which Pattern to Use You’ll often find that you can split a story using several of the patterns. Pattern #1: Workflow Steps Conclusion

Using Paper Prototypes to Manage Risk There are no rewards in life for being the first one with the wrong answer. Imagine spending years building a product, only to learn that it missed the needs of its intended market. History is littered with the carcasses of failed products and the companies that built them - product development is indeed a risky business. We're a consulting firm specializing in user interface design and usability issues, so our initial contact with new clients is usually when they realize their product is in trouble. Here's a typical scenario: We got a call from the marketing manager for a commercial software product. The company had spent considerable time and money to produce their first release, just to learn that they hadn't quite gotten it right. That's exactly what we helped them do. Day 1 We met with the entire development team. The first thing we did with the team was to agree on a profile of their most important type of user and the most important things that those users did with the product.

Scrum Methodology & Agile Scrum Methodologies Scrum Scrum is an iterative and incremental agile software development framework for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called "requirements churn"), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. Later, Schwaber with others founded the Scrum Alliance and created the Certified Scrum Master programs and its derivatives. Each sprint is started by a planning meeting.

2 Days, 40 People, and a Bus: TLC + LSM at SFAgile 2012 What powerful questions does Scrum help you answer? The video on powerful questions made me think about the deeper purpose of the various Scrum activities. Can I formulate Scrum as a series of Powerful Questions to be general enough, that they might be useful outside of software development? Here is the image I came up with and below are the questions I think each of the Scrum Activities and artefacts strives to help you answer. Sprint The Sprint is a container to limit ourselves to setting reasonable medium-term goals. Vision How will our efforts make the world a better place? Product Backlog What characteristics should our product have? Backlog Refinement What could we do to get us closer to our vision? Sprint Planning Part 1 - What is the best possible step forward, given what we know today? Daily Scrum What are our goals for the day? Sprint Review What have we accomplished or learned? Retrospective How can we work more effectively? Definition of Done How do we know a step was successful?

Related: