📺 Develpreneur YouTube Episode

Video + transcript

Writing Better User Stories | Transform Your Projects with Clarity

2025-09-02 •Youtube

Detailed Notes

In this episode of Building Better Developers with AI, Rob Broadhead and Michael Meloche revisit a listener favorite: user stories.

We explore why writing better user stories is essential for keeping projects on track, avoiding vague requirements, and focusing on outcomes that truly matter to users.

👉 What you’ll learn: • The core structure of user stories (As a… I want… So that…) • The Three C’s: Card, Conversation, Confirmation • The INVEST model: Independent, Negotiable, Valuable, Estimable, Small, Testable • Practical tips for improving unclear or oversized stories • Real-world pitfalls when user requirements are misunderstood

Whether you’re a developer, product owner, or project manager, this guide will help you transform your projects by writing better user stories.

đź”— Read and listen to the podcast: https://develpreneur.com/writing-better-user-stories/ đź”— More episodes at https://develpreneur.com

👍 Like, comment, and subscribe for more insights on building better developers and better businesses!

00:00:00 Intro, Bug Story & Host Setup 00:05:00 Meet the Hosts & Good/Bad Things 00:09:00 Main Topic: Writing Better User Stories 00:17:00 Frameworks: Anatomy, Three C’s, INVEST 00:25:30 Practical Tips, Examples & Closing Thoughts

Transcript Text
[Music]
interesting little thing because I hit
record because I want to talk about
this. This is an eagle bug is I think
this is like one of these things that
it's a fortuitous
uh way that things happen. I think what
we've got in this application is I'm
pretty sure what happens is we've got
three different statuses and different
places where you set statuses where you
activate or deactivate things. Different
statuses get set. So, I think the the
bug with this one is that it set a
status, but it didn't set the same. It
didn't ripple affect that status all the
way down, which for those of you that
have just joined us, this is a good
little bit of bonus stuff. Is it make
sure you're very clear when you are
designing out your requirements and
everything else that you have like one
source of truth for things like what is
the status of this record or is this
active or is it deleted or things like
that because if you don't it gets really
confusing we get further on or have
another project that has had similar
things where it evolved and we
redesigned a couple of core pieces and
then suddenly some of those statuses
moved and so the things that were in
like one place are now actually in a
different place or in two different
places and then you have to go find all
the logic that touches that and make
sure that it got updated which if you do
things right and it's truly
object-oriented and all that kind of
stuff then probably you only do it once
but inevitably that's not always the
case. So that was Yeah. And then the
whole Okay, it's time to just not bother
with that one. Let's just like take that
feature out. That is I it is probably
the fastest solution, but I said I'm
still going to have to dig through all
this stuff cuz like even taking that out
means we need to go everywhere else that
we did it and need to figure out how did
we do it before and then take that, you
know, feature away from them. which also
means probably it's going to be its own
little debugging journey of finding some
inconsistencies I bet in the code where
you know one developer did it this way
and then later somebody else came and
did it another way. So, I said it's
probably a good cleanup effort anyways.
It would it will probably protect us
from uh surprise bugs that would show up
further down the, you know, further
downstream, you know, a month from now.
We're like, well, this worked great
until you did this one thing and you
find out that it's Yeah, that one
screen, that one button actually doesn't
do it the same way. And
fun times all around. So, um,
that being said, I'm going to shorten
myself a little bit here because of just
where I am today
as I was up in the apartment and doing
that and it was too freaking hot. I
didn't want to like close the windows. I
was like, it's too hot to to do this,
but I didn't want to close the windows.
So, I'm like, let me get somewhere
that's got air. And I've got my little
fanny fan going here. And I want to go
back to where cuz I'm going to try I
think I'm going to try something
different today.
But how many freaking Zoom windows do I
have open there? Okay. Um
>> that reminded me do not disturb.
Oh, that is a good
catch because I actually just got
um Why are you
Let me see if I can move this. Well,
that is not where I want to move it.
Oh, that's that's my problem. Okay, I
got to move this guy over here. This is
I'm on two different screens and I was
thinking I could just like do the uh
whatever the the spaces that that Mac
has.
>> Mhm.
>> And I was thinking I could do that, but
um because I got two screens, it doesn't
want to like move the spaces properly.
So, what I'm going to do, I'm I know,
trust me, I'm This is all for a fact.
Dramatic pause. Everybody's like,
"What's What are you doing? What's
different?" I'm going to throw it in uh
Gemini today. And it looks like it's
giving me uh cool. It's giving me like a
pretty good I wasn't sure how well it
was going to give me a a breakdown. Uh
and it looks pretty good. So I'm going
to like hit the
and copy that. Wow. This is this is
actually going to be pretty fun. I think
if I can find all the places that I need
to move this uh
you and you I need let me just get rid
of that. I don't need a twoerson
conversation with you. Need a oneperson
conversation with you and put it right
there. Okay. And the topic today is
transform your projects, the ultimate
guide to effective user stories. And so
let me get my Zoom window back so I can
sort of look at you
[Music]
because just keeps my stomach turning
the whole time. H just kidding. Um, and
so I think we are ready to go with a
little th
uno.
Hello and welcome back. I just faked out
my co-host because he thought I was
going to go Spanish, but I went back to
the English translation this time. Who
am I? I am Rob Broadhead. I'm one of the
founders of Developer. Also one of the
people that created this podcast, which
is called the Developer Podcast,
Building Better Developers. Actually
just passed the 900 mark. If you guys
want to flip back a episode or two,
you'll get to see our little like yay
celebration thing. Uh, so we've been
doing this for a while and as part of
that, this season, we've taken a couple
of seasons back. We're going back
through those episodes and we're just
kicking it out to AI and see what
happens. What does it tell us?
Essentially, we should have done. And
we're even changing the game today.
We're going to try uh Gemini instead of
chat GPT that we've been using up to
this point.
Hold your breath because it could be
really exciting or maybe not very
exciting what it gives us. I'm also the
founder of RB Consulting where we are
effectively
the easiest way to look at it. We are a
fractional CIO consultancy. We're a
business consultant. We come in, we do a
technology assessment. We help you
figure out basically by talking to you
what is how your business works. Let's
lay that out first. Let's get to the
guts and the processes of how do you
provide the best services and products
to your customers and then what from
there we look at ways to improve it. It
may be removing steps, it may be adding
steps, it may be simplifying, it may be
integrating, it may be automating, it
may be innovating. There's a lot of
different approaches we can take. We use
technology and all the stuff that's out
there at our disposal to find the best
way for your program, for your company,
for your product to move forward. We
build you a technology roadmap that
allows you to get started today, but
then also make sure that you're
positioned for the future, whether it's
6 months or 6 years from now. We can
hand you that road map and say, "Go for
it. Have fun." Or anything else. We can
take you very deep. We can implement it
with you. We can help you find a team
that can implement it. You name it,
we're going to help you find the best
way forward and give you the keys to
your car and let you drive. Good thing,
bad thing, good thing, bad thing today
is like a perfect thing as I was coming
into this is that it is cooled down a
little bit. So, the nights are finally
cool enough that we are in what I, you
know, my wife likes to call the free
portion of the year a little bit in the
spring and the fall where we're at cuz
we get four seasons uh where you don't
run heat and you don't run air. You can
pretty much just, you know, let it run
all the you can just leave the windows
open all the time and be all natural.
Um, and that's pretty good except for it
got a little hot because of where we're
at. It was getting a little hot today.
So, the bad thing is I was like, "All
right, I got to I got to pick up and
move and can't be in my like normal
shooting the uh the episode spot, but
it's not a bad thing." So, it's like
it's pretty good and just a minor badge.
So, I think that's about as as good as
you could ask for on a given day. Except
you guys get to ask for even better,
which is for Michael to introduce
himself. So, go for it, my friend.
>> Hey, everyone. My name is Michael
Malashsh. I'm one of the co-founders of
developer nerve building better
developers 900 season or 900 episodes.
Go check it out. You know, we've been
around for a while. Um I'm also the
owner of Envision QA. We help businesses
run better by making sure their software
works the way it should. Whether you're
managing customers, selling online, or
running a clinic, we make sure your
systems work more reliable, more
efficient, and easier to use. That means
fewer headaches for you, happier
customers, and more time to focus on
growth. We start by getting to know your
business, reviewing your product,
understanding your goals, and assessing
what works and what's not working. From
there, we recommend the right solution.
Whether it's building you a custom tool,
fixing what's broken, automating your
tests, or helping you prepare for a
smoother launch, our goal simply is to
take care of the tech behind the scenes
so you can focus on running and growing
your business with confidence. You can
learn more about us at envisionqa.com.
Good thing, bad thing, good thing, I'm
loving this weather. This is awesome
weather. Bad thing, my allergies have
already started to kick in. I woke up
this morning with like a sinus headache
and I've been on benadryil, you know,
antihistamines. So, unfortunately, it's
one of those uh days where it's so nice
to be outside, but you're in that kind
of haze and you just can't really enjoy
it.
Well, we are not going to be in a haze
moving forward with this. I hope so. We
jumped right in. We're going to jump
right into this one. So, uh this is the
episode was transformative projects, the
ultimate guide to effective user
stories. Uh episode title, transform
your projects, the ultimate guide to
effective user stories. Wow, that was
very helpful. Thank you so much. AI uh
host, your name, co-host name. Opening
one to two minutes. Intro music, upbeat,
tech focused. We have totally nailed
that. I'm going to say um hooks start
with a relatable problem. Ever been in a
sprint planning meeting where the user
stories just don't make sense? You're
left guessing what the customer actually
wants? Today we're talking about how to
fix that. Introduce the topic. Briefly
explain what user stories are and why
they are so crucial for developers.
Emphasize their role as a communication
tool, not just as a technical spec. And
this is very much what we did uh the
first time around. Actually, it's going
to be interesting. I wonder how much
this is going to be very close to what
we did the first time around. So part
one, the why. The philosophy of user
stories, five to seven minutes.
Discussion item. What is the core
purpose of a user story? It's not a
spec. It's a promise for a conversation.
It's about shared understanding.
Customer sentry. The focus should always
be on the user's perspective. Small
digestible chunks. Why breaking down
work is essential for agility and
accurate estimation. Another discussion
item for this. Why do developers often
struggle with poorly written user
stories? Vague requirements which lead
to rework, frustration, and features
nobody asked for. lack of context, hard
to build a robust solution without
understanding the why and blame game.
When things go wrong, it's difficult to
pinpoint where the breakdown happened.
Now, this was quite a bit here. I I want
to talk a little bit about the basically
it's a the customer centric piece of it
because I think that this is very very
key is that
when you keep it customercentric when
you keep it user story when it's user
specific then what you end up doing is
you are focusing on uh an outcome for
lack of a better term you are focusing
on like what is the experience of this
feature that we're building and this you
For example, let's say it's a always
like the ATM. So, you're focused on the
user story of the user wants to get some
money out of the ATM and they need to
get some from the checking. And then
what that does is allows you to focus on
requirements that are key for the story.
So, it's, you know, in that case, it's
like the user needs to be able to enter
a positive number. They need to be able
to type it into a keyboard or maybe
speak it through a microphone. You know,
there's requirements like that. A very
important thing that a user story does
not get into if it's done right and it
usually it helps you because it's a user
specific thing is that you don't get
into into implementation.
It is very easy when you start really
digging into requirements to get sucked
into the implementation side of stuff
where you're now talking about like well
we got to have this data table and we
have to have this data type and we have
to have you know this special CSS class
or whatever it is. There's a lot of
things that can go into the the
technical vision of how you're going to
deliver it. And user stories are not
really about the delivering it as much
as they're about is what is how is it
received is that user story how do they
experience the delivery part of it which
is where it talked here about it sets up
a communication because what it is is it
says hey this is what the user needs to
experience. Now at some later point once
we've got all of our user stories
together we can talk about how we
deliver it which is where we can go into
some of the deeper requirements and
validations and things like that. It's a
it's almost a straw man that we can use
to start talking about that feature or
that set of features. And really the key
to this as it mentioned is is the why.
Why do we have this user story? What is
the goal of the user? Why do we need
provide this feature? Because if we do
that now, we're actually building out
the the highlevel design, we'll say, and
the requirements in a way that is
actually surface is serving the problem
and solving the problem as opposed to us
just building some stuff and then sort
of trying to tack on solutions after
that. Where do you want to go with this
one? Big area, plenty to go with.
>> Yeah. So
I'm going to start by picking the vague
requirements, you know, leads to rework
frustration and features nobody asked
for. So like you said, you know, if we
start out by actually understanding the
why and really focusing on the user, the
customer centric approach to this, you
hopefully won't run into this issue. But
there are times though when your
customer really doesn't understand their
why. They may understand their business,
but they don't know how their business
works or how it's supposed to run. And
that can run into a very huge problem
when you start discussing requirements.
You could easily get into a discussion
where well um we have this feature or
product that we uh use and we do X Y and
Z with it. but in reality they have six
or seven paper trails or other processes
that they do that are not exposed within
the application that they're using. So
you could be running into situations
where because they don't understand
their business, they have a vague
understanding of the why, but they have
all these compartmental pieces running
their business that are not understood
by the business. So when you get down to
actually trying to figure out, okay,
what are we building for you? you're
going to run into a lot of rabbit holes
and a lot of situations where you're
going to have incomplete requirements.
You're going to have disconnected
requirements or you could have
requirements that make no sense at all.
It's like, wait, why are you doing this
when you have this application over here
that's doing it for you? Oh, I didn't
know it did that. So, you could even
have them uh the customer could have
tools at their disposal already that
they're misusing
or don't even know that they have and
they are using things incorrectly. So
I started I kind of went down a
different rabbit hole with this but that
leads to the vague requirements because
if you ask them how do you enter in say
a customer's address? They say oh well
okay I go over to this index card and I
pull out the customer information. I go
to the computer. I type it in and okay
well where did you type it in? Oh I put
it in Outlook. Well wait you have a uh
you know like maybe a CRM or something.
Why didn't you enter in them? Oh, I
didn't know I could do that. So,
sometimes figuring out the why or the
customer requirements may be taking a
step back, have them walk through their
business, like just walk through what
they do in a day and figure out what
they're doing and then start to ask
them, well, why do you do that? Why what
is the purpose of this? And maybe you
might have to reverse engineer the
requirements or the why. uh because it
they just may not know or it could be
that they don't they understand what
they need to accomplish but they don't
know how to get there.
This actually brings up a conversation I
was having with somebody the other day.
Uh that is just it's a slight side note
on this is the there is a level of trust
that we have when we go with a customer
and when you start talking to staff in
particular about like what do you do?
How do how does it what is your user
story? How do you solve this problem?
What is the process? Sometimes you will
get a different answer the first time
than you get the second or third time
because the first time you get the
official answer of this is how we're
supposed to do it. But then once people
have that trust and they're more
comfortable with you, you find out
either by hook or crook. Sometimes it's
like they'll say, "Oh, by the way, we
don't really do it this way. That's what
we say we do, but this is actually how
we do it." Or you'll be sitting there
talking with them about it or watching
them do it. And you'll just suddenly be
like, "Wait a minute. What is that index
card that you just pulled out of your
desk and why are you looking at that and
actually like entering data based on
that?" You know, there's things like
that that are those insights that will
help you with those user stories. That's
just a little bonus stuff is to just
make sure you're asking the right
question the right way. Moving on to
part two according to uh Gemini
and they are not a sponsor by the way,
but they would love to. I would be more
than happy for an alphabet sponsor. That
would be just great. Google, you guys
can sponsor the heck out of them. Buy us
all we care. Uh the how the anatomy of a
great user story 8 to 10 minutes
discussion item the classic as a dot dot
dot I want to dot dot dot so that dot
dot dot format. uh break down each
component as a user role why defining
the user is critical I want to goal the
desired functionality so that reason the
business value or motiv motivation this
is the most important part for a
developer a discussion item the three
C's of user stories the card physical
and digital representation of story
conversation the discussion that happens
around the story confirmation the
acceptance criteria that prove the story
is complete and then a final discussion
item in this part is the invest model
for good user stories independent It's
the I, can it be worked on alone?
Negotiable. Is there room for
discussion? V is valuable. Does it
provide business value? Estimation is E.
Estimable. I'm sorry. Can we guess how
long it'll take? Small. Is it a
manageable size? And then T is testable.
Can we verify it works? Um, wow. There's
a again there's like a couple episodes
just with that. I think I want to go
with the the breaking down each the
whole as a I want to so that and it's
the at the core a user story is as a
blah I want to blah so that I can blah
and so that is the like that is the
structure of the story. So it'd be as
like as a podcaster I want to record my
discussion so that I can share it with
my audience.
It's it allows us to I think it's it's a
great starting point. Let me start with
that is it it is no pun intended that it
is a great starting point to say let's
put the user story down in very human
terms. Now I would recommend and you can
see this actually I think the developer
book or with RB site one of those books
we actually have we get deeper into user
stories and it's the other stuff it's
really gets into the discussion items
because the user story itself is is
critical it's like let's start that's
our why that's our focus that's what
we're trying to get done but then you've
got underneath it these details that are
a little bit more about like okay so
that's how we're going to do it but
let's make sure that we're phrasing it
like the investment they talk about.
Let's phrase it in a way to make sure
that it is rightsized so that we're not
stalling like this is like one user
story that is actually got a bunch of
other mini or micro user stories within
it. Uh is it something that makes sense?
Is it something that we can do and
validate and you know verify and
estimate things like that or is it too
high in the sky? Uh, and if it's if it's
not those things, then that means that
we probably aren't adding enough
details. So, it could be stuff like I
mean, I could start with as a podcaster,
I want to be able to record my
conversations so that I can share them
with my my customers, but there's a lot
around that. It's like, okay, well, you
know, this is how you have that
discussion to be like, well, how often
do you want to record it? How do you
want to record it? How do you want to
deliver it? Who are your customers? you
know, because you may want to deliver it
in a way that they can't get it. Um,
there's things like that. You know, do
you want to ask them for email at the
end of the, you know, end of every
episode? There's things like there's a
lot of details that come out of this.
And it actually goes back a little bit
to the prior part of of vague or missing
requirements is that this discussion,
the whole point is to draw some of that
out, is to try to find gaps and and
figure out where the story is not
complete. Where did we miss something in
this story that either needs to be its
own story or needs to be specified in
this one? So again, like I said, that's
a lot of places you can go. So
buckle up and like pick your spot, pick
your race.
>> All right. So I I'm going to kind of
piggyback off that with some of the uh
other discussion items down there
because one of the biggest things
especially if you're are a test-driven
developer or you drive your applications
or whatever you're building through
testing where you put it's user centric
it's story based the as a or I want to
really helps you depict how what the
story is what is the requirement Because
number one question you have to have as
you're going through those is do your
stories have multiple meanings and by
that I mean if you basically read as a
podcaster I want to publish content okay
well what kind of if there are any
questions about that if there is an if
then you need to break that down into
multiple stories you need to do one
story for like part one and you need to
do one story for part two you you can
get kind of break those apart cuz if you
keep them too vague, your requirements
could go down the rabbit hole later uh
and you could end up with a solution
that doesn't quite catch all the use
cases that you need because you didn't
define them clearly. And that gets into
uh that invest model. So, you know,
independent can it be worked on alone?
You know, is this a small project? Do
you need to break it out? Um it is it
negotiable? Is there room for a
discussion? You know, is this for
instance a healthcare application? So
there are certain rules and regulations
that you are going to be bound to with
the way that you write this application.
You can't get around that. You are
legally binding to follow those rules.
Now does that mean that there's no
wiggle room in other parts of the
application? No. You can probably do
other things that you want within the
application. You just have to follow a
certain set of guidelines for the
government uh or state or country that
you live in. Uh value, you know, does it
provide business value? This is a very
interesting one because just recently we
worked on a project where we actually
had a feature that the customer asked
for that we built because it was
supposed to provide them value and then
we come to find out later in the project
that that value that was so important at
the beginning of the project went away.
They actually went a different course
and had not communicated that. So we had
built something of value that was no
longer used. So that is time wasted uh
on developing what you know getting the
product to um the MVP sooner and that
also messes with the uh estimatables
because can we guess how long it takes?
Sure. If the requirements don't change
mid-stream, if you can clearly define
those deliverables at the beginning, you
get those uh requirements and user
stories defined well and everyone signs
off on them and you do regular
checkpoints, you should be on track that
okay, yes, we are on track. If something
changes, you should know early on how to
pivot. Oh, if we change this or add
this, this will change the estimates. uh
you shouldn't get to the end and find
out that you're a year two years behind
because whoops this core feature that
absolutely had to be in the application
took an additional year and a half to
build. So you you these are why these
requirements are so important. Uh small
is it man is it a manageable size? Well,
if you do your user stories correctly
like I said if you break them down to
where they have only one meaning it
should be small enough. Now that doesn't
mean that that particular story is more
complex and could not be big. You could
still pick at it and break it down into
smaller pieces like Rob said. You know,
do we need to send an collect an email
at the end of the podcast? Do we need to
do certain things? So, you can ask
additional questions to whittle that
down smaller. And last of all, I'll
circle back around. Is it testable? Can
we verify it works? Again, this goes
with that test-driven development. So if
you think about testing in mind as
you're working and building out the
requirements for this application,
you're going to know that okay for to in
order to ensure that this user story
works, this is how I'm going to test it
from the user's perspective. So when you
eventually put it in front of the user,
there should be no surprise.
I just sort of follow up on that one is
that the a part of that is it testable?
Is it verifiable? Is that it's basically
what does done mean? What does it what
does it mean for this to actually be uh
achieved or completed? And that often
can be a very big issue. So uh I we're
wrapping wrapping it up and I guess this
part three even though it's not there is
a conclusion but part three practical
tips for developers discussion on what
should developers do when they get a bad
user story. Don't just code it. Speak up
and ask for clarification. Ask why.
Challenge the I want to to get to the so
that uh write acceptance criteria.
Collaborate with the product manager to
find clear testable criteria. Break it
down. If a story is too big, propose a
way to split it into smaller, more
manageable pieces. Discussion item. Pro
tips and common pitfalls. Don't get lost
in the technical weeds. The story is for
the user. The technical details go into
the subtasks. Uh example scenarios. Talk
through a couple of bad stories and show
how to fix them. Bad. Add a contact
form. Good. As a potential customer, I
want to fill out a contact form with my
name, email, and message so that I can
get in touch with a company about their
services. Tooling mentioned tools like
Jira, Trello or ASA and how they can
support user stories. I want to keep
this one briefly because we are going to
we could go very long again. I want to
go with that last one, the good one. As
a potential customer, I want to fill out
a contact form with my name, email, and
a message so that I can get in touch
with the company about their services.
Now, I want to just like break this down
really quick for like the anatomy of a
good story, but then also where the
discussion needs to go.
It gives the potential customer, which
it can have its own little discussion,
but then it's it actually says a contact
form with name, email, and message.
Well, that is maybe something that is up
for debate. It's like, okay, well, why
why do you want that information? Where
where's it going to go? How are we going
to do that? And you have with that so
that I can get in touch. Well,
This would only say that you can get in
touch by email. Do you want to actually
ask for a phone number? Do you want to
make email required? Do you want to make
a phone number required? Do you want to
use snail mail? I mean, there's Do you
want to use a WhatsApp or you want to do
a LinkedIn app? You know, there's the
contact stuff in particular can get very
complicated very quickly. Can a person
have multiple contacts? Do they need to
have a preferred contact tact? Do they
need to have a contact that only occurs
at 2 am and a different one that occurs
at 3:00 a.m.? Do they need to have a
weekday versus a weekend? Yeah, there's
there are a lot of things that can go
into this and when you get into the
implementation of it, actually building
it out, that's part of it. And it is
part of it. If you do test driven, then
you're going to say, well, okay, can we
contact a customer? Can we, you know,
can we repull, can we pull back up their
information? Can we see where we sent
them a message? Can they reply to us? If
things like that, those questions are
how we get to the the finality of what
it is that we're building to say yes,
now we've built something and it has
provided that uh the needed
functionality. But because we do the so
that it really should spark questions of
like do you really need that information
or if you're saying that don't you also
need to do this to get a couple extra
little pieces in? Uh closing thoughts on
that?
>> Yeah. So I'm going to take the first
part because we talked about this a lot
with our discussions of coder versus
developer.
This the first tip that was talked about
with this was you know don't just code
it. Speak up and ask for clarification.
Before you really work any ticket you
should always read through it and make
sure that you understand what it is
that's being asked. What is the why of
the ticket? Essentially what is the
acceptance criteria? What am I supposed
to be doing with this ticket? Is it all
clearly defined? And then finally, make
sure that the task itself doesn't have
one of those if then stories where it's
unclear what it is that you're supposed
to do. Implied requirements are not good
requirements. Defined requirements are
good requirements.
>> I will add I will just wrap that one up.
add to that is that the make an app that
looks like this app is not a good
requirement or you know just make it
look like this make it work like that is
not going to be good enough and so
expect that you're going to get some
questions. Uh I expect that I'm going to
get some emails because not because I
insensed people but because I'm asking
for emails. Shoot us an email at
[email protected]. Let us know what you
think. What do you like? What don't you
like? Where would you like us to go
next? We we've been cruising along. We
have another season coming up after, you
know, about another half dozen episodes,
something like that. And uh we haven't
even decided where we want to go next
with that one. Uh we are open to uh
interviews. We we've got some thoughts
on that. And I know I've been teasing
that for ever since we last did an
interview, but uh it is it is real. It's
not just like me just like ripping or
anything like that. We may actually get
to it. We just haven't haven't followed
through yet. So, we'll see how that one
goes. Uh we'd love to hear if you want
to be interviewed, if you'd like to talk
to us, we would love to talk to you.
Also, like I said, any suggestions,
recommendations, anything like that,
email, you can check us out on
developer.com. We got a lot of stuff
going on there. There's contact us form,
uh you any any article, any of where you
get our podcast, any podcast episode out
on YouTube, any of the episodes there,
you can leave comments there and we will
get back to you as soon as we can on
those. And if you leave us something and
you're like, "Hey," or you try to go
somewhere, you're like, "We don't find
your podcast here, let us know. We'll
make sure because we want to be seen
there. Want to be there as well, but
theoretically, we've been told that
wherever you can get podcast, we are
there. We're already there. We're
waiting for you to listen. So, jump
right on. Uh, if you're listening to
this, then you can always check us out
on the developer channel on YouTube and
you actually see us as we go through it
and you get bonus episode, bonus
information on basically every single
episode. Sometimes way more bonus and
sometimes a little less. depends on how
long we get off the on rabbit trails
about this. All that being said, I do
want to once again say how much we
appreciate you and your time that uh so
valuable and yet you're sharing it with
us. So, we want to make sure we're
giving back and helping to make the most
of respecting that time. And I'm going
to respect it by saying go out there and
have yourself a great day, a great week,
and we will talk to you next time. Bonus
material. So, let's just go I'll just
like read the little conclusion here,
the last little bit, and then see where
you want to go. Summary to recap the key
points. User stories are about
conversation and value, not just tasks.
Personal challenge. Encourage listeners
to actively improve the user stories on
their projects this week. Call to
action. What are your worst or best user
stories? Share them with us on Twitter
using developing. Look at even got that
right. Uh mention where to find the
podcast and how to subscribe. Um find it
with subscri subscribe button. I don't
even know how to subscribe. I like I
know you go there, you hit subscribe.
Whatever your app is, it's got a
subscribe button. I'm not going to walk
through all of them. And then there's
outro music with a little fade out,
which
>> we do have. Yes, we do have. I was like
I was like, we do still have the fade
out. I've like this tells you it's like
been a while since I've actually done
that side of it. And I actually have I
cheat. I have my podcast stuff all set
up. So like I skip stuff at the end and
the beginning and the end so that I can
like move quickly into my next podcast
and not listen to intros and outros 15
times in a row. So uh there you go.
There's some bonus some bonus material
right there. great ways to like cut out
the stuff that you hear every single
episode once you realize I don't really
need to hear that anymore. But that's
also bonuses. That's why sometimes I mix
stuff up a little bit and throw odd
things in. Uh just to make sure that we,
you know, give you a little bit of a
reason to stick around for a little.
It's like a bonus. It's like the bonus
at the end of a Marvel movie or
something like that is you never know
when we'll have a postredit scene. We
haven't had one yet, but maybe we will
now. All right. Bonus information, bonus
material from you.
>> Yeah. So, I'm going to check on the
personal challenge a little bit here.
So, we've talked multiple times, many
different conversations. We've got lots
of material on the site to check out.
But, you know,
if you are not writing user stories, if
you really aren't sure what a user story
is, I want you to go out, take a test
that you're working on right now and
Google how to write a user story. If you
don't know how to do this, just do a
quick Google search. There's lots of
examples out there. Jira, um, Asana,
those tools have, uh, documentation on
their wikis about user stories and how
to incorporate them with their
applications. But start take the task
that you're working on right now and
take it clear. Start with what the
problem is. Try to write a user story
based on the problem that you would
understand and then pick at it. Make
sure it gives you everything you need to
actually uh, you know, write the
feature. make sure that you can test it
and make sure that you have what you
need to sign off on it to say that it's
done. Essentially, what is the
definition of done? So, I would start
there. Uh go out, pick something, work
through it, and then when you're done,
uh see what the difference is compared
to what you started with and see if your
job is now easier or harder to get the
test done. Or better yet, did what you
come up with actually uh match what you
started with? or is what you came up
with actually what you need to do your
work meaning that the initial task was
going to send you down the wrong rabbit
hole.
>> Yeah, I think that's this is one of
those places that uh no matter how many
times you've built user stories, you can
get better every time. Uh I think
there's always something you can learn
from them. Yeah, maybe it's like not
every user story because you're going to
get some that you will be able to just
like you'll walk through and go like
this is you story, this is your story.
This is what it is. This is what you
have to do. This is what you have to ask
about. This is what you need to answer.
These are those things. So there's going
to be things like we talk all the time
about like a login. You know, if you
have a user, do you have one user? Do
you have multiple users? How do they log
in? What is their username? Like what's
the unique value? What do they what if
they forget their name? What if they
forget their password? How do you do
that? Like all of those stories are
related to that. And we have them for
other things depending on your
integrations and all this other stuff
that you do. But there's always going to
be new stories. There always going to be
new
flavors of problems essentially you're
going to be solving. so that you're
you're going to learn how to better ask
those questions and flesh out the pieces
that you missed last time around when
you were building out the user story. Uh
that's why we ask for an email every
single time basically because that helps
us flesh out some of the pieces that we
might be missing. But thank you for not
missing this episode. Thank you for
sticking around to the end and catching
all of your bonus material as well. We
will be back uh before you know it with
the next episode starting out with our
general green room stuff and whatever
topic we're going to cover next. and
then we'll dive right into it because
that's what we're here for. Thank you so
much for your time. We appreciate you so
much and have a great day.
[Music]
Transcript Segments
1.35

[Music]

27.119

interesting little thing because I hit

29.199

record because I want to talk about

30.32

this. This is an eagle bug is I think

33.04

this is like one of these things that

34.32

it's a fortuitous

36.88

uh way that things happen. I think what

38.96

we've got in this application is I'm

40.719

pretty sure what happens is we've got

42.64

three different statuses and different

45.36

places where you set statuses where you

47.92

activate or deactivate things. Different

50.079

statuses get set. So, I think the the

52.239

bug with this one is that it set a

54.64

status, but it didn't set the same. It

56.559

didn't ripple affect that status all the

59.28

way down, which for those of you that

61.28

have just joined us, this is a good

62.719

little bit of bonus stuff. Is it make

65.119

sure you're very clear when you are

67.439

designing out your requirements and

69.119

everything else that you have like one

72

source of truth for things like what is

74.56

the status of this record or is this

76.799

active or is it deleted or things like

78.72

that because if you don't it gets really

81.28

confusing we get further on or have

85.04

another project that has had similar

86.479

things where it evolved and we

88.4

redesigned a couple of core pieces and

90.4

then suddenly some of those statuses

92.079

moved and so the things that were in

94.32

like one place are now actually in a

96

different place or in two different

97.28

places and then you have to go find all

99.52

the logic that touches that and make

101.119

sure that it got updated which if you do

103.28

things right and it's truly

104.24

object-oriented and all that kind of

105.52

stuff then probably you only do it once

107.119

but inevitably that's not always the

110

case. So that was Yeah. And then the

112.64

whole Okay, it's time to just not bother

114.56

with that one. Let's just like take that

116.24

feature out. That is I it is probably

119.92

the fastest solution, but I said I'm

121.52

still going to have to dig through all

122.479

this stuff cuz like even taking that out

124.399

means we need to go everywhere else that

125.92

we did it and need to figure out how did

128.239

we do it before and then take that, you

130.08

know, feature away from them. which also

131.76

means probably it's going to be its own

133.44

little debugging journey of finding some

135.599

inconsistencies I bet in the code where

137.92

you know one developer did it this way

139.44

and then later somebody else came and

140.72

did it another way. So, I said it's

142.959

probably a good cleanup effort anyways.

144.64

It would it will probably protect us

146.4

from uh surprise bugs that would show up

150

further down the, you know, further

151.36

downstream, you know, a month from now.

152.879

We're like, well, this worked great

154.16

until you did this one thing and you

156.239

find out that it's Yeah, that one

158

screen, that one button actually doesn't

160

do it the same way. And

162.8

fun times all around. So, um,

167.2

that being said, I'm going to shorten

169.36

myself a little bit here because of just

171.04

where I am today

173.599

as I was up in the apartment and doing

175.68

that and it was too freaking hot. I

178.16

didn't want to like close the windows. I

179.44

was like, it's too hot to to do this,

181.12

but I didn't want to close the windows.

182.4

So, I'm like, let me get somewhere

183.36

that's got air. And I've got my little

185.68

fanny fan going here. And I want to go

188.959

back to where cuz I'm going to try I

191.76

think I'm going to try something

194.08

different today.

196.159

But how many freaking Zoom windows do I

198.239

have open there? Okay. Um

201.76

>> that reminded me do not disturb.

204.8

Oh, that is a good

208.48

catch because I actually just got

213.2

um Why are you

216.72

Let me see if I can move this. Well,

219.2

that is not where I want to move it.

222.72

Oh, that's that's my problem. Okay, I

225.599

got to move this guy over here. This is

227.44

I'm on two different screens and I was

229.12

thinking I could just like do the uh

231.599

whatever the the spaces that that Mac

234.72

has.

235.519

>> Mhm.

236.64

>> And I was thinking I could do that, but

239.519

um because I got two screens, it doesn't

241.12

want to like move the spaces properly.

243.12

So, what I'm going to do, I'm I know,

245.04

trust me, I'm This is all for a fact.

247.12

Dramatic pause. Everybody's like,

248.56

"What's What are you doing? What's

249.92

different?" I'm going to throw it in uh

251.599

Gemini today. And it looks like it's

255.04

giving me uh cool. It's giving me like a

257.68

pretty good I wasn't sure how well it

259.359

was going to give me a a breakdown. Uh

262.8

and it looks pretty good. So I'm going

265.6

to like hit the

268.479

and copy that. Wow. This is this is

270.4

actually going to be pretty fun. I think

273.52

if I can find all the places that I need

275.44

to move this uh

278.479

you and you I need let me just get rid

280.56

of that. I don't need a twoerson

282.24

conversation with you. Need a oneperson

284.72

conversation with you and put it right

286.8

there. Okay. And the topic today is

291.44

transform your projects, the ultimate

293.12

guide to effective user stories. And so

296.16

let me get my Zoom window back so I can

298.16

sort of look at you

299.93

[Music]

301.6

because just keeps my stomach turning

304.32

the whole time. H just kidding. Um, and

308.16

so I think we are ready to go with a

311.84

little th

313.68

uno.

315.28

Hello and welcome back. I just faked out

318.08

my co-host because he thought I was

319.199

going to go Spanish, but I went back to

320.72

the English translation this time. Who

322.72

am I? I am Rob Broadhead. I'm one of the

324.56

founders of Developer. Also one of the

327.199

people that created this podcast, which

328.88

is called the Developer Podcast,

330.639

Building Better Developers. Actually

332.8

just passed the 900 mark. If you guys

335.6

want to flip back a episode or two,

337.52

you'll get to see our little like yay

339.199

celebration thing. Uh, so we've been

341.039

doing this for a while and as part of

343.28

that, this season, we've taken a couple

345.039

of seasons back. We're going back

346.479

through those episodes and we're just

348

kicking it out to AI and see what

349.84

happens. What does it tell us?

351.28

Essentially, we should have done. And

352.88

we're even changing the game today.

354.32

We're going to try uh Gemini instead of

357.039

chat GPT that we've been using up to

359.199

this point.

360.72

Hold your breath because it could be

362.08

really exciting or maybe not very

363.919

exciting what it gives us. I'm also the

365.52

founder of RB Consulting where we are

368.479

effectively

370.16

the easiest way to look at it. We are a

371.919

fractional CIO consultancy. We're a

374.479

business consultant. We come in, we do a

376.72

technology assessment. We help you

378.319

figure out basically by talking to you

380.88

what is how your business works. Let's

383.52

lay that out first. Let's get to the

384.96

guts and the processes of how do you

388.24

provide the best services and products

390

to your customers and then what from

392.319

there we look at ways to improve it. It

394.72

may be removing steps, it may be adding

396.4

steps, it may be simplifying, it may be

398.4

integrating, it may be automating, it

400

may be innovating. There's a lot of

401.68

different approaches we can take. We use

403.36

technology and all the stuff that's out

405.12

there at our disposal to find the best

407.28

way for your program, for your company,

409.52

for your product to move forward. We

411.6

build you a technology roadmap that

413.12

allows you to get started today, but

414.72

then also make sure that you're

416.319

positioned for the future, whether it's

417.759

6 months or 6 years from now. We can

420.16

hand you that road map and say, "Go for

421.759

it. Have fun." Or anything else. We can

424.08

take you very deep. We can implement it

425.52

with you. We can help you find a team

426.8

that can implement it. You name it,

428.56

we're going to help you find the best

430.479

way forward and give you the keys to

433.039

your car and let you drive. Good thing,

435.28

bad thing, good thing, bad thing today

437.84

is like a perfect thing as I was coming

439.52

into this is that it is cooled down a

442.4

little bit. So, the nights are finally

444

cool enough that we are in what I, you

445.599

know, my wife likes to call the free

447.36

portion of the year a little bit in the

448.8

spring and the fall where we're at cuz

450.319

we get four seasons uh where you don't

452.4

run heat and you don't run air. You can

454.16

pretty much just, you know, let it run

455.919

all the you can just leave the windows

457.36

open all the time and be all natural.

460.319

Um, and that's pretty good except for it

462.16

got a little hot because of where we're

463.36

at. It was getting a little hot today.

464.639

So, the bad thing is I was like, "All

467.12

right, I got to I got to pick up and

468.639

move and can't be in my like normal

471.12

shooting the uh the episode spot, but

474.24

it's not a bad thing." So, it's like

476.24

it's pretty good and just a minor badge.

478.8

So, I think that's about as as good as

480.639

you could ask for on a given day. Except

483.52

you guys get to ask for even better,

484.879

which is for Michael to introduce

486.4

himself. So, go for it, my friend.

488.639

>> Hey, everyone. My name is Michael

490.08

Malashsh. I'm one of the co-founders of

491.68

developer nerve building better

492.96

developers 900 season or 900 episodes.

496.479

Go check it out. You know, we've been

498.08

around for a while. Um I'm also the

500.4

owner of Envision QA. We help businesses

502.8

run better by making sure their software

504.479

works the way it should. Whether you're

506.72

managing customers, selling online, or

509.199

running a clinic, we make sure your

511.039

systems work more reliable, more

512.8

efficient, and easier to use. That means

515.039

fewer headaches for you, happier

516.959

customers, and more time to focus on

518.8

growth. We start by getting to know your

520.8

business, reviewing your product,

522.64

understanding your goals, and assessing

524.64

what works and what's not working. From

526.88

there, we recommend the right solution.

528.72

Whether it's building you a custom tool,

530.64

fixing what's broken, automating your

532.72

tests, or helping you prepare for a

534.56

smoother launch, our goal simply is to

537.12

take care of the tech behind the scenes

538.72

so you can focus on running and growing

540.64

your business with confidence. You can

542.959

learn more about us at envisionqa.com.

546

Good thing, bad thing, good thing, I'm

548.08

loving this weather. This is awesome

550.32

weather. Bad thing, my allergies have

553.36

already started to kick in. I woke up

556.16

this morning with like a sinus headache

558.56

and I've been on benadryil, you know,

561.279

antihistamines. So, unfortunately, it's

563.44

one of those uh days where it's so nice

565.76

to be outside, but you're in that kind

567.2

of haze and you just can't really enjoy

569.279

it.

572.24

Well, we are not going to be in a haze

574.16

moving forward with this. I hope so. We

576.959

jumped right in. We're going to jump

577.92

right into this one. So, uh this is the

580.24

episode was transformative projects, the

582.48

ultimate guide to effective user

584.32

stories. Uh episode title, transform

586.72

your projects, the ultimate guide to

587.92

effective user stories. Wow, that was

589.279

very helpful. Thank you so much. AI uh

590.959

host, your name, co-host name. Opening

593.279

one to two minutes. Intro music, upbeat,

595.44

tech focused. We have totally nailed

597.279

that. I'm going to say um hooks start

600.24

with a relatable problem. Ever been in a

601.92

sprint planning meeting where the user

603.76

stories just don't make sense? You're

605.839

left guessing what the customer actually

607.279

wants? Today we're talking about how to

609.36

fix that. Introduce the topic. Briefly

612

explain what user stories are and why

613.76

they are so crucial for developers.

615.2

Emphasize their role as a communication

617.12

tool, not just as a technical spec. And

619.44

this is very much what we did uh the

621.12

first time around. Actually, it's going

622.24

to be interesting. I wonder how much

623.12

this is going to be very close to what

624.24

we did the first time around. So part

625.519

one, the why. The philosophy of user

627.6

stories, five to seven minutes.

629.92

Discussion item. What is the core

631.6

purpose of a user story? It's not a

633.6

spec. It's a promise for a conversation.

635.44

It's about shared understanding.

637.279

Customer sentry. The focus should always

638.88

be on the user's perspective. Small

640.88

digestible chunks. Why breaking down

642.8

work is essential for agility and

644.8

accurate estimation. Another discussion

646.959

item for this. Why do developers often

648.72

struggle with poorly written user

650

stories? Vague requirements which lead

652

to rework, frustration, and features

653.519

nobody asked for. lack of context, hard

655.519

to build a robust solution without

656.88

understanding the why and blame game.

658.959

When things go wrong, it's difficult to

660.24

pinpoint where the breakdown happened.

662.32

Now, this was quite a bit here. I I want

664.24

to talk a little bit about the basically

666.88

it's a the customer centric piece of it

670

because I think that this is very very

672.079

key is that

675.04

when you keep it customercentric when

676.8

you keep it user story when it's user

679.76

specific then what you end up doing is

682.24

you are focusing on uh an outcome for

685.839

lack of a better term you are focusing

687.519

on like what is the experience of this

691.6

feature that we're building and this you

693.519

For example, let's say it's a always

695.12

like the ATM. So, you're focused on the

698

user story of the user wants to get some

700.32

money out of the ATM and they need to

702.32

get some from the checking. And then

704.32

what that does is allows you to focus on

706.399

requirements that are key for the story.

709.36

So, it's, you know, in that case, it's

710.72

like the user needs to be able to enter

712.079

a positive number. They need to be able

713.68

to type it into a keyboard or maybe

715.279

speak it through a microphone. You know,

716.959

there's requirements like that. A very

719.76

important thing that a user story does

722

not get into if it's done right and it

724.959

usually it helps you because it's a user

727.2

specific thing is that you don't get

729.519

into into implementation.

732.079

It is very easy when you start really

734.8

digging into requirements to get sucked

737.12

into the implementation side of stuff

738.8

where you're now talking about like well

741.04

we got to have this data table and we

742.8

have to have this data type and we have

744.48

to have you know this special CSS class

747.44

or whatever it is. There's a lot of

749.12

things that can go into the the

751.6

technical vision of how you're going to

753.519

deliver it. And user stories are not

755.68

really about the delivering it as much

757.68

as they're about is what is how is it

759.92

received is that user story how do they

761.839

experience the delivery part of it which

764.399

is where it talked here about it sets up

766.72

a communication because what it is is it

768.639

says hey this is what the user needs to

771.04

experience. Now at some later point once

773.6

we've got all of our user stories

775.2

together we can talk about how we

777.2

deliver it which is where we can go into

779.2

some of the deeper requirements and

780.88

validations and things like that. It's a

783.279

it's almost a straw man that we can use

785.92

to start talking about that feature or

789.279

that set of features. And really the key

791.519

to this as it mentioned is is the why.

794.32

Why do we have this user story? What is

797.36

the goal of the user? Why do we need

799.92

provide this feature? Because if we do

802.48

that now, we're actually building out

805.279

the the highlevel design, we'll say, and

808.48

the requirements in a way that is

810.32

actually surface is serving the problem

813.36

and solving the problem as opposed to us

815.6

just building some stuff and then sort

818

of trying to tack on solutions after

819.68

that. Where do you want to go with this

821.36

one? Big area, plenty to go with.

824.079

>> Yeah. So

826.48

I'm going to start by picking the vague

829.04

requirements, you know, leads to rework

831.44

frustration and features nobody asked

833.12

for. So like you said, you know, if we

835.44

start out by actually understanding the

837.279

why and really focusing on the user, the

840.639

customer centric approach to this, you

843.199

hopefully won't run into this issue. But

845.6

there are times though when your

847.279

customer really doesn't understand their

849.04

why. They may understand their business,

850.88

but they don't know how their business

852.8

works or how it's supposed to run. And

855.199

that can run into a very huge problem

857.92

when you start discussing requirements.

860.399

You could easily get into a discussion

863.04

where well um we have this feature or

866.88

product that we uh use and we do X Y and

870.399

Z with it. but in reality they have six

873.279

or seven paper trails or other processes

876.399

that they do that are not exposed within

878.959

the application that they're using. So

880.88

you could be running into situations

882.639

where because they don't understand

884.48

their business, they have a vague

886.8

understanding of the why, but they have

889.279

all these compartmental pieces running

892.48

their business that are not understood

894.88

by the business. So when you get down to

896.72

actually trying to figure out, okay,

898

what are we building for you? you're

900

going to run into a lot of rabbit holes

901.6

and a lot of situations where you're

903.68

going to have incomplete requirements.

905.68

You're going to have disconnected

906.959

requirements or you could have

908.399

requirements that make no sense at all.

910.16

It's like, wait, why are you doing this

911.839

when you have this application over here

913.36

that's doing it for you? Oh, I didn't

914.88

know it did that. So, you could even

916.56

have them uh the customer could have

918.8

tools at their disposal already that

921.36

they're misusing

923.6

or don't even know that they have and

925.6

they are using things incorrectly. So

929.68

I started I kind of went down a

931.519

different rabbit hole with this but that

933.04

leads to the vague requirements because

934.56

if you ask them how do you enter in say

937.6

a customer's address? They say oh well

939.6

okay I go over to this index card and I

943.199

pull out the customer information. I go

944.88

to the computer. I type it in and okay

948.16

well where did you type it in? Oh I put

949.839

it in Outlook. Well wait you have a uh

952.56

you know like maybe a CRM or something.

955.12

Why didn't you enter in them? Oh, I

956.72

didn't know I could do that. So,

958.88

sometimes figuring out the why or the

961.839

customer requirements may be taking a

964.56

step back, have them walk through their

968.079

business, like just walk through what

970.24

they do in a day and figure out what

973.519

they're doing and then start to ask

975.199

them, well, why do you do that? Why what

977.44

is the purpose of this? And maybe you

979.44

might have to reverse engineer the

981.04

requirements or the why. uh because it

984.48

they just may not know or it could be

987.279

that they don't they understand what

990

they need to accomplish but they don't

991.6

know how to get there.

994.72

This actually brings up a conversation I

996.16

was having with somebody the other day.

997.6

Uh that is just it's a slight side note

999.68

on this is the there is a level of trust

1003.04

that we have when we go with a customer

1005.04

and when you start talking to staff in

1007.6

particular about like what do you do?

1009.199

How do how does it what is your user

1010.88

story? How do you solve this problem?

1012.639

What is the process? Sometimes you will

1014.8

get a different answer the first time

1016.16

than you get the second or third time

1018

because the first time you get the

1019.44

official answer of this is how we're

1021.04

supposed to do it. But then once people

1023.12

have that trust and they're more

1024.48

comfortable with you, you find out

1026.4

either by hook or crook. Sometimes it's

1028.24

like they'll say, "Oh, by the way, we

1029.6

don't really do it this way. That's what

1031.039

we say we do, but this is actually how

1032.72

we do it." Or you'll be sitting there

1034.799

talking with them about it or watching

1036.4

them do it. And you'll just suddenly be

1037.76

like, "Wait a minute. What is that index

1040

card that you just pulled out of your

1042.24

desk and why are you looking at that and

1044.319

actually like entering data based on

1046.16

that?" You know, there's things like

1047.12

that that are those insights that will

1050

help you with those user stories. That's

1051.52

just a little bonus stuff is to just

1053.6

make sure you're asking the right

1054.96

question the right way. Moving on to

1056.799

part two according to uh Gemini

1060.16

and they are not a sponsor by the way,

1061.52

but they would love to. I would be more

1063.2

than happy for an alphabet sponsor. That

1064.88

would be just great. Google, you guys

1066.32

can sponsor the heck out of them. Buy us

1068.799

all we care. Uh the how the anatomy of a

1071.919

great user story 8 to 10 minutes

1073.76

discussion item the classic as a dot dot

1076.64

dot I want to dot dot dot so that dot

1078.96

dot dot format. uh break down each

1081.36

component as a user role why defining

1084.08

the user is critical I want to goal the

1086.4

desired functionality so that reason the

1088.48

business value or motiv motivation this

1090.16

is the most important part for a

1091.36

developer a discussion item the three

1093.919

C's of user stories the card physical

1096.24

and digital representation of story

1097.84

conversation the discussion that happens

1099.6

around the story confirmation the

1101.679

acceptance criteria that prove the story

1103.6

is complete and then a final discussion

1106.08

item in this part is the invest model

1108.08

for good user stories independent It's

1110.08

the I, can it be worked on alone?

1111.679

Negotiable. Is there room for

1113.039

discussion? V is valuable. Does it

1115.2

provide business value? Estimation is E.

1118.32

Estimable. I'm sorry. Can we guess how

1120.16

long it'll take? Small. Is it a

1122.48

manageable size? And then T is testable.

1124.88

Can we verify it works? Um, wow. There's

1128

a again there's like a couple episodes

1130.48

just with that. I think I want to go

1132.88

with the the breaking down each the

1135.52

whole as a I want to so that and it's

1139.039

the at the core a user story is as a

1143.2

blah I want to blah so that I can blah

1146

and so that is the like that is the

1148.799

structure of the story. So it'd be as

1150.559

like as a podcaster I want to record my

1154.48

discussion so that I can share it with

1157.36

my audience.

1159.28

It's it allows us to I think it's it's a

1163.12

great starting point. Let me start with

1164.64

that is it it is no pun intended that it

1167.919

is a great starting point to say let's

1170.32

put the user story down in very human

1173.84

terms. Now I would recommend and you can

1178.32

see this actually I think the developer

1180.08

book or with RB site one of those books

1182.4

we actually have we get deeper into user

1184.88

stories and it's the other stuff it's

1187.12

really gets into the discussion items

1188.72

because the user story itself is is

1191.2

critical it's like let's start that's

1192.72

our why that's our focus that's what

1194.64

we're trying to get done but then you've

1196.64

got underneath it these details that are

1199.039

a little bit more about like okay so

1201.28

that's how we're going to do it but

1202.96

let's make sure that we're phrasing it

1204.559

like the investment they talk about.

1206

Let's phrase it in a way to make sure

1208

that it is rightsized so that we're not

1211.12

stalling like this is like one user

1213.12

story that is actually got a bunch of

1214.96

other mini or micro user stories within

1217.679

it. Uh is it something that makes sense?

1219.679

Is it something that we can do and

1222.32

validate and you know verify and

1224.4

estimate things like that or is it too

1227.76

high in the sky? Uh, and if it's if it's

1230.24

not those things, then that means that

1232

we probably aren't adding enough

1233.52

details. So, it could be stuff like I

1235.84

mean, I could start with as a podcaster,

1237.44

I want to be able to record my

1239.36

conversations so that I can share them

1241.84

with my my customers, but there's a lot

1245.44

around that. It's like, okay, well, you

1247.6

know, this is how you have that

1249.28

discussion to be like, well, how often

1250.72

do you want to record it? How do you

1252.159

want to record it? How do you want to

1253.2

deliver it? Who are your customers? you

1255.2

know, because you may want to deliver it

1256.48

in a way that they can't get it. Um,

1258.96

there's things like that. You know, do

1261.039

you want to ask them for email at the

1262.64

end of the, you know, end of every

1264.559

episode? There's things like there's a

1265.84

lot of details that come out of this.

1267.6

And it actually goes back a little bit

1268.96

to the prior part of of vague or missing

1273.039

requirements is that this discussion,

1274.96

the whole point is to draw some of that

1277.76

out, is to try to find gaps and and

1280.32

figure out where the story is not

1283.679

complete. Where did we miss something in

1286.08

this story that either needs to be its

1288.32

own story or needs to be specified in

1290.64

this one? So again, like I said, that's

1292.96

a lot of places you can go. So

1296.08

buckle up and like pick your spot, pick

1299.039

your race.

1301.12

>> All right. So I I'm going to kind of

1305.039

piggyback off that with some of the uh

1307.6

other discussion items down there

1309.12

because one of the biggest things

1311.84

especially if you're are a test-driven

1314

developer or you drive your applications

1316.72

or whatever you're building through

1318

testing where you put it's user centric

1320.48

it's story based the as a or I want to

1326

really helps you depict how what the

1329.12

story is what is the requirement Because

1332

number one question you have to have as

1333.919

you're going through those is do your

1337.36

stories have multiple meanings and by

1340.799

that I mean if you basically read as a

1344.159

podcaster I want to publish content okay

1348

well what kind of if there are any

1349.679

questions about that if there is an if

1351.52

then you need to break that down into

1354.559

multiple stories you need to do one

1356.08

story for like part one and you need to

1359.039

do one story for part two you you can

1360.72

get kind of break those apart cuz if you

1362.72

keep them too vague, your requirements

1364.48

could go down the rabbit hole later uh

1366.559

and you could end up with a solution

1368.48

that doesn't quite catch all the use

1370.88

cases that you need because you didn't

1372.32

define them clearly. And that gets into

1374.799

uh that invest model. So, you know,

1377.44

independent can it be worked on alone?

1379.919

You know, is this a small project? Do

1381.36

you need to break it out? Um it is it

1383.52

negotiable? Is there room for a

1384.799

discussion? You know, is this for

1388

instance a healthcare application? So

1390.159

there are certain rules and regulations

1392

that you are going to be bound to with

1393.919

the way that you write this application.

1395.679

You can't get around that. You are

1397.44

legally binding to follow those rules.

1399.919

Now does that mean that there's no

1401.52

wiggle room in other parts of the

1402.88

application? No. You can probably do

1405.28

other things that you want within the

1406.799

application. You just have to follow a

1408.559

certain set of guidelines for the

1410.96

government uh or state or country that

1413.36

you live in. Uh value, you know, does it

1416.4

provide business value? This is a very

1418.159

interesting one because just recently we

1421.2

worked on a project where we actually

1423.84

had a feature that the customer asked

1425.84

for that we built because it was

1428.159

supposed to provide them value and then

1430.32

we come to find out later in the project

1432.24

that that value that was so important at

1434.4

the beginning of the project went away.

1436.08

They actually went a different course

1438.08

and had not communicated that. So we had

1440.96

built something of value that was no

1442.559

longer used. So that is time wasted uh

1445.36

on developing what you know getting the

1447.44

product to um the MVP sooner and that

1451.12

also messes with the uh estimatables

1454.08

because can we guess how long it takes?

1456.32

Sure. If the requirements don't change

1458.559

mid-stream, if you can clearly define

1460.96

those deliverables at the beginning, you

1463.12

get those uh requirements and user

1465.12

stories defined well and everyone signs

1467.76

off on them and you do regular

1469.76

checkpoints, you should be on track that

1472.08

okay, yes, we are on track. If something

1474.24

changes, you should know early on how to

1477.52

pivot. Oh, if we change this or add

1480

this, this will change the estimates. uh

1482.88

you shouldn't get to the end and find

1484.159

out that you're a year two years behind

1487.12

because whoops this core feature that

1489.679

absolutely had to be in the application

1491.12

took an additional year and a half to

1492.48

build. So you you these are why these

1496

requirements are so important. Uh small

1498.64

is it man is it a manageable size? Well,

1501.12

if you do your user stories correctly

1503.919

like I said if you break them down to

1505.52

where they have only one meaning it

1507.52

should be small enough. Now that doesn't

1509.6

mean that that particular story is more

1512.24

complex and could not be big. You could

1514

still pick at it and break it down into

1516.559

smaller pieces like Rob said. You know,

1518.559

do we need to send an collect an email

1520.64

at the end of the podcast? Do we need to

1522.96

do certain things? So, you can ask

1524.32

additional questions to whittle that

1526

down smaller. And last of all, I'll

1528.24

circle back around. Is it testable? Can

1530.48

we verify it works? Again, this goes

1532.72

with that test-driven development. So if

1534.32

you think about testing in mind as

1536.48

you're working and building out the

1538.24

requirements for this application,

1539.76

you're going to know that okay for to in

1541.919

order to ensure that this user story

1543.76

works, this is how I'm going to test it

1546.48

from the user's perspective. So when you

1549.279

eventually put it in front of the user,

1551.76

there should be no surprise.

1554.4

I just sort of follow up on that one is

1555.84

that the a part of that is it testable?

1559.12

Is it verifiable? Is that it's basically

1562.559

what does done mean? What does it what

1565.12

does it mean for this to actually be uh

1568.48

achieved or completed? And that often

1570.32

can be a very big issue. So uh I we're

1574.159

wrapping wrapping it up and I guess this

1576.24

part three even though it's not there is

1577.6

a conclusion but part three practical

1579.12

tips for developers discussion on what

1581.12

should developers do when they get a bad

1582.48

user story. Don't just code it. Speak up

1584.32

and ask for clarification. Ask why.

1586.4

Challenge the I want to to get to the so

1588.559

that uh write acceptance criteria.

1590.799

Collaborate with the product manager to

1592.08

find clear testable criteria. Break it

1594.08

down. If a story is too big, propose a

1595.679

way to split it into smaller, more

1597.039

manageable pieces. Discussion item. Pro

1599.279

tips and common pitfalls. Don't get lost

1600.96

in the technical weeds. The story is for

1602.48

the user. The technical details go into

1604.24

the subtasks. Uh example scenarios. Talk

1606.799

through a couple of bad stories and show

1608.48

how to fix them. Bad. Add a contact

1610.4

form. Good. As a potential customer, I

1612.64

want to fill out a contact form with my

1614.159

name, email, and message so that I can

1615.679

get in touch with a company about their

1617.12

services. Tooling mentioned tools like

1619.44

Jira, Trello or ASA and how they can

1621.84

support user stories. I want to keep

1623.84

this one briefly because we are going to

1625.2

we could go very long again. I want to

1628

go with that last one, the good one. As

1630

a potential customer, I want to fill out

1631.6

a contact form with my name, email, and

1633.2

a message so that I can get in touch

1635.279

with the company about their services.

1636.96

Now, I want to just like break this down

1638.88

really quick for like the anatomy of a

1640.88

good story, but then also where the

1642.24

discussion needs to go.

1644.64

It gives the potential customer, which

1646.48

it can have its own little discussion,

1647.76

but then it's it actually says a contact

1649.76

form with name, email, and message.

1651.76

Well, that is maybe something that is up

1655.679

for debate. It's like, okay, well, why

1658.24

why do you want that information? Where

1660.08

where's it going to go? How are we going

1661.52

to do that? And you have with that so

1663.919

that I can get in touch. Well,

1666.88

This would only say that you can get in

1668.4

touch by email. Do you want to actually

1670.4

ask for a phone number? Do you want to

1672

make email required? Do you want to make

1673.36

a phone number required? Do you want to

1675.36

use snail mail? I mean, there's Do you

1677.12

want to use a WhatsApp or you want to do

1679.2

a LinkedIn app? You know, there's the

1681.84

contact stuff in particular can get very

1684.88

complicated very quickly. Can a person

1686.799

have multiple contacts? Do they need to

1688.159

have a preferred contact tact? Do they

1689.76

need to have a contact that only occurs

1691.12

at 2 am and a different one that occurs

1692.559

at 3:00 a.m.? Do they need to have a

1694.24

weekday versus a weekend? Yeah, there's

1696.559

there are a lot of things that can go

1698.159

into this and when you get into the

1701.76

implementation of it, actually building

1703.52

it out, that's part of it. And it is

1705.76

part of it. If you do test driven, then

1707.36

you're going to say, well, okay, can we

1710

contact a customer? Can we, you know,

1712.24

can we repull, can we pull back up their

1714.799

information? Can we see where we sent

1717.44

them a message? Can they reply to us? If

1719.52

things like that, those questions are

1721.6

how we get to the the finality of what

1725.679

it is that we're building to say yes,

1727.36

now we've built something and it has

1728.72

provided that uh the needed

1730.559

functionality. But because we do the so

1732.48

that it really should spark questions of

1735.76

like do you really need that information

1738.08

or if you're saying that don't you also

1740.799

need to do this to get a couple extra

1743.36

little pieces in? Uh closing thoughts on

1745.52

that?

1746.559

>> Yeah. So I'm going to take the first

1747.919

part because we talked about this a lot

1750.08

with our discussions of coder versus

1752

developer.

1753.6

This the first tip that was talked about

1756

with this was you know don't just code

1757.84

it. Speak up and ask for clarification.

1760.72

Before you really work any ticket you

1762.559

should always read through it and make

1764.08

sure that you understand what it is

1766.64

that's being asked. What is the why of

1768.72

the ticket? Essentially what is the

1770.72

acceptance criteria? What am I supposed

1772.48

to be doing with this ticket? Is it all

1774.799

clearly defined? And then finally, make

1777.84

sure that the task itself doesn't have

1781.2

one of those if then stories where it's

1784.72

unclear what it is that you're supposed

1788.32

to do. Implied requirements are not good

1792.159

requirements. Defined requirements are

1794.96

good requirements.

1798.159

>> I will add I will just wrap that one up.

1800.64

add to that is that the make an app that

1803.679

looks like this app is not a good

1806.32

requirement or you know just make it

1807.919

look like this make it work like that is

1810.559

not going to be good enough and so

1812.64

expect that you're going to get some

1813.919

questions. Uh I expect that I'm going to

1816.08

get some emails because not because I

1818.88

insensed people but because I'm asking

1821.039

for emails. Shoot us an email at

1822.64

[email protected]. Let us know what you

1824.48

think. What do you like? What don't you

1825.6

like? Where would you like us to go

1827.039

next? We we've been cruising along. We

1829.52

have another season coming up after, you

1831.279

know, about another half dozen episodes,

1832.799

something like that. And uh we haven't

1835.36

even decided where we want to go next

1836.72

with that one. Uh we are open to uh

1839.679

interviews. We we've got some thoughts

1841.76

on that. And I know I've been teasing

1843.679

that for ever since we last did an

1846.559

interview, but uh it is it is real. It's

1849.44

not just like me just like ripping or

1851.44

anything like that. We may actually get

1853.039

to it. We just haven't haven't followed

1855.12

through yet. So, we'll see how that one

1856.48

goes. Uh we'd love to hear if you want

1858.559

to be interviewed, if you'd like to talk

1859.84

to us, we would love to talk to you.

1862.08

Also, like I said, any suggestions,

1863.84

recommendations, anything like that,

1865.52

email, you can check us out on

1867.36

developer.com. We got a lot of stuff

1868.96

going on there. There's contact us form,

1872.08

uh you any any article, any of where you

1875.44

get our podcast, any podcast episode out

1877.44

on YouTube, any of the episodes there,

1878.88

you can leave comments there and we will

1880.72

get back to you as soon as we can on

1882.24

those. And if you leave us something and

1884.159

you're like, "Hey," or you try to go

1885.679

somewhere, you're like, "We don't find

1886.72

your podcast here, let us know. We'll

1888.159

make sure because we want to be seen

1889.44

there. Want to be there as well, but

1891.76

theoretically, we've been told that

1893.039

wherever you can get podcast, we are

1895.6

there. We're already there. We're

1897.12

waiting for you to listen. So, jump

1898.88

right on. Uh, if you're listening to

1900.559

this, then you can always check us out

1901.679

on the developer channel on YouTube and

1903.279

you actually see us as we go through it

1904.72

and you get bonus episode, bonus

1906.799

information on basically every single

1908.64

episode. Sometimes way more bonus and

1910.88

sometimes a little less. depends on how

1912.48

long we get off the on rabbit trails

1914.88

about this. All that being said, I do

1917.12

want to once again say how much we

1918.72

appreciate you and your time that uh so

1921.279

valuable and yet you're sharing it with

1922.799

us. So, we want to make sure we're

1924.24

giving back and helping to make the most

1926.159

of respecting that time. And I'm going

1928.24

to respect it by saying go out there and

1929.679

have yourself a great day, a great week,

1931.44

and we will talk to you next time. Bonus

1935.679

material. So, let's just go I'll just

1937.36

like read the little conclusion here,

1939.2

the last little bit, and then see where

1940.399

you want to go. Summary to recap the key

1942.24

points. User stories are about

1943.44

conversation and value, not just tasks.

1945.12

Personal challenge. Encourage listeners

1946.559

to actively improve the user stories on

1948.48

their projects this week. Call to

1949.76

action. What are your worst or best user

1951.36

stories? Share them with us on Twitter

1953.039

using developing. Look at even got that

1956

right. Uh mention where to find the

1957.36

podcast and how to subscribe. Um find it

1960.88

with subscri subscribe button. I don't

1962.48

even know how to subscribe. I like I

1963.919

know you go there, you hit subscribe.

1965.519

Whatever your app is, it's got a

1966.72

subscribe button. I'm not going to walk

1968.72

through all of them. And then there's

1969.679

outro music with a little fade out,

1971.519

which

1972.72

>> we do have. Yes, we do have. I was like

1974.72

I was like, we do still have the fade

1976.08

out. I've like this tells you it's like

1978

been a while since I've actually done

1979.84

that side of it. And I actually have I

1982.88

cheat. I have my podcast stuff all set

1984.72

up. So like I skip stuff at the end and

1987.12

the beginning and the end so that I can

1988.32

like move quickly into my next podcast

1990.48

and not listen to intros and outros 15

1992.799

times in a row. So uh there you go.

1995.36

There's some bonus some bonus material

1997.279

right there. great ways to like cut out

2000

the stuff that you hear every single

2001.6

episode once you realize I don't really

2003.6

need to hear that anymore. But that's

2004.72

also bonuses. That's why sometimes I mix

2007.679

stuff up a little bit and throw odd

2009.6

things in. Uh just to make sure that we,

2012.399

you know, give you a little bit of a

2013.519

reason to stick around for a little.

2014.64

It's like a bonus. It's like the bonus

2016.399

at the end of a Marvel movie or

2017.84

something like that is you never know

2019.519

when we'll have a postredit scene. We

2021.44

haven't had one yet, but maybe we will

2022.96

now. All right. Bonus information, bonus

2025.519

material from you.

2026.799

>> Yeah. So, I'm going to check on the

2028.32

personal challenge a little bit here.

2029.76

So, we've talked multiple times, many

2033.12

different conversations. We've got lots

2035.44

of material on the site to check out.

2037.519

But, you know,

2040.159

if you are not writing user stories, if

2042.159

you really aren't sure what a user story

2044.08

is, I want you to go out, take a test

2047.519

that you're working on right now and

2049.919

Google how to write a user story. If you

2052.399

don't know how to do this, just do a

2053.919

quick Google search. There's lots of

2055.679

examples out there. Jira, um, Asana,

2058.72

those tools have, uh, documentation on

2062

their wikis about user stories and how

2063.919

to incorporate them with their

2065.04

applications. But start take the task

2067.76

that you're working on right now and

2070

take it clear. Start with what the

2071.679

problem is. Try to write a user story

2073.919

based on the problem that you would

2075.76

understand and then pick at it. Make

2078

sure it gives you everything you need to

2079.919

actually uh, you know, write the

2082.079

feature. make sure that you can test it

2084.24

and make sure that you have what you

2085.839

need to sign off on it to say that it's

2087.44

done. Essentially, what is the

2089.359

definition of done? So, I would start

2091.599

there. Uh go out, pick something, work

2094.879

through it, and then when you're done,

2097.839

uh see what the difference is compared

2099.68

to what you started with and see if your

2102

job is now easier or harder to get the

2104.32

test done. Or better yet, did what you

2107.119

come up with actually uh match what you

2109.76

started with? or is what you came up

2111.599

with actually what you need to do your

2114.24

work meaning that the initial task was

2116.56

going to send you down the wrong rabbit

2117.68

hole.

2119.28

>> Yeah, I think that's this is one of

2120.88

those places that uh no matter how many

2122.48

times you've built user stories, you can

2124.079

get better every time. Uh I think

2126

there's always something you can learn

2127.2

from them. Yeah, maybe it's like not

2128.88

every user story because you're going to

2130.32

get some that you will be able to just

2131.76

like you'll walk through and go like

2133.359

this is you story, this is your story.

2134.8

This is what it is. This is what you

2135.92

have to do. This is what you have to ask

2136.96

about. This is what you need to answer.

2138.16

These are those things. So there's going

2139.76

to be things like we talk all the time

2140.88

about like a login. You know, if you

2142.96

have a user, do you have one user? Do

2144.8

you have multiple users? How do they log

2146.079

in? What is their username? Like what's

2147.359

the unique value? What do they what if

2148.88

they forget their name? What if they

2150.079

forget their password? How do you do

2151.359

that? Like all of those stories are

2154.079

related to that. And we have them for

2155.359

other things depending on your

2156.8

integrations and all this other stuff

2158.32

that you do. But there's always going to

2160.96

be new stories. There always going to be

2162.88

new

2164.48

flavors of problems essentially you're

2166.079

going to be solving. so that you're

2167.359

you're going to learn how to better ask

2169.2

those questions and flesh out the pieces

2171.68

that you missed last time around when

2173.119

you were building out the user story. Uh

2175.28

that's why we ask for an email every

2177.04

single time basically because that helps

2179.2

us flesh out some of the pieces that we

2181.599

might be missing. But thank you for not

2184.16

missing this episode. Thank you for

2185.839

sticking around to the end and catching

2187.2

all of your bonus material as well. We

2189.119

will be back uh before you know it with

2190.96

the next episode starting out with our

2192.88

general green room stuff and whatever

2194.56

topic we're going to cover next. and

2196.4

then we'll dive right into it because

2198.32

that's what we're here for. Thank you so

2200.32

much for your time. We appreciate you so

2202.24

much and have a great day.

2205.83

[Music]