Not Everything Needs to Be a User Story: Using FDD Features

Not Everything Needs to Be a User Story: Using FDD Features

User stories are great. When you’ve got users, that is.

Sometimes, though, the users of a system or product are so far removed that a team struggles to put users into their stories. A sign that this is happening is when teams write stories that begin with “As a developer ...” or “as a product owner ...”

There are usually better approaches than writing stories like those. And a first step in exploring alternative approaches is realizing that not everything on your product backlog has to be a user story.

A recent look at a product backlog on a product for which I am the product owner revealed that approximately 85 percent of the items (54 out of 64) were good user stories, approximately 10 percent (6 of 64) were more technical items, and about 5 percent (4 of 64) were miscellaneous, poorly worded junk.

Since I’m sure you’ll want to know about the junk, let’s dispense with those first. These are items that I or someone else on the project added while in a hurry. Some will later be rewritten as good stories but were initially just tossed into the backlog so they wouldn’t be forgotten.

Others are things like “upgrade Linux server” that could be rewritten as a story. But I find little benefit to doing that. Also, items like that tend to be well understood and are not on the product backlog for long.

My point here: No one should be reading a product backlog and grading it. A little bit of junk on a product backlog is totally fine, especially when it won’t be there long.

What I really want to focus on are the approximate 10 percent of the items that were more technical and were not written as user stories using the canonical “As a <type of user>, I want <some goal> so that <some reason>” syntax.

The product in question here is a user-facing product, but not all parts of it are user facing. I find that to be fairly common. Most products have users somewhere in sight, but there are often back-end aspects of the product that users are nowhere near.

Yes, teams can often write user stories to reflect how users benefit from these system capabilities. For example: As a user, I want all data backed up so that everything can be fully recovered.

I’ve written plenty of stories like that, and sometimes, those are great. Other times, though, the functionality being described starts to get a little too distant from real users and writing user stories when real users are nowhere to be found feels artificial or even silly.

In situations like these, I’m a fan of the syntax from the Feature-Driven Development agile process. Feature-Driven Development (FDD) remains a minor player on the overall agile stage despite having been around since 1997. Originally invented by Jeff De Luca, FDD has much to recommend in an era of interest in scaling agile.

Wikipedia has a good description of FDD so I’m only going to describe one small part of it: features. Features are analogous to product backlog items for a Scrum project. And just like many teams find it useful to use the “As a <user>, I want <goal> so that <benefit>” syntax for user stories as product backlog items, FDD has its own recommended syntax for features.

An FDD feature is written in this format:

<action> the <result> <by|for|of|to> <object>

As examples, consider these:

  • Estimate the closing price of stock
  • Generate a unique identifier for a transaction
  • Change the text displayed on a kiosk
  • Merge the data for duplicate transactions

In each case, the feature description starts with the action (a verb) and ends with what would be an object within the system. (FDD is particularly well suited for object-oriented development.)

This can be a particularly good syntax when developing something like an Application Programming Interface (API). But I find it works equally well on other types of back-end functionality. As I said at the beginning, about 10 percent of my own recent product backlog I examined was in this syntax.

If you find yourself writing product backlog items for parts of a system and are stretching to think of how to write decent user stories for those items, you might want to consider using FDD’s features. I think you’ll find them as helpful as I do.

This article was originally published in the Mountain Goat Software monthly newsletter. To get these articles delivered to your inbox, sign up here.

Tim Hanstine PMP, CSM, SSM

After a brief health and wellness break in 2023. Anxious to re-engage as the PM realm evolves and leverages AI for greater efficiency and accountability.

9 年

Excellent, concise packet of info Mike! I'm between contracts and look forward to taking the FDD concept forward with my next engagement. Too often the team feels obligated to tie the story to "as a ....". Offering the FDD option will encourage/enhance product and process development by the Team, PO, and Sponsor. Currently they hope the FDD improvement will just happen to be a by-product of the aggregate backlog.

Philip Bromley

Experienced Full Stack Engineer/Tech Lead in multi-discipline teams

9 年

Brilliant - this is perfect for a lot of scenarios I have encountered on the past few projects

Thiago C.

Developer, Agile Practitioner

9 年

Bryan, If you just take the card and start coding without any conversation and confirmation then of course you will have misunderstandings. In my opinion, it doesn't matter how you write the backlog item as long as we have a conversation to understand and detail it.

Durgesh K.

Product Management | Solution Engineering Manager | Director Data Platform Engineering

9 年

Mike so is there a way to track a healthy backlog in terms of PI. If so what good practices can make a healthy PB. Why i am asking is coz some of teams they struggle with poor backlog and they dont get insight of stories before hand so that they can read and get ready for PI grooming. Also please do share any metrics that can showcase a healthy backlog at epic, theme, features, stories level. Hope you got my questio.

回复

要查看或添加评论,请登录

Mike Cohn的更多文章

  • You Don't Need a Complicated Story Hierarchy

    You Don't Need a Complicated Story Hierarchy

    Consultants and tool vendors seem to have a penchant for making things complicated. It seems the more complicated we…

    7 条评论
  • Agile Teams Need to Balance Specialists and Generalists

    Agile Teams Need to Balance Specialists and Generalists

    There's a mistaken belief that to be agile, every team member must become a generalist. What I find surprising about…

    28 条评论
  • Product Owners: Quick Action Isn’t Always the Right Course

    Product Owners: Quick Action Isn’t Always the Right Course

    I’ve been doing a back-to-basics tip series, exclusively for my subscribers. This past month’s weekly tip focus has…

    14 条评论
  • With Agile, It’s Not What You Do. It’s What You Do Next.

    With Agile, It’s Not What You Do. It’s What You Do Next.

    I’ve been writing a series of tips about product owners, exclusively for my subscribers. It got me thinking about the…

    6 条评论
  • What Happens When During a Sprint

    What Happens When During a Sprint

    Successful Scrum implementations involve a handful of important sprint events (also called sprint meetings or sprint…

    2 条评论
  • What Are Agile Story Points?

    What Are Agile Story Points?

    Story points are a unit of measure for expressing an estimate of the overall effort that will be required to fully…

    14 条评论
  • Don’t Equate Story Points to Hours

    Don’t Equate Story Points to Hours

    I’m a huge proponent of estimating in story points. (You can get a full overview of how to use story points from…

    49 条评论
  • Epics, Features and User Stories

    Epics, Features and User Stories

    I’ve been getting more and more emails lately from people asking, “What is an epic, a feature and a user story in…

    6 条评论
  • Nine Agile Halloween Costumes for Scrum Teams

    Nine Agile Halloween Costumes for Scrum Teams

    It’s time to start thinking about an appropriate costume you can wear to the many agile-themed Halloween parties you’ll…

    4 条评论
  • 5 Ways to Split User Stories: The SPIDR Method

    5 Ways to Split User Stories: The SPIDR Method

    Splitting user stories. It’s something I get asked about every day.

    45 条评论

社区洞察

其他会员也浏览了