Showing posts with label User Stories. Show all posts
Showing posts with label User Stories. Show all posts

Wednesday, May 22, 2019

Big user stories


Sometimes as a product owner you run into the problem of having to deliver a large piece of a project.  As mentioned on a previous post you want to avoid going to technical and constraining a dev team to follow what you’ve written when instead a story is the beginning of a conversation and isn’t a commitment to exactly how something should be done.  With a user story though you don’t want it to be too big and so you need to break it down into manageable parts. 

If for example you need your team to create a new micro-service to process requests for information you don’t want to write a story that doesn’t create any value once completed.  An example of this would be writing a story that addresses the need to create a database for a user to send, receive, and update information from.  Instead you’d write a story that starts perhaps with the first part of the process, i.e. send data.  With this broken out into its own story it should be discussed with the dev team that while we know that doesn’t encompass creating a database, receiving info, or updating info they will inherently know or be explicitly told that a database needs to be created in order to complete this story.  It should be noted that the very first story will also be front loaded with initial set up and configuration of other things and so it may be larger than subsequent stories.  That is ok though because we want a story to be able to stand on its own in terms of value being delivered even if it is only one portion of data being worked on, in this case sending information. 

What to do and not do when writing a user story


When writing your story don’t include the “How” it should be done.  That is up to the dev team to figure out the best way to do that and then create tasks/sub tasks to complete those things.  Dipping your toe in the “How” waters can lead to constraining a story to follow what you have written.  You also run the risk of getting too involved with the details of how the story and value is to be delivered and that can lead you to spending time on things that don’t need your attention, which then detracts from continuing to gather requirements and prioritize which valuable things need to be done first.

When writing acceptance criteria, it is important to write them so that you tell the developer and QA resources what you want them to test against.  All acceptance criteria should be testable.  A bad example would be, “X technology passes a flag to X other technology so that a customer doesn’t have tax withheld from their order”.  Instead a better example would be, “Demonstrate that a customer can click a button to then have taxes withheld from their order.”  The first example is too specific and limiting.  The second lets the dev team decide how to make something happen but is easy to demonstrate that it works or not, i.e. if it was done right this would be the result.

5 Whys

As I dive deeper into my role as a product owner, I am constantly looking for ways to improve to make things easier for my stake holders, coworkers, and dev team.  One of the things I’ve picked up when writing a user story is to utilize what is called the “5 Whys”. 

To help clarify a description of a story and the value to be delivered, which is then subsequently distilled down to acceptance criteria that a dev codes to and a QA resource tests against, asking “Why” leads the writer of the story to really drill down to what the value is that needs to be delivered.  It helps clarify unknown requirements at times and makes a story concise and easy to understand.

Monday, November 5, 2018

Product Roadmap

A product roadmap is a strategic document that helps you communicate your broader product vision and goals to your team, other stakeholders, and other users.  It can help open up a dialogue about the direction the business is being taken in and gather info from customers about what they want and need without giving away top secret details should you choose to publish your roadmap to the world and competitors.

Your product roadmap will not be an exact timeline of development.  It is quite hard to predict releases and launch dates in advance.  Rather than putting down specific dates putting down broader dates in terms of a range, i.e. Q4 of 2019 will see the release of X when you’re listing elements within the product roadmap.  Also labeling or color coding similar product roadmap items will help to paint a broader pictures of the type of things being worked on now, soon, and in the future. 

What follows is an example of a product roadmap I like from ProdPad that illustrates many of the points I made above.




Product Backlog


In a nutshell a product backlog is a prioritized feature list that contains short descriptions of all the functionality desired in that particular feature.  While the PO is in charge of the product backlog not all of the ideas should be flowing from you.  As the PO you’ll be getting ideas from everywhere and it is your responsibility to triage, organize, and prioritize them.  Ideas may come from user feedback, making feature lists around what competitors are doing, or you’ll get feature requests from your own internal teams. 

Users may give ideas to you, but they may not be your customers.  Users may submit ideas via Zendesk tickets, web submission forms, forums like Reddit and others, internal teams/employees or social media.  These submissions may be complaints about the product or processes within it or what they wish they had.  You could build things with word clouds.  

Customers are different from users.  Say your product lies in the educational games arena.  While children are the users the customers end up being the parents buying the product.  

Metrics could also be a way to gather ideas to be added to your product backlog.  This can be any kind of quantitative data that you can get in or from your product.  

It may be important to also list any bugs or any technical work within the backlog.  Prioritizing the list will require consistent communication and interaction with relevant stakeholders so that you are bringing forth the most relevant and valuable features to your product.  

When maintaining a backlog there are many tools you can use, but for those just starting out an easy tool to use is google spreadsheets.  The first column you’d want to add is Date Added.  This will show you when something was added and allow easy sorting for that.  The next column would be Feature Idea Name.  Then after that you’d have the description, i.e. what is overview and desired functionality of this suggested feature. 

If you’re backlog contains a bug there are a few things you’ll want to include when adding it to the backlog.  One you only want one bug report in a story and be sure it has a clear title and proper grammar in the report.  You need simple and repeatable reproduction steps.  Include expected results and observed results.  Screenshots or other pictures of bug in action when user interfaces are involved.  You’ll also want to include the build/version/release where bug was found as not all customers are always on the same release.  

Prioritization criteria will vary by team and company, but it is on the product owner to come to a consensus on how this should look.  Three pretty standard criteria that can be used are impact, urgency, and engineering cost. 

Impact or importance is a way to define in a subjective manner whether or not this particular feature idea would move an important metric.  A high numerical score here using a scale of 1 - 5, with 5 being equal to high importance vs a 1, which would indicate low importance. 

Urgency would be asking the question of how important it is to get this feature out now.  1 being not urgent and 5 being very urgent.  So even though something may be impactful doesn’t necessarily translate into something being urgent.  Maybe users would be saying that something is really affecting their workflow and cutting down on their efficiency and is something that needs to get worked on right away even though this feature might not have the same impact as something else score wise.  

Engineering cost is typically where you’d want to involve someone else, i.e. an engineering manager or a high level developer you’re very close with if you don’t have the technical expertise yourself.  Scoring these stories on a scale of 1 - 5 would have 1 representing something as slow to build (1 month) with 5 being quick to build (1 day). 
Other is another column you could have in your backlog.  There are other potential prioritization criteria to consider outside of the ones already mentioned.  

You’ll want to have a total and status set of columns in your backlog as well.  Total would be a sum of any of the prioritization criteria you gave values to earlier.  Status would detail where the feature is at the moment.  It would include things like whether it needs more definition or to be reviewed even further or to be slotted into a development cycle or sprint.  The target launch date would also be listed in your status column. 

Holding periodic check-ins with relevant stakeholders to prioritize your backlog will ensure you are releasing the most valuable things for them and the company.  




Thursday, October 25, 2018

Wireframing


Wireframing is a cost and time efficient way to showcase your product or features and what it will look like to users, development, and designers so they can get a feel for what to expect.  It is a good idea to start by using the tried and true pen and paper.  This helps to avoid getting stuck on the details when you’re first starting out, i.e. not freaking out about aligning the text, all the boxes are the same width, whether it is responsive on mobile devices, etc.  It also helps to flush out creative ideas for the product. 

When you’re starting create a list of information you want to get across to your users.  What kind of screens will be involved and what type of information will be on those screens that you want the user to know about or act upon.  You’ll want to do this for every single page on your app, i.e. home page, account creation/login page, dashboard page, etc.

Doing this will lead you to an information architecture.  This will help you think about how your end user is going to navigate through your product.  To that end folding a piece of paper twice so that when unfolded you have four boxes you can then draw out quickly four different versions of each screen you may have for your product.  Don’t worry about being perfect with these because the team and designers are likely going to change and or throw out a lot of what you came up with anyways in order to increase aesthetics and speed.  When doing these though aim to create something where you don’t have to make your users think.  Less = More. 

Wireframing tools that you can use would be balsamic or azure.  Interactive prototypes would be like envision app.  After you’ve completed your wireframing and uploaded it into an interactive prototype program or application the next step would be to then sit down with a user to see if your wireframe turned prototype is actually user friendly.  So get to it and see what your users think!


What is a Spec?


A spec is a document that is written to allow people to understand a product’s purpose, functionality, and or features.  It should be comprehensive and understandable so that anyone without any prior context could be able to properly understand the product or feature that is outlined.  A detailed spec won’t solve every possible problem, but it should be written so that you can think through as many possible problems as you can and minimize any surprise situations that could come up.  Once the team starts work you may find that some or many of the things outlined in the spec aren’t able to be implemented and so you need to be flexible for what it will actually turn out to be.

The following is a spec I use in my work as a Product Owner.

Spec Template

Product / Feature Name: What is this product / feature called?

Painting Project Progress

Author Name(s): Who wrote this spec?  

Brock Norton

Team Members: Who are the stakeholders involved in this product / feature? This provides context for other teams reading your spec so they know who they might want to reach out to for further details.

 Brock Norton, Renee Norton, Tammy Lasman

Summary / Background:  What is the context of this product / feature? For example, if this is a user-facing product/feature, what is the current situation for your users and at a high level, what will this product / feature functionally do?

This will be a web application that production managers, crew members, and customers can log in to to clock in and out on a specific project,check the progress of a project being completed so that scheduling from the PM and customer standpoint can occur without having to call or text people to see where things are at with the project.

Terminology:  List any terms that you plan to newly introduce with this product / feature. Explain in concise language what these terms mean in relation to this product / feature. If you can avoid it, try not to introduce too many new terms that might confuse other team members.

N/A

Goals: What are the goals of launching this product / feature?

Track project progress for scheduling and customer service purposes.

Success Metrics: How will you be measuring success of this product / feature? You may want to list quantitative / qualitative criteria that you will be evaluating. Every product / feature you release should have some sort of measurable success metric!

Eliminate text or call check ins by painters to production manager and subsequently production manager to customer.  Will be able to see if a project came under/over budget timewise with the customer facing portion and budget wise with the production manager as well as with time budget.

Target Audience: Who are the target users for this product / feature? Provide some context as to what they are currently doing or any existing workflows / behaviors. If you have any existing research on user personas, make sure to include that context here. If you need to make any assumptions about your target audience, make note of that here.

Production managers, crew members, customers.  When a painter is assigned a project they clock in under that project, but it doesn’t give them, the production manager, or the customer, any indication of how far along in the project the crew member is.  If they want to find that out the production manager needs to tally up the hours, compare it to the project’s budget, then update the customer accordingly.  Additionally this updating of roadblocks or impediments may be hard to communicate due to phone tag issues between the crew member, PM, and customer whereas there would be a place within the app to upload a picture or string of text to give a status update on the project or any issues within the project.

Requirements:

#
User Need
User Stories
Launch Phase
1
User needs are one of, if
not the most important
portion of any product /
Feature.

Prior to even worrying
about your user stories or
solutions, you should
have clearly defined user
needs (remember as a
PM, you’re a champion for
your users and you should
be completely in-tune
with the needs that your
team is building for!)

A user need can follow a
template like:

needs a way
to
User stories are short
descriptions of a feature told
from the perspective of the
user who desires the new
Capability.

A user story generally follows a template like:

As a , I want
so that

Sometimes, a user story may
cover a large amount of
functionality. In these cases,
these stories may be referred
to as ‘epics’ and may need to
broken out into individual,
smaller user stories.
While it’s important to be thinking of every possible user need /story from the get-go, the reality of development is that
without unlimited
resources, you’ll
generally be time-boxed
and therefore will need to prioritize which user stories are important for an initial MVP launch vs. a V2 launch.

This column section will specify which phase this story should launch in.
2
Crew member/production manager/customer needs a way
to quickly and easily see how long till a project is completed for scheduling purposes.
As a crew member, I want to see what my hours for the day did to impact the overall progress on the project so that I can see if I’m over or under budget to earn bonuses for coming under budget on a project.
MVP
3
needs a way
to
As a production manager, I want to see end of day progress on a project and any comments on issues for the day so that I can resolve issues and update the customer if needed without having to play phone tag via call or text with the crew member to gather said information.
MVP
4
As a customer, I want to log in to the app to see how far along the project is to being completed so that I can plan for my next project, vacation, family visiting, etc.
MVP

User Story Details:

  1. User Story
As mentioned in the previous section, sometimes a user story may cover a large
amount of functionality. In these cases, these stories may be referred to as ‘epics’ and may need to broken out into individual, smaller user stories.

You may want to include this details section so that you can take the time to provide any extra context / details for the user story and/or use this section to break the epic into smaller individual stories.

Along with the extra context / details, you can also include “user story conditions” that explain scenarios you want to ensure the user story is covering. For example, if your user story was “As a user, I want a credit card drop-down option so that I can select which credit card I want to pay with,” then you might have user story conditions that say something like: “The credit card drop-down options should include: Amex,Mastercard, Visa.”

Additionally, you may want to include any screenshots / wireframes / design
presentations that can help provide visual context for the user story. This helps guide the reader into better understanding the functional use of this particular story.

User can log in via Facebook, twitter, or google.

      2.  User Story
Write details about User Story 2.

Crew member can clock in and out on a project where the production manager has set the hours budgeted for a project.  

      3.  User Story
            Write details about User Story 3.
           
Customer can login to see project progress at the end of each day.

Designs: If you plan on handing off this spec for a designer, you’ll want to consider adding a timeline of what deliverables you expect to receive from the designer. If you have final designs / prototype already for the product / feature, feel free to include or link to them in this section.

Sprint one design should have wireframing and prototype design completed.  Web portal design should be completed by sprint two.

Legal: If there are any potential legal issues / implications, you’ll want to include any relevant context / details in this section. I.e. perhaps your product / feature involves collecting sensitive user data and your legal team has specified that this data needs to be held on record in a database for a minimum time period.

N/A

Launch / Roll-Out Plan & Timeline: What are the logistics and timeline of this launch? You may want to have a separate launch checklist that you link to in this section. If you only plan to roll-out this product / feature to a select group of users, make sure to detail that in this section.

One month from initial sprint planning all wireframing, prototyping should be completed.  Users should be able to login to clock in and out during this initial sprint.  Sprint two should have the ability for the production manager to set the hours on a project and crew members can clock in and out on said project.  Sprint three will have a spot for the crew member to add comments or pictures of issues on the project.