User Stories

Defining The Qualified User Story

User Story

User Story

Regardless of the client I work with, the teams seem to initially struggle with understanding how big (or small) a User Story is, relative to Epics, Features, and Tasks.  It doesn't help when they first ask how big user stories are and my first response is "it depends". It's not uncommon to find team members asking if they can call smaller stories a minor or sub-story or a larger story a major story.  But then they get distracted by colors of index cards or some ancillary attribute.

The Distinction

Those who identify what the business wants (you may call him or her a Product Owner) take a stab at breaking down stuff to manageable chunks.  You can call those chucks an A/B-level requirement, epic, theme, feature, or spike. It doesn't matter what you call it.  But when the team estimates that stuff, it is still sometimes (more often than not) too big to fit into a sprint or iteration or just isn't ready to be worked.

We need to label [this] to set it appart as work that will be committed to next.  Either it will be scheduled in an upcoming sprint or it will be pulled to the next step on a Kanban.  To be clear, I'm not saying the team should start working on [this], merely because they think it is small enough to be completed within a predetermined cycle.  Until your team has sufficiently defined and mapped requirements, developed acceptance criteria, and removed all known blocking dependencies, it is still not a Qualified User Story.

Though I still use the term User Story as that placeholder for conversations, I believe the Qualified User Story more appropriately identifies a placeholder for conversations that meets a definition of ready and allows the team to commit to complete something within an estimated period of time.

Image Source: Pictofigo HT: Originally posted at LeadingAgile

ALN Arin Sime and User Stories

A quick thank you to Arin Sime and the local Agile Leadership Network chapter for an excellent workshop.  Tonight, Arin Sime of AgilityFeat facilitated a workshop on User Story splitting.  What I felt was compelling was not the discussion about the best size of a user story, what INVEST was, or even the best way to write a user story.  What I liked the most about the workshop was Arin's purposeful misdirection early on, having us write bad user stories.  That's right. Arin gave us instructions and had us write bad user stories by way of anti-patterns.  In software engineering, an anti-pattern is a pattern that may be commonly used but is ineffective and/or counterproductive in practice.  Sometimes it's hard to write really good user stories.  Knowing if it's a good story usually falls under  IKIWISI (I'll know it when I see it), though people can commonly write really bad user stories and think they are great.  I'm not going to go into detail about what makes a "good" user story.  I'm about to turn into a pumpkin and I wanted to get this post out within hours of the event. If you get a chance, look up Arin and look up Agile Leadership Network.  Either way, you're going to walk away with something of value.

Image Source: My really sad Droid X

Write the same but different words

It's all in how you say it. Or, in the case of this video, how you write it. In less than 2 minutes, this video will send a powerful message. It's about writing from perspective. After watching it, I immediately thought of how a user story can communicate a message differently, compared to a standard "shall statement" requirement.

Here are as few formats for you to compare. Which would you use?

As a <role>, I want <goal>

As a <role>, I want <goal> so <reason>

Given <dependency/constraint>, as a <role>, I want <goal> so <reason>

Do you have a preferred user story format that you use?  Please include it as a comment and have a beautiful day.

Teaching Agile to a 5-Yr-Old

If you ever thought it was too early to teach your children Agile terminology or good management/leadership skills, you can stop now.  I wanted to teach our 5-year-old son a few new concepts.  If you can teach a 5-year-old, you should be able to teach a 45-year-old....right?  Well, let's not get ahead of ourselves.  I actually think kids grasp these concepts better than adults.  They don't have years of baggage to contend with. Now, let me preface the bulk of my post by saying, that at age 5, I could not read at all!  I think our son's teacher has done an amazing job of getting the kids in her classroom reading at the level they do.

So, what is our goal?  Our son's Kindergarten teacher sent home a "by the minute reading log".  She identified how many minutes of reading she wanted each student to read in a month.  For February, the target was 50 minutes.  At first, our son acted very overwhelmed.

Oh Daddy, 50 minutes is SO much!

I assured him, he had a whole month to get there.  Let's call this month a timebox.  In the timebox, the teacher wants you to finish as many stories as you can in the time given.  That's it!  Now, some stories are going to be harder than others.  But, let's focus on doing a little bit at a time and getting each story done.

To really understand the complexity of these stories, they were written for a 5-year-old.  They only take about 5 minutes to read.  So, each story will equal 5 minutes.  To make it fun, let's use story points instead of minutes!

story_velocity2

story_velocity2

The last concept I wanted him to grasp was velocity.  Velocity is the number of story points we can get in the timebox.  Just know, you don't get credit if you don't finish a story!

feb_reading_log

feb_reading_log

If you look at the "reading log" image, you'll see our actual total velocity was 120.  The stakeholder in all of this, his Kindergarten teacher, would be happy if our velocity was a mere 50.

What was really exciting was telling our son, by the end of week 2, that he had met his goal.  If the stakeholder is satisfied with the 50 point velocity, I think we will start having a FedEx Day once a week.  Just like my teams, I don't want to burn him out.  We need to find a balance and a stable velocity everyone can be happy with.

Imagine if this was you and your team.

Using Stories on my Personal Kanban

User StoriesA colleague on Twitter asked how do I break down my stories, acceptance criteria etc?  As a reference point, "stories" refer to my use of User Stories on a task board or Kanban.  It's a method of representing requirements or scope.  In upcoming posts, I'll also write about acceptance criteria, size, blocks... Let's say you have some work that needs to be completed or delivered (scope).  Rather than the old fashioned shall statements to define the scope or requirement (system shall do this; system shall not do that), we're going to write a little self-contained story on an index card, post-it note, or something similar.  When we're done, we're going to add the story card to our kanban board.  Our user stories are written from the perspective of the user.  In the case of the personal kanban, that's me.  What you put in your user story may vary. But, for me, the stories have to be self-contained and they have to pass my "why" test.  Though I don't write it in the user story or on the card, I map work I do back to higher level goals.  If the work can't be mapped back to previously defined goals, I'm just wasting time.  Let's try not to do that.

When writing a user story, this is the format I follow

As a <type of user>, I want <goal> so <reason>.

Here it is in action

As a blogger, I want to write a blog post about user stories, so people will understand how I use them.

Now I ask myself "why". What is my predefined goal that it maps back to?

Spend more time writing, speaking, and mentoring and less time directly managing or leading projects.

So, there you have it!  Because I use both an electronic kanban and a physical one, I keep all of the details in the electronic version and use the physical one a visual reference.  It is a constant reminder to myself and others of what I am committed to do, work in progress, work that is blocked, and work recently completed.

Have any question?  Feel free to leave a comment.

See Dick See Dick the PM Run

dick_jane_sally

dick_jane_sally

See Dick.See Dick run. Run Dick run.

See Jane. See Jane run. Run Jane run.

You get the idea.

When I was in the first grade, those were the first sentences I remember reading.  I remember being frustrated by this because this isn't really how we talk.  Well, actually, it isn't how I talk.

I suffer from a self-described affliction called over-descriptivitis.  I can't help but elaborate on any and every idea I'm trying to articulate.  I never thought it was a problem.  I merely communicate the greatest level of granular detail to my recipient and allowed them to filter out the extraneous information.  If my wife asks me what I did at work today, I will tell her everything in chronological order.  TMI?

My wife is very forgiving when it comes to me offering more than she asks for.  Sometimes she just puts her hand up and asks, "can I have the abridged version?"  My over-descriptivitis was even addressed in our wedding vows.

I promise I will tell you the time, not how the clock was built.

So,what's the point I'm trying to get across? It's about articulating requirements.  It doesn't matter if you're using shall statements or user stories.  You need to go into enough detail that the person reading it understands your need(s).  After you decide on your format, try to be consistent.

Formal shall statement format: The [activity] shall [desired outcome]

Standard user story format: As a [perspective], I want to [activity], so I can [desired outcome]

Though it may be my over-descriptivitis acting up, I prefer using user stories.  I like the fact that it paints a clearer picture.

How about you?  Do you prefer formal shall statements or user stories? Why?

Help Me Understand What I am Seeing Here

Responsibility MatrixThings seemed to get a little heated in the meeting yesterday.  Upon reviewing the vendor-supplied PowerPoint deck, we noticed graphs illustrating the quantity of issues found and when the vendor planned to fix them.  So, we flipped back a few slides and noticed a table detailing the quantity of requirements that passed or failed, during the last build.  What we didn't get was something that illustrated the relationship between the two.  Since it wasn't included in the packet, we wanted an explanation. Never ask a question in an accusatory manner.  Don't be condescending.  Make sure the other party hears what you say and understands.  I started with something like this

So help me understand what I'm seeing here. I see....  ...Is that what you see?

I'm looking for the relationship between the issues found and the work you were authorized to complete.  Can you help me with this?

What was missing here was a Requirements Traceability Matrix. It would have answered everything. During this build, only work pertaining to agreed upon requirements should have been done. Only work pertaining to agreed upon requirements should have been tested. Therefore, we should have known immediately which requirements had passed and which failed.  That didn't happen.

It doesn't matter if you're using user stories or requirements.  There are documented expectations that need to be met.  User acceptance criteria should be known.

Any questions?

Understanding Agile Scrum and common terms

I've been in a few meetings this last week where people were mentioning Scrum terms but didn't know what they were. It's not their fault. The person introducing the terms into the project vocabulary should have provided an explanation before referencing them.

For those of you new to Agile Scrum, here are a few basics:

What is Agile Scrum? There are many specific agile development methods. Most promote development iterations, teamwork, collaboration, and process adaptability throughout the lifecycle of the project.  Agile methods choose to do things in small increments with minimal planning, rather than long-term detailed planning.  There is a heavy emphasis on face-to-face communication over written communication.

Agile Scrum is not ideal for every project.  If the project has high criticality, is using junior developers, has clearly established requirements that do not change often, employs a large number of developers, you should think twice about using it as your method of choice.

I've seen it work very well with small (5-9 member) teams, where all the stakeholder knew they wanted "something" within a short period of time.  They did not know specifically what it was nor how to get from start to finish.  We used a lot of wireframes and prototypes to get us in the ballpark, until we could lock down clear functional and design requirements.

I think it's important for people to understand key terms in Agile Scrum as they relate to other project management methodologies.

Roles

Product Owner The person responsible for maintaining the Product Backlog by representing the interests of the stakeholders.  This owner could be a project manager, director...  Whatever their title, they must have the authority to make decisions on behalf of the project.

ScrumMaster The person responsible for the Scrum process, making sure it is used correctly and maximizes its benefits.  This is NOT a project manager.  This person is a facilitator.  They are merely there as a communications bridge and to offer motivation or remove impediments.

Team A cross-functional group of people responsible for managing itself to develop the product.  This is a small team (5-9) consisting of at least one person from each area (BA, QA, Risk, CM, Software Engineering...)  This team traditionally sits in the same room or area.

Scrum Team Product Owner, ScrumMaster and Team.  Everyone directly involved in the project, with the exception of users, stakeholders, and managers.

Artifacts

Sprint burn down chart Daily progress for a Sprint over the sprint's duration.  This chart can replace a Gantt chart in illustration of progress.

Product backlog A prioritized list of high level deliverables assigned to teams.  This list is similar to milestone deliveries you'd find in a Work Breakdown Structure.  These deliverables will still need to be decomposed (in the sprint backlog).

Sprint backlog A list of tasks to be completed during the sprint and assigned to individuals.  These are the actual decomposed items from the product backlog.  This list must be agreed to by the entire team prior to the sprint actually beginning.  If there is a change in the scope of the sprint backlog during a sprint, the sprint must be immediately stopped and scope redefined.

Other

Sprint A time period (typically between 2 weeks and 1 month) in which development occurs on a set of backlog items that the Team has committed to.  Sprint time periods are established to provide enough time to deliver something, get feedback, and begin another iteration.

Product An output requested by the customer.  It is a completed document, process, web page, database...  Regardless of what it is, the customer believes that it has value.

Other terms to be listed in a later post: Sashimi, timebox, daily scrum, chickens, pigs, retrospective, user stories...