📺 Develpreneur YouTube Episode

Video + transcript

The Importance of Properly Defining Requirements

2024-04-11 •Youtube

Detailed Notes

In this podcast transcript, Rob and Michael delve into the pivotal topic of defining requirements in software development. They emphasize the significance of clear and detailed requirements, underscoring the potential pitfalls of vague or incomplete requirements. Throughout the conversation, they provide insights, anecdotes, and practical strategies for navigating the complexities of requirement gathering and management. Let’s dive into the key points discussed by Rob and Michael.

The Importance of Clear Communication Rob and Michael stress the importance of clear communication in understanding and defining project requirements. They highlight the dangers of assumptions and ambiguity, advocating for a thorough exploration of the client’s needs and expectations. Drawing from their experience, they emphasize the need for developers to engage in detailed discussions with clients to ensure alignment on project goals and outcomes.

Understanding the End Goal A key topic we discuss is the necessity of understanding a project’s end goal before delving into its requirements. Rob and Michael illustrate the importance of clarifying objectives and envisioning the desired outcome using the tree swing example. This requires us to ask probing questions and seek clarity on client expectations. By doing so, developers can ensure that the final product meets the intended purpose.

Agile Approach to Requirement Management The conversation touches upon the agile approach to requirement management, emphasizing the iterative and adaptable nature of the process. Rob and Michael advocate for regular review and refinement of project requirements, especially in dynamic environments where priorities and circumstances may change over time. They underscore the value of maintaining a flexible backlog and continuously reassessing the relevance and feasibility of pending tasks.

Test-Driven Development and Quality Assurance The discussion expands to encompass the role of test-driven development (TDD) and quality assurance (QA) in requirement validation. Rob and Michael highlight the importance of thinking critically about user interactions and anticipated outcomes when refining project requirements. They advocate for a proactive approach to testing and validation, leveraging QA principles to uncover potential issues and ensure the robustness of the final product.

In conclusion, Rob and Michael emphasize the ongoing nature of requirement management and the importance of continuous improvement. They encourage developers to adopt a proactive mindset, actively engaging with clients and stakeholders to refine project requirements iteratively. By prioritizing clear communication, understanding the end goal, and embracing agile practices, developers can navigate the challenges of requirement gathering and deliver successful outcomes for their clients.

Final Thoughts on Defining Requirements As Rob and Michael wrap up their discussion, they invite listeners to engage with their podcast and provide feedback or topic suggestions at [email protected]. They reiterate their commitment to delivering valuable insights and practical advice for developers, underscoring the collaborative nature of their community. With a focus on continuous learning and improvement, they invite listeners to join them on their journey of building better developers.

By incorporating these key points and insights, developers can enhance their approach to requirement management and contribute to the success of their projects. Whether adopting agile methodologies, leveraging TDD principles, or prioritizing clear communication, a proactive and iterative approach to requirement definition is essential for delivering high-quality software solutions.

Additional Resources for Defining Requirements * Setting Realistic Expectations In Development - https://develpreneur.com/navigating-realistic-expectations-in-software-development/ * Creating Your Product Requirements - https://develpreneur.com/product-requirements/ * Changing Requirements – Welcome Them For Competitive Advantage - https://develpreneur.com/changing-requirements-welcome-them-for-competitive-advantage/

Transcript Text
[Music]
all right what do you want to go what
you mentioned something so Works being a
pain so yeah so uh since we did just
talked about branding
and
customer let's look
at um defining requirements or
understanding requirements because the
biggest problem I've been struggling
with this week especially is I've been
given two tickets to do that literally
are uh image size is incorrect on report
nothing else in the ticket other ticket
is getting an Excel uh styling exception
with load testing that's it that's all
that's on the ticket just the title
nothing in the requirements what am I
supposed to work with how do I Define
the
problem and that's been a huge struggle
it's like you know you can tell someone
to go dig a hole but if it's not in the
right spot you'll tell them to dig it
over here well eventually your yard ends
up looking like swiss cheese right it's
and the hole is nowhere near where you
want it it's like that movie Holes it's
like you just keep digging holes um but
I think that would be a good topic how
would we Define that or what do you
think it should be I think that's that's
not bad um I think it is something that
it is definitely something that we've
run into all the time and it's figuring
out how to handle that um you the good
news is that you've got that is actually
a step I think ahead of a lot of people
there's a lot of developers out there
they get that ticket and they just like
okay I'm going to go work on it and then
you know a week later I see this in
Sprints all the time it's like oh yeah
I'm going to take these on and then they
get to it and they read it and they're
like well this doesn't have anything
useful or they'll build it and it has
because they'll see a title like yeah
this is what I'm going to do and you're
like wait a minute that's not at all
what you know what it was what needed to
be
done and now you've wasted your time and
you got to go back and sometimes it's
it's you have to you know uncode stuff
or basically recode entire sections pull
stuff out lots of issues um so I think
there I think that's the
whole how do we deal with requirements
and how do we go back and ask for more
requirements uh it's I think it's a
pretty good topic for us so if nothing
else we'll give it a shot um I'm going
to take 30 seconds I'm going to refill
my water though those of you that are
there play soliter for 30 seconds
and for those of you watching the bonus
content these kinds of questions that U
I'm bringing up or these
problems not only is it a problem where
you might get the wrong solution
architected but you may if you're paying
contractors or you're paying people
hourly you have to figure out the time
and the cost that if you just give
someone a ticket to do or just some
baseline requirements it could cost you
a lot of money to go have them build
something if you don't have anything
defined
properly and
so let's dive in well hello and welcome
back we are continuous season talking
about problems we're just like moaning
basically about work but not really
because we're also talking about how to
advance your side hustle Advance your
career Advance some of the problems that
you're running into this time in
particular we're going to talk about
requirements we're going to get back
into this discussion we've touched on a
few times um I think even already in
this season but want to get dig back in
because it is painful it is something
that can be a pain in the butt to deal
with and you need to be sure that you
you need to be comfortable getting the
right requirements and you need to be
detail oriented enough to make sure that
you're looking at a whether it's a
ticket whether it's a a design document
requirements document depending on how
things are delivered to you that you are
looking at that and digging into the
details and thinking through it and
where there are potential assumptions
you ask questions about it and first
before we get too far into it I'm Rob
I'm GNA invite uh just welcome you back
Mike we've been here the whole time but
uh throw this over to you you can
introduce yourself a little bit and we
will dive into our requirements
discussion sure um I'm mikae milash I'm
founder of Envision QA and co-founder of
develop prur and like Rob we're both
developers we've been in the industry
for many years and requirements is a key
issue that we constantly run into when
working on software or even testing and
one of the biggest problems we have is
lack of requirements or insufficiently
defined tasks that are given to us that
essentially could cost the company time
money and have an insufficient product
be
developed and I think that's where we
want to start is and the funny thing I
saying about this is we did a season way
back um way back it's been a couple
years I forget what season it was but it
was a season of mistakes it was
basically walking through it was
learning from mistakes and one of the
things that we got at the end when we're
sort of summarizing whatever it was the
30 episodes of different problems and
mistakes that have been made one of the
things that came around was
communication was just being clear on
what building and the customer having
that drawing out of them clearity on
what they need because it is as we've
mentioned way too often there's people
are like hey I want to build Airbnb for
you know pet houses or something like
that whatever it is it's just so it's I
want Uber for tricycles whatever it is
is they've got something that exists and
it's a good idea in a sense because like
hey let's take this thing that's already
there let's flip it on its head a little
bit and we're going to Rebrand it in
this other direction because that's not
being served awesome but it's the then
they come to you and say well just just
look at Airbnb and then bake something
like that it's like no that's you it's
like Google just make something like
Google it's like okay I can write a page
where you're gonna you know put
something in there and it'll give you
some results that is not Google behind
the scenes there is insane amounts of
stuff behind there so we need to one
recognize that and two talk to a
customer about that and instead of the
what's so off when we get the
requirements are like well you know just
do it like this or it just looks like
that is actually get into the okay this
is what you're showing me let's walk
through this here's where we start how
does somebody get here once they there
what do you envision them doing okay
when they do that should there be a
notification should there be a warning
what if they do it wrong and just follow
through
that and then what kind of approach is
so that whenever they tell they're like
okay we're going to do this okay and
then what happens and then what happens
and then what happens what if this
happens
it's that conversation it's building out
that it's World building in a sense but
it's just for their problem and their
solution and talking through what those
requirements are and you know really
starting to draw that information out
because as Michael said if you don't you
can go on a very different Journey than
they need you to go on and it can be
very expensive it can waste their money
it can waste your time it can cause bad
blood between you there like there's so
many challenges that can come from not
having the requirements now I'm going to
throw this to you Michael but and I'm
going to come back and I do want to talk
about what happens when that like when
it's intentional that you don't almost
and where you can go with that but uh
first let's let's stick to the that
requirement discussion that
conversation so the way you laid it out
is typ the typical way we as developers
or Engineers go about or should be going
about defining the requirements of the
ticket or at least reviewing what it is
that the customer wants to make sure
that what is being built meets their
requirements however from a testing
perspective we should take that step one
step further
and then actually ask why are we doing
this why is this needed and if you ask
those questions you could even determine
that oh what we're trying to build isn't
even what the customer wants um because
I've run into situations where like the
business owner or the project owner or
even the customer thinks they want one
thing but it's something completely
different so the requirements for what
you're building yes may be flushed out
may be right or may need some additional
tweaks but they may not even be the
right requirements for the solution you
might need something totally different
so there's a couple things to kind of
unpack there so one uh understanding
what the end result is not the end
result from the task but what is it that
the customer or the requester wanted
before the ticket was created you know
what is it that they are expecting to
come out of this change walk back from
that then go to the requirements and say
okay this is what the end user wants
this kind of goes back to that tree
swing uh model that's all over the web
you know customer wants a tree swing so
you go back and say okay so what is it
that you want to do well okay I want to
be able to sit on a tire on a swing and
just swing underneath a tree now the
requirements that could have come to the
developer could have been okay we need
to put a uh swing in a tree well what
kind of Swing you know is it a typical
uh two ropes and a board is it a tire
and uh or a string in a tire or just a
rope right there there are three
possible implementations based on a very
vague requirement so you have to really
flush that out a little bit more now in
the real world typically we're under
deadlines and we've or sales or
marketing has already committed us to x
y and z
here's the requirements run oh by the
way it's due next week you've got to
rush to get those changes out the door
that can lead to unintentional
consequences where what you're given
isn't again isn't what the customer
wants so that's one thing I would really
stress is not only look through each
step as to what is in the ticket but
make sure you understand what the ask is
of the ticket or the requirements that
are coming to you yeah and I think
that's why you that discussion around
requirements even is and minimize
assumptions is talk to people about what
what is that you want done what is the
and it really goes back to what is the
problem that do you think this is going
to solve what is the issue that we need
to deal with even with bugs I mean we
get this all the time and we're usually
better with bugs because somebody will
say well it doesn't work okay that
doesn't help me what doesn't work how
did you get there what does working look
like and when it works what do you
expect you know what is the expected
outcome it really goes to the why do you
think this doesn't work or why do you
state it doesn't and what does a
solution what does fixed look like when
it's fixed or repaired or corrected or
working or whatever it is what does that
look like to you to make sure that we
can get from where we are to where we
want to be and even if you're in even if
you're and I think even more so if
you're under deadlines and Under
Pressure it is so much more important to
start with
let's dig into this like a lot of times
it's like sit down talk through the
tickets the requests the requirements or
whatever it is and really get into that
conversation and I know that
there's you guys are prob rolling your
eyes because there are those places
where you just get stuff the CEO comes
in and it's like hey here what I need
you to do and I have to have it next
week because I got a sales call cool
awesome you're going to have to give us
more and he's going to be busy or she's
going to be busy and they're going to
run off and be like no you guys just go
make it happen it's like well no either
you need to talk to us about this or we
need to have access to the customer
you're selling it to or something like
that because
then we may not have enough time to
build this we may not have what we need
but there are opportunities like there's
triage there's
MVP um I will I go back the first time I
got my name in a book as a author of you
know of like software and stuff like
that the original product we built and
it was two of us
basically we got the idea on like 2 pm
on a Friday afternoon they were going to
a salespeople were going to a conference
they were leaving that night they were
going to have stuff all day booths
Saturday and Sunday and we worked
through the night threw something at
them based on this this New Concept and
then they gave us feedback through the
day we gave them updates we did it again
Sunday and we had had a really like big
on the M MVP Maybe by you know that
Monday but it was basically we were it
was really more like duct tape and
bailing wire but it's also get Brink
comes to the idea of building a
clickable demo of some sort something
that you can put in front of that CEO
that customer that whoever it is and say
this is what this is going to look like
before you've invested too much time
into
it give them what you can so they have
an they have a sense so you can set the
expectations of this is what we're
building this is what you're going to
end up with so they can either say yeah
that looks great or no I've got this
whole other thing that I want to be done
and then say okay well work with them
within that so it's not and sometimes it
is I think we push back too much because
it's it's a we don't want to do we we
are too strongly against the approach
that they're taking and so we we we sell
it as that it comes across as that it
sort of is a us just poking holes in
their their requirements but really we
need to be pushing towards instead of
pushing back is dragging them forward
and saying okay I'm hearing these things
so how about we do this how about we do
that hey we can do this we can do that
we can sometimes it's like hey we cannot
provide you this but we can go provide
you this other thing that gives you
essentially the same solution the one I
think I've mentioned before that is like
the the
quintessential project gone bad because
somebody thought they needed they they
were too much into the implementation
was we spent I think a month building a
solution to pull down this was dealing
with like hundreds of thousands millions
of rows on a web page and being able to
like you have to be able to page through
them and you had to be able to page
through them quickly the page has to
come up quickly and like all the time a
100,000 a millon rows there's just to
display those on a web page is just a
lot of stuff and even if you're paging
it whatever you're doing somewhere along
the way you're having to pull all that
data into the page and you whether it's
going back and forth however you do it
and it was just it was not fast enough
there was nothing close to it and we
went around and around and around and
finally got down like really and part of
it was because it was under under
pressure so initi it's like okay we're
just going to get it done we're going to
make it work we're going to make it work
and finally it's sort of like wait a
minute back this
up why do we need to present a 100,000
rows to a
customer and it finally got to well we
need to do is we need to get to the last
page and have at the bottom of that page
count of the number of rows so what they
really needed they didn't care about any
of the detail they cared about that one
number it's like why don't we just give
you a summary report that's one page has
that number and like three others like
oh you can do that yes we can do that
and it's so much easier so much faster
and it's it is it's somebody was so
focused on this is what we need and this
is how it needs to look and it was just
this is where you are a better developer
instead of just a coder this is where
you become a developer and you're not
just writing code is instead of just go
do it as you used earlier that you know
dig a hole okay dig a hole over here oh
wait that's I want the hole there and
the next thing you just dug a lot of
holes instead before you get into
digging holes and tear up somebody's
yard you okay why are we digging this
hole
because we want to get to a well okay
well let's first make sure that when we
dig a hole we're going to actually hit
something that's got water you or
whatever it happens to be those are the
things that we need to push back
particularly as we get into you know
when we're starting out we're paid to
just write code basically we're not paid
some people think we are but basically
we're you know we're paid pennies and
it's basically to go right Cod but as
you get further into your career you are
paid to be even if you're an employee
like essentially a consultant a somebody
that is bringing something to the table
other than writing code that you're
actually able to push stuff back and say
hey yeah that's an important problem to
solve let's think about solving it in
this different way because it would Prov
we can get you solution faster or better
or whatever that happens to be thoughts
on
that yeah I run into that a lot and I
agree this is one of those things where
if you're just starting out as a coder
you're typically just going to jump in
and you're going to try to do the
solution you're going to try to do
something to make it work uh more
midlevel you're going to be asking a lot
more questions but typically you'll
still probably start and then have
questions as you go along um and more at
the higher end the engineer the
architect levels you're going to be
asking lots of questions before you
begin with this in mind though with a
lot of these software approaches
especially with agile where you go
through the process of kind of pointing
tickets ahead of time you review tickets
uh in refinement but you don't
technically get to those tickets for a
month or two or even six months down the
line and your requirements can get stale
now they may be flushed out at the
beginning but how what is your take you
know how would you handle the approach
of taking this ticket that we already
have and we have flush CH requirements
but maybe there's been some additional
changes and other tickets that now make
that one obsolete or whoops now it's not
going to work the way we anticipated it
that's the whole point of really to me
that's like really the point of agile
and having uh backlogs and things things
like that is because you you do you
rroom you don't just like pull tickets
when you're grooming you're actually
reviewing tickets in in the agile
approach and let's just stick with that
as an example is that you're looking
back through these and these could have
been put a year ago and I have been in
those situations on more than few times
where you've got something that's been
sitting there for a long time like
months maybe a year or more and now
we're finally getting this ticket and
we're like okay this doesn't make
sometime a lot of times actually it
doesn't make sense anymore because
things have changed so much that it's
either sometimes it doesn't even make
sense at all so you just throw it out
and sometimes if you've got a good scrum
master or product owner than that
they're in their interactions those
things will just disappear when those
things are no longer
needed but sometimes they needed but
it's very different from the original
description definition and
requirements and in those cases is it
goes back to just like you would with
any other one you're going to look at
that and say okay you're telling me that
we need to do ab C and D cool okay a I
get but b c and d don't make any sense
in what we have so how do you see that
working in our current environment you
know it's those kinds of question it
goes back to ask those questions and
again then you don't have to go back and
you don't want to I don't think you
don't want to go back to the the backlog
tickets every time and keep updating
those but when you get to point where
you're going to pull one forward that
should be part of the discussion is is
this still valid if it is are there
changes to it are there additions and
and keeping those fresh basically
particularly if you are moving along in
an agal approach where things are
changing as you go now if you've built
something you're more like a waterfall
and it's been very static and everything
was laid out beforehand then you may not
have to worry as much but somewhere
along the way you do still need to do
that and I would always do
it as you um like as a just in time kind
of approach like I'm going to will work
on this ticket before I'm going to work
on it I'm going to review it I'm going
to ask my questions about it because
even if the requirements haven't changed
your understanding may have change and
so the questions you have may be very
different than you would have had a
month ago six months ago or a year ago
right and it's kind of interesting
because this kind of gets into an
approach I've wondered for a while
should you be putting tickets out there
or defining requirements for a coder or
developer to work on six months out a
year out should you keep that as an epic
at a high level and then when you get
time to actually sit down and work on it
yes you flushed out the high level
requirements but then you actually get
into to the technical requirements at
that point and then you flush them out
there's been a lot of situations I've
been in where 6 months ago we plan
everything out for the year we plan okay
this Project's coming here this
Project's coming here here's all the
requirements it's all flushed out and
then six months later we have to do it
all over again because the whole project
has changed or we abandoned all that
work because nothing is going to we've
gone a totally different
direction or the other problem I've run
into in some situations is where the
group of people I'm working with or the
project I'm working on has now changed
hands three four five six times and the
people that actually wrote the
requirements or defined it aren't there
anymore so you have no one to go ask the
questions of other than to try and find
someone to go back and talk to the
customer and it can be very frustrating
and very hard so we have to make sure we
ask those questions and flush them out
but it it's just I'm curious on your
point you know should we be defining
tickets so far out out or should we only
really be refining tickets that we're
going to pull into the current Sprint or
within a Sprint or two I think you do I
I think there's a lot of value in doing
it from the start even like when you're
because just about everybody does that
you start a project and you just like
blush out a bunch of tickets like here's
a bunch of things we're going to need to
do and if you can while you're in that
initial design Visionary mode however
you want to look at it when you're
initially put some of that stuff
together or even along the way I think
it is very particularly if you want
agile to be its most valuable to your
organization is when those ideas come up
of like hey here's a requirement flesh
it out as best you can and put it in
into the backlog because what you want
to do is cover hey remember we talked
about this and if you've got notes about
it it's going to help that much more in
particular if you have a great idea
you're like this is a feature we need to
have and he's like yeah that's a great
feature and then you leave the company
six months later but they don't actually
implement it until a year after that at
least your ticket has survived and
you've got enough details that either
you can go to everybody you know the
rest of the group or how whoever it is
and say hey here's something we we had I
don't really get it can we talk through
it and maybe it it comes real or it may
be something you look at you're like
okay we don't get it we don't understand
it it doesn't make sense anymore just
toss it because it's at the end of the
day that's the thing is you can just you
can always throw over requirement out or
you can just kick it down the road and
say you know what we don't get it right
now we'll deal with it later but when
you're working it yeah you want it to be
fresh but I think that I think it is
very useful and it is probably helpful
to all of us to have something where
we're like noting those little ideas as
we go and making sure as best we can
we've got some details around it so even
ourselves we can look at it six months
from now and go what the heck was I
thinking oh yeah this is where it would
do this and then it would do that we
have that information and have tracked
it so that we can help ourselves down
the road as opposed to okay we're just
gonna we're going to just focus on the
near the here and now and all that other
stuff we're not going to bother with
that's like even when it's a
non small team non-agile kind of
approach I work with customers all the
time where it's like hey this is you
know version one or an MVP or something
like that and we have this ever growing
section that is in the future future you
know future phase next phase whatever
and we just throw stuff in there because
like oh we do want to do this but we
really don't know what it's going to
look like we really don't want to spend
time on it now because we may not get
there particularly in an MVP World maybe
you go you build that mvp you get it out
in front of customers and you know
there's a lot of stuff you want to do to
like really help them but first you want
to make sure those customers exist and
they're willing to pay for it so there's
there is a lot that goes into that but
the short answer even though I know I've
already blown that time out the short
answer
is yes you want to track every one of
those things put what you can into it at
the time but also be careful about
getting too deep into the analysis side
of it don't put implementation details
in things like that
instead you if it's something you know
that's going to go to the backlog just
give yourself enough information or for
somebody else to understand where you're
going with it so then they can find a
way to take that that story again it's
that story that why that that feature
and build it into whatever this thing
looks like six months or a year down the
road does that make sense yeah exactly
and that was kind of where I was hoping
you were going to go with that because
one of the things I've seen in some of
the places I've worked
is some of the project managers or the
uh business will kind of backfill the
backlog with
potential projects that are coming down
the line and they are very
highly um Loosely defined tickets and
yeah we flush them out but then we don't
touch them for 6 months we talk about it
again but then oh we don't touch it for
another
month what I've seen and this is I don't
know if you've seen this too but
typically in most agile Sprints that
I've worked in in a good shop you're
always reviewing or re-reviewing what
you're going to pull in for the next
Sprint or essentially the top five items
in the top of your back log are always
fresh and have pretty much the mostly
defined requirements that you need yes
if you go to the backlog and you pull it
out take a second read through the
ticket read through the requirements
make sure it still makes sense make sure
that what you're currently working on
didn't change
it typically my rule of thumb every
ticket is
wrong it just my rule fell it's the
tester to me I look at something in and
I have to immediately know how is the
user or how is this uh ticket supposed
to work how am I supposed to touch it
how am I supposed to click it how you
know what do I do with this ticket
what's the outcome you know not
necessarily black box but you know if I
give it a a and b i get C okay great
that tells me specifically if I'm doing
this I get this which leads to you know
how you test uh driven development these
tickets but if you think that way when
you're refining the tickets and you're
looking at those requirements no matter
where you're at in this process you
should be okay and if you do it first
you're going to spend less time less
headaches and not bang your head against
the wall uh on tickets where essentially
you're my computer doesn't work well why
doesn't it work you know nothing's in
the description but when the person uh
or support finally calls a customer back
says okay what's the problem uh and
after spending 1 2 3 hours on the call
with them you find out well their
computer doesn't work because they're in
the middle of a
blackout yeah you've gota yeah you've
always got to pick a little bit outside
of the box when you're when you're
tracking some of those things down but I
think it is it's it is a that is a nice
thing about test driven development and
even having where it is useful for
developers to have any kind of like QA
testing kind of background because it
does help us to to Think Through okay
what are what are the potential inputs
and what are the outputs based on those
and what are the exceptions and what are
the errors and what are the message and
asking those kinds of questions because
that's going to almost that's almost
going to apply to everything you ever
build and to some level and I think just
getting those questions often starts the
conversation to get deeper into it if
it's a if it's a a ticket an issue or
you know a problem you're solving that's
at a bigger scale there's going to be
all these little ones are going to end
up being that are going to grow out of
that
conversation slight segue I guess is
that this has grown out of just a couple
of very simple questions and
conversations but we're going to wrap
this one up because hey we're going to
try to respect your time as best we can
uh as always shoot us some questions if
you have any at info developer.com check
out the site U subscribe wherever you're
you have podcasts that you're listening
to all of the different things out there
we're out there somewhere go find
develop andur or building better
developers depending on uh we use that
because some of these things that are
voice activated they don't understand
the word develop preneur as well as they
do billing better developers that's why
well that's why we converted our tagline
to the the name at one point that being
said go out there and have yourself a
great day a great week and we will talk
to you next time and for the rest of you
thank you so much for hanging out this
has been a uh you know again we're going
down some rabbit hole and we've warned
you that this would happen that these
are the kinds of conversations we have
and I think they're probably the
conversations you have as well is that
you know sometimes we just start talking
about problems and we have more problems
it's just like requirements you have a
requirements you start talking about it
and now they have more requirements and
it starts to you know sort of snowball
until you get to the point where you
finally start hitting leaves at the end
of all of those little you know branches
that you've hit from off of all of your
requirements so I think we will wrap
this one up I want thank you again for
your time check us out subscribe say hi
leave comments all that good stuff
because that just helps us give better
comment uh content and just you know
better copy and such for you as well so
you guys as well go out there have
yourself a great time and we will see
you on our next episode as we're just
going to continue cranking through uh on
the podcast side we are cranking through
season
21 and uh we're just moving along those
episodes and then here we're just going
to continue on the the YouTube side
continue to crank these things out and
periodically I promise I know I've
mentioned it before and I have not in a
while put out some of the tutorials but
we will return to those uh it's just
been a a little bit busy time and we're
hoping to settle that down a little bit
and throw a couple of those little
tutorials out again if you have
questions comments or requests for
tutorials in particular anything related
to some of the stuff we've done in the
last now couple of years my SQL SQL uh
in general Maria DB python Java let us
know and we will uh we'll see what we
can do to help you out and throw a
little tutorial together or we may have
some fun exploring whatever that
technology is as well uh go out have
yourself a great time and we will talk
to you next
[Music]
time
Transcript Segments
1.35

[Music]

27.92

all right what do you want to go what

30

you mentioned something so Works being a

32.119

pain so yeah so uh since we did just

36.8

talked about branding

38.559

and

40.28

customer let's look

43.36

at um defining requirements or

47.52

understanding requirements because the

48.96

biggest problem I've been struggling

50.879

with this week especially is I've been

53.84

given two tickets to do that literally

56.719

are uh image size is incorrect on report

60.92

nothing else in the ticket other ticket

63.559

is getting an Excel uh styling exception

68.32

with load testing that's it that's all

71.32

that's on the ticket just the title

73.119

nothing in the requirements what am I

75.28

supposed to work with how do I Define

76.84

the

77.72

problem and that's been a huge struggle

80.479

it's like you know you can tell someone

82.119

to go dig a hole but if it's not in the

84.88

right spot you'll tell them to dig it

86.079

over here well eventually your yard ends

88.2

up looking like swiss cheese right it's

90.24

and the hole is nowhere near where you

91.92

want it it's like that movie Holes it's

93.799

like you just keep digging holes um but

97.079

I think that would be a good topic how

99.52

would we Define that or what do you

101.28

think it should be I think that's that's

104.52

not bad um I think it is something that

107.719

it is definitely something that we've

108.88

run into all the time and it's figuring

112.24

out how to handle that um you the good

115.399

news is that you've got that is actually

117.6

a step I think ahead of a lot of people

119.36

there's a lot of developers out there

120.64

they get that ticket and they just like

122.84

okay I'm going to go work on it and then

125.479

you know a week later I see this in

127.119

Sprints all the time it's like oh yeah

128.44

I'm going to take these on and then they

130.319

get to it and they read it and they're

132.239

like well this doesn't have anything

133.28

useful or they'll build it and it has

135.64

because they'll see a title like yeah

136.76

this is what I'm going to do and you're

138.48

like wait a minute that's not at all

141.2

what you know what it was what needed to

143.519

be

144.28

done and now you've wasted your time and

147.04

you got to go back and sometimes it's

149.36

it's you have to you know uncode stuff

151.92

or basically recode entire sections pull

154.48

stuff out lots of issues um so I think

157.959

there I think that's the

160.959

whole how do we deal with requirements

163.12

and how do we go back and ask for more

166.159

requirements uh it's I think it's a

168.08

pretty good topic for us so if nothing

171.8

else we'll give it a shot um I'm going

174.28

to take 30 seconds I'm going to refill

175.48

my water though those of you that are

177.319

there play soliter for 30 seconds

181.08

and for those of you watching the bonus

183.319

content these kinds of questions that U

186.48

I'm bringing up or these

188.76

problems not only is it a problem where

192.08

you might get the wrong solution

193.519

architected but you may if you're paying

195.84

contractors or you're paying people

197.319

hourly you have to figure out the time

200.12

and the cost that if you just give

203.2

someone a ticket to do or just some

206.08

baseline requirements it could cost you

208.76

a lot of money to go have them build

211.28

something if you don't have anything

213.12

defined

216

properly and

218

so let's dive in well hello and welcome

221.319

back we are continuous season talking

223.879

about problems we're just like moaning

226.879

basically about work but not really

228.56

because we're also talking about how to

231.04

advance your side hustle Advance your

233

career Advance some of the problems that

234.4

you're running into this time in

236.76

particular we're going to talk about

239.079

requirements we're going to get back

240.48

into this discussion we've touched on a

242.599

few times um I think even already in

245.04

this season but want to get dig back in

247.84

because it is painful it is something

250.68

that can be a pain in the butt to deal

252.439

with and you need to be sure that you

255.64

you need to be comfortable getting the

257.16

right requirements and you need to be

259.32

detail oriented enough to make sure that

262.28

you're looking at a whether it's a

263.96

ticket whether it's a a design document

266.8

requirements document depending on how

268.28

things are delivered to you that you are

270.44

looking at that and digging into the

271.919

details and thinking through it and

274.4

where there are potential assumptions

276.84

you ask questions about it and first

280

before we get too far into it I'm Rob

282.199

I'm GNA invite uh just welcome you back

284.24

Mike we've been here the whole time but

286.84

uh throw this over to you you can

288.039

introduce yourself a little bit and we

289.44

will dive into our requirements

291.08

discussion sure um I'm mikae milash I'm

294.36

founder of Envision QA and co-founder of

296.72

develop prur and like Rob we're both

299.8

developers we've been in the industry

301.199

for many years and requirements is a key

304.96

issue that we constantly run into when

307.36

working on software or even testing and

310.759

one of the biggest problems we have is

313.199

lack of requirements or insufficiently

315.88

defined tasks that are given to us that

320.479

essentially could cost the company time

322.919

money and have an insufficient product

326

be

327.6

developed and I think that's where we

329.28

want to start is and the funny thing I

332.52

saying about this is we did a season way

334.96

back um way back it's been a couple

338.24

years I forget what season it was but it

340.919

was a season of mistakes it was

343.72

basically walking through it was

344.919

learning from mistakes and one of the

347

things that we got at the end when we're

349.16

sort of summarizing whatever it was the

350.919

30 episodes of different problems and

353.28

mistakes that have been made one of the

355.08

things that came around was

356

communication was just being clear on

359.319

what building and the customer having

362.479

that drawing out of them clearity on

364.96

what they need because it is as we've

367.599

mentioned way too often there's people

369.4

are like hey I want to build Airbnb for

373.96

you know pet houses or something like

375.919

that whatever it is it's just so it's I

377.88

want Uber for tricycles whatever it is

381.039

is they've got something that exists and

384.24

it's a good idea in a sense because like

385.88

hey let's take this thing that's already

387.08

there let's flip it on its head a little

388.52

bit and we're going to Rebrand it in

390.44

this other direction because that's not

392.16

being served awesome but it's the then

395.24

they come to you and say well just just

396.84

look at Airbnb and then bake something

398.4

like that it's like no that's you it's

400.599

like Google just make something like

401.84

Google it's like okay I can write a page

403.36

where you're gonna you know put

404.88

something in there and it'll give you

405.919

some results that is not Google behind

408.4

the scenes there is insane amounts of

411.16

stuff behind there so we need to one

414.8

recognize that and two talk to a

417

customer about that and instead of the

420.319

what's so off when we get the

421.36

requirements are like well you know just

422.599

do it like this or it just looks like

424.199

that is actually get into the okay this

428.759

is what you're showing me let's walk

431.319

through this here's where we start how

434.08

does somebody get here once they there

436.96

what do you envision them doing okay

438.96

when they do that should there be a

440.36

notification should there be a warning

442.08

what if they do it wrong and just follow

445.12

through

446.36

that and then what kind of approach is

449.16

so that whenever they tell they're like

450.52

okay we're going to do this okay and

451.96

then what happens and then what happens

453.96

and then what happens what if this

455.84

happens

456.919

it's that conversation it's building out

460

that it's World building in a sense but

462.879

it's just for their problem and their

466.52

solution and talking through what those

469.879

requirements are and you know really

471.96

starting to draw that information out

473.919

because as Michael said if you don't you

477.56

can go on a very different Journey than

479.56

they need you to go on and it can be

480.919

very expensive it can waste their money

482.36

it can waste your time it can cause bad

484.68

blood between you there like there's so

488.199

many challenges that can come from not

492.319

having the requirements now I'm going to

494.56

throw this to you Michael but and I'm

495.72

going to come back and I do want to talk

498.12

about what happens when that like when

500.96

it's intentional that you don't almost

503.12

and where you can go with that but uh

505.759

first let's let's stick to the that

508.96

requirement discussion that

511.919

conversation so the way you laid it out

515.2

is typ the typical way we as developers

520.44

or Engineers go about or should be going

524

about defining the requirements of the

526.36

ticket or at least reviewing what it is

529.12

that the customer wants to make sure

530.92

that what is being built meets their

533.88

requirements however from a testing

536.2

perspective we should take that step one

538.64

step further

540

and then actually ask why are we doing

542.36

this why is this needed and if you ask

546.399

those questions you could even determine

548.44

that oh what we're trying to build isn't

550.6

even what the customer wants um because

553.279

I've run into situations where like the

555.48

business owner or the project owner or

557

even the customer thinks they want one

559

thing but it's something completely

561.12

different so the requirements for what

563.12

you're building yes may be flushed out

565.959

may be right or may need some additional

568.399

tweaks but they may not even be the

570.36

right requirements for the solution you

573.16

might need something totally different

575.079

so there's a couple things to kind of

577.04

unpack there so one uh understanding

581.04

what the end result is not the end

584.2

result from the task but what is it that

587.16

the customer or the requester wanted

591.399

before the ticket was created you know

593.2

what is it that they are expecting to

595.04

come out of this change walk back from

598.399

that then go to the requirements and say

600.68

okay this is what the end user wants

603.959

this kind of goes back to that tree

605.24

swing uh model that's all over the web

607.76

you know customer wants a tree swing so

610

you go back and say okay so what is it

612.68

that you want to do well okay I want to

614.76

be able to sit on a tire on a swing and

617.92

just swing underneath a tree now the

621.36

requirements that could have come to the

624.12

developer could have been okay we need

626.72

to put a uh swing in a tree well what

630.16

kind of Swing you know is it a typical

632.76

uh two ropes and a board is it a tire

635.48

and uh or a string in a tire or just a

638.68

rope right there there are three

641

possible implementations based on a very

644.279

vague requirement so you have to really

647.839

flush that out a little bit more now in

651.56

the real world typically we're under

653.32

deadlines and we've or sales or

656.2

marketing has already committed us to x

658.68

y and z

659.839

here's the requirements run oh by the

662.16

way it's due next week you've got to

664.56

rush to get those changes out the door

668

that can lead to unintentional

670.04

consequences where what you're given

672.12

isn't again isn't what the customer

673.72

wants so that's one thing I would really

676.92

stress is not only look through each

679.92

step as to what is in the ticket but

682.04

make sure you understand what the ask is

684.8

of the ticket or the requirements that

686.32

are coming to you yeah and I think

688.639

that's why you that discussion around

690.32

requirements even is and minimize

692.88

assumptions is talk to people about what

695.519

what is that you want done what is the

697.639

and it really goes back to what is the

699.04

problem that do you think this is going

700.32

to solve what is the issue that we need

702.6

to deal with even with bugs I mean we

705.12

get this all the time and we're usually

706.6

better with bugs because somebody will

708.44

say well it doesn't work okay that

711.04

doesn't help me what doesn't work how

713

did you get there what does working look

715.12

like and when it works what do you

716.639

expect you know what is the expected

718.079

outcome it really goes to the why do you

721.2

think this doesn't work or why do you

722.959

state it doesn't and what does a

726.519

solution what does fixed look like when

729.279

it's fixed or repaired or corrected or

731.279

working or whatever it is what does that

733.199

look like to you to make sure that we

735.04

can get from where we are to where we

737.68

want to be and even if you're in even if

741

you're and I think even more so if

742.639

you're under deadlines and Under

744.8

Pressure it is so much more important to

748.04

start with

749.88

let's dig into this like a lot of times

752.32

it's like sit down talk through the

756

tickets the requests the requirements or

758

whatever it is and really get into that

761.839

conversation and I know that

764

there's you guys are prob rolling your

765.88

eyes because there are those places

767.199

where you just get stuff the CEO comes

769.24

in and it's like hey here what I need

771.68

you to do and I have to have it next

772.76

week because I got a sales call cool

775.92

awesome you're going to have to give us

777.959

more and he's going to be busy or she's

779.44

going to be busy and they're going to

780.24

run off and be like no you guys just go

782.04

make it happen it's like well no either

784.839

you need to talk to us about this or we

786.68

need to have access to the customer

788.32

you're selling it to or something like

789.72

that because

791.44

then we may not have enough time to

793.839

build this we may not have what we need

796.16

but there are opportunities like there's

797.639

triage there's

799.279

MVP um I will I go back the first time I

802.88

got my name in a book as a author of you

806.839

know of like software and stuff like

808.48

that the original product we built and

811.36

it was two of us

813.639

basically we got the idea on like 2 pm

817.44

on a Friday afternoon they were going to

820.199

a salespeople were going to a conference

822.079

they were leaving that night they were

823.32

going to have stuff all day booths

824.76

Saturday and Sunday and we worked

827.32

through the night threw something at

829.44

them based on this this New Concept and

832.8

then they gave us feedback through the

835.16

day we gave them updates we did it again

837.56

Sunday and we had had a really like big

842.72

on the M MVP Maybe by you know that

845.399

Monday but it was basically we were it

846.8

was really more like duct tape and

848.56

bailing wire but it's also get Brink

851.6

comes to the idea of building a

853.199

clickable demo of some sort something

856.12

that you can put in front of that CEO

859.72

that customer that whoever it is and say

863.079

this is what this is going to look like

865.399

before you've invested too much time

867.24

into

868.04

it give them what you can so they have

872

an they have a sense so you can set the

874.12

expectations of this is what we're

875.639

building this is what you're going to

876.839

end up with so they can either say yeah

879.44

that looks great or no I've got this

882.32

whole other thing that I want to be done

884.88

and then say okay well work with them

887.759

within that so it's not and sometimes it

890.6

is I think we push back too much because

892.48

it's it's a we don't want to do we we

895.759

are too strongly against the approach

898.8

that they're taking and so we we we sell

902.72

it as that it comes across as that it

904.56

sort of is a us just poking holes in

907.88

their their requirements but really we

910.12

need to be pushing towards instead of

912.24

pushing back is dragging them forward

914.959

and saying okay I'm hearing these things

916.519

so how about we do this how about we do

918.079

that hey we can do this we can do that

920.04

we can sometimes it's like hey we cannot

922.32

provide you this but we can go provide

923.88

you this other thing that gives you

925.24

essentially the same solution the one I

927.639

think I've mentioned before that is like

929.68

the the

931.639

quintessential project gone bad because

933.88

somebody thought they needed they they

935.759

were too much into the implementation

938.399

was we spent I think a month building a

942.319

solution to pull down this was dealing

946.24

with like hundreds of thousands millions

948.04

of rows on a web page and being able to

950.639

like you have to be able to page through

951.92

them and you had to be able to page

953.16

through them quickly the page has to

955.04

come up quickly and like all the time a

957.959

100,000 a millon rows there's just to

961.24

display those on a web page is just a

964.279

lot of stuff and even if you're paging

966.839

it whatever you're doing somewhere along

968.68

the way you're having to pull all that

970.279

data into the page and you whether it's

972.68

going back and forth however you do it

974.079

and it was just it was not fast enough

976.24

there was nothing close to it and we

978.12

went around and around and around and

979.68

finally got down like really and part of

982.759

it was because it was under under

984.199

pressure so initi it's like okay we're

985.56

just going to get it done we're going to

986.36

make it work we're going to make it work

987.24

and finally it's sort of like wait a

988.36

minute back this

990.16

up why do we need to present a 100,000

993.319

rows to a

994.639

customer and it finally got to well we

997.44

need to do is we need to get to the last

999.079

page and have at the bottom of that page

1000.759

count of the number of rows so what they

1003.279

really needed they didn't care about any

1005

of the detail they cared about that one

1006.6

number it's like why don't we just give

1008.72

you a summary report that's one page has

1011.36

that number and like three others like

1013.279

oh you can do that yes we can do that

1016.079

and it's so much easier so much faster

1018.279

and it's it is it's somebody was so

1020.959

focused on this is what we need and this

1022.839

is how it needs to look and it was just

1026.439

this is where you are a better developer

1029.039

instead of just a coder this is where

1030.76

you become a developer and you're not

1032.559

just writing code is instead of just go

1035.199

do it as you used earlier that you know

1037.799

dig a hole okay dig a hole over here oh

1040

wait that's I want the hole there and

1041.24

the next thing you just dug a lot of

1042.52

holes instead before you get into

1045

digging holes and tear up somebody's

1046.36

yard you okay why are we digging this

1048.679

hole

1049.64

because we want to get to a well okay

1051.12

well let's first make sure that when we

1052.32

dig a hole we're going to actually hit

1053.48

something that's got water you or

1055.24

whatever it happens to be those are the

1057.6

things that we need to push back

1060.28

particularly as we get into you know

1062

when we're starting out we're paid to

1063.919

just write code basically we're not paid

1066.84

some people think we are but basically

1068.36

we're you know we're paid pennies and

1069.919

it's basically to go right Cod but as

1072.24

you get further into your career you are

1074.48

paid to be even if you're an employee

1077.76

like essentially a consultant a somebody

1079.88

that is bringing something to the table

1082.12

other than writing code that you're

1084

actually able to push stuff back and say

1087.28

hey yeah that's an important problem to

1090.44

solve let's think about solving it in

1092.919

this different way because it would Prov

1094.88

we can get you solution faster or better

1097.039

or whatever that happens to be thoughts

1099.919

on

1102.72

that yeah I run into that a lot and I

1107.08

agree this is one of those things where

1109

if you're just starting out as a coder

1110.679

you're typically just going to jump in

1112.84

and you're going to try to do the

1114.76

solution you're going to try to do

1116.12

something to make it work uh more

1118.679

midlevel you're going to be asking a lot

1120.559

more questions but typically you'll

1122.76

still probably start and then have

1124.44

questions as you go along um and more at

1127.919

the higher end the engineer the

1129.76

architect levels you're going to be

1131.08

asking lots of questions before you

1133.24

begin with this in mind though with a

1135.88

lot of these software approaches

1137.559

especially with agile where you go

1140.52

through the process of kind of pointing

1142.72

tickets ahead of time you review tickets

1145.4

uh in refinement but you don't

1147.6

technically get to those tickets for a

1149.799

month or two or even six months down the

1152.039

line and your requirements can get stale

1154.84

now they may be flushed out at the

1156.159

beginning but how what is your take you

1158.76

know how would you handle the approach

1162.08

of taking this ticket that we already

1164.12

have and we have flush CH requirements

1166.2

but maybe there's been some additional

1168

changes and other tickets that now make

1170.24

that one obsolete or whoops now it's not

1173.28

going to work the way we anticipated it

1175.52

that's the whole point of really to me

1177.64

that's like really the point of agile

1179.76

and having uh backlogs and things things

1182.36

like that is because you you do you

1184.44

rroom you don't just like pull tickets

1186.64

when you're grooming you're actually

1187.72

reviewing tickets in in the agile

1189.88

approach and let's just stick with that

1191.72

as an example is that you're looking

1193.64

back through these and these could have

1194.72

been put a year ago and I have been in

1198.32

those situations on more than few times

1199.88

where you've got something that's been

1200.76

sitting there for a long time like

1202.44

months maybe a year or more and now

1205.52

we're finally getting this ticket and

1206.76

we're like okay this doesn't make

1209.159

sometime a lot of times actually it

1210.52

doesn't make sense anymore because

1211.84

things have changed so much that it's

1214.159

either sometimes it doesn't even make

1216.08

sense at all so you just throw it out

1218.36

and sometimes if you've got a good scrum

1219.96

master or product owner than that

1222.28

they're in their interactions those

1223.84

things will just disappear when those

1225.32

things are no longer

1226.799

needed but sometimes they needed but

1229.12

it's very different from the original

1232.2

description definition and

1234.32

requirements and in those cases is it

1237.559

goes back to just like you would with

1238.919

any other one you're going to look at

1239.919

that and say okay you're telling me that

1241.96

we need to do ab C and D cool okay a I

1246.28

get but b c and d don't make any sense

1248.6

in what we have so how do you see that

1250.919

working in our current environment you

1253.64

know it's those kinds of question it

1255.76

goes back to ask those questions and

1258.36

again then you don't have to go back and

1260.84

you don't want to I don't think you

1262.159

don't want to go back to the the backlog

1264.48

tickets every time and keep updating

1266.72

those but when you get to point where

1268.2

you're going to pull one forward that

1270.12

should be part of the discussion is is

1271.799

this still valid if it is are there

1273.799

changes to it are there additions and

1276.12

and keeping those fresh basically

1279.24

particularly if you are moving along in

1281

an agal approach where things are

1282.279

changing as you go now if you've built

1284.36

something you're more like a waterfall

1285.88

and it's been very static and everything

1289.2

was laid out beforehand then you may not

1291.799

have to worry as much but somewhere

1293.799

along the way you do still need to do

1295.679

that and I would always do

1297.76

it as you um like as a just in time kind

1302.08

of approach like I'm going to will work

1303.48

on this ticket before I'm going to work

1304.72

on it I'm going to review it I'm going

1305.84

to ask my questions about it because

1308.4

even if the requirements haven't changed

1310.72

your understanding may have change and

1312.84

so the questions you have may be very

1314.44

different than you would have had a

1315.84

month ago six months ago or a year ago

1319.679

right and it's kind of interesting

1321.4

because this kind of gets into an

1323.76

approach I've wondered for a while

1325.559

should you be putting tickets out there

1328.159

or defining requirements for a coder or

1331.84

developer to work on six months out a

1334.64

year out should you keep that as an epic

1337.4

at a high level and then when you get

1340

time to actually sit down and work on it

1342.559

yes you flushed out the high level

1344.2

requirements but then you actually get

1345.64

into to the technical requirements at

1347.48

that point and then you flush them out

1349.44

there's been a lot of situations I've

1351.08

been in where 6 months ago we plan

1354.76

everything out for the year we plan okay

1356.52

this Project's coming here this

1357.679

Project's coming here here's all the

1359.4

requirements it's all flushed out and

1361.84

then six months later we have to do it

1363.32

all over again because the whole project

1365.919

has changed or we abandoned all that

1368.159

work because nothing is going to we've

1370.6

gone a totally different

1372.08

direction or the other problem I've run

1374.52

into in some situations is where the

1377.559

group of people I'm working with or the

1379.919

project I'm working on has now changed

1382.2

hands three four five six times and the

1385.32

people that actually wrote the

1386.24

requirements or defined it aren't there

1388.84

anymore so you have no one to go ask the

1390.799

questions of other than to try and find

1392.919

someone to go back and talk to the

1394.2

customer and it can be very frustrating

1397.2

and very hard so we have to make sure we

1399.84

ask those questions and flush them out

1402.2

but it it's just I'm curious on your

1404.679

point you know should we be defining

1407.279

tickets so far out out or should we only

1410.12

really be refining tickets that we're

1412.32

going to pull into the current Sprint or

1414.48

within a Sprint or two I think you do I

1417.32

I think there's a lot of value in doing

1418.84

it from the start even like when you're

1420.96

because just about everybody does that

1422.559

you start a project and you just like

1424.48

blush out a bunch of tickets like here's

1426.72

a bunch of things we're going to need to

1428.08

do and if you can while you're in that

1432.159

initial design Visionary mode however

1434.799

you want to look at it when you're

1435.76

initially put some of that stuff

1436.96

together or even along the way I think

1439.159

it is very particularly if you want

1442

agile to be its most valuable to your

1445.6

organization is when those ideas come up

1448.36

of like hey here's a requirement flesh

1450.559

it out as best you can and put it in

1452.36

into the backlog because what you want

1454.4

to do is cover hey remember we talked

1457.24

about this and if you've got notes about

1458.76

it it's going to help that much more in

1460.36

particular if you have a great idea

1462.96

you're like this is a feature we need to

1464.72

have and he's like yeah that's a great

1466.44

feature and then you leave the company

1467.84

six months later but they don't actually

1469.2

implement it until a year after that at

1471.72

least your ticket has survived and

1473.24

you've got enough details that either

1476.48

you can go to everybody you know the

1478.24

rest of the group or how whoever it is

1479.88

and say hey here's something we we had I

1482.76

don't really get it can we talk through

1484.64

it and maybe it it comes real or it may

1487.88

be something you look at you're like

1489.279

okay we don't get it we don't understand

1490.96

it it doesn't make sense anymore just

1493.76

toss it because it's at the end of the

1496

day that's the thing is you can just you

1497.279

can always throw over requirement out or

1499.08

you can just kick it down the road and

1500.32

say you know what we don't get it right

1501.84

now we'll deal with it later but when

1504

you're working it yeah you want it to be

1506.12

fresh but I think that I think it is

1508.76

very useful and it is probably helpful

1511.279

to all of us to have something where

1514.2

we're like noting those little ideas as

1516.84

we go and making sure as best we can

1519.44

we've got some details around it so even

1521.159

ourselves we can look at it six months

1522.88

from now and go what the heck was I

1525.12

thinking oh yeah this is where it would

1527.88

do this and then it would do that we

1530.6

have that information and have tracked

1532.88

it so that we can help ourselves down

1534.76

the road as opposed to okay we're just

1537.48

gonna we're going to just focus on the

1539.159

near the here and now and all that other

1541.44

stuff we're not going to bother with

1543

that's like even when it's a

1545.919

non small team non-agile kind of

1548.52

approach I work with customers all the

1550.36

time where it's like hey this is you

1552.12

know version one or an MVP or something

1553.96

like that and we have this ever growing

1556.559

section that is in the future future you

1559

know future phase next phase whatever

1561.96

and we just throw stuff in there because

1563.48

like oh we do want to do this but we

1566

really don't know what it's going to

1566.84

look like we really don't want to spend

1568.159

time on it now because we may not get

1570.64

there particularly in an MVP World maybe

1572.88

you go you build that mvp you get it out

1575.44

in front of customers and you know

1577.32

there's a lot of stuff you want to do to

1579.2

like really help them but first you want

1580.84

to make sure those customers exist and

1582.52

they're willing to pay for it so there's

1585

there is a lot that goes into that but

1587

the short answer even though I know I've

1588.6

already blown that time out the short

1590.88

answer

1591.96

is yes you want to track every one of

1594.799

those things put what you can into it at

1597.279

the time but also be careful about

1599.84

getting too deep into the analysis side

1602.2

of it don't put implementation details

1604.08

in things like that

1605.76

instead you if it's something you know

1607.679

that's going to go to the backlog just

1608.96

give yourself enough information or for

1610.72

somebody else to understand where you're

1612.52

going with it so then they can find a

1614.12

way to take that that story again it's

1616.96

that story that why that that feature

1619.12

and build it into whatever this thing

1620.88

looks like six months or a year down the

1622.52

road does that make sense yeah exactly

1626

and that was kind of where I was hoping

1627.919

you were going to go with that because

1629.88

one of the things I've seen in some of

1631.32

the places I've worked

1633.72

is some of the project managers or the

1637.559

uh business will kind of backfill the

1640.2

backlog with

1642

potential projects that are coming down

1644.2

the line and they are very

1646.279

highly um Loosely defined tickets and

1650.84

yeah we flush them out but then we don't

1652.76

touch them for 6 months we talk about it

1655

again but then oh we don't touch it for

1656.88

another

1657.88

month what I've seen and this is I don't

1662.159

know if you've seen this too but

1664.559

typically in most agile Sprints that

1667.24

I've worked in in a good shop you're

1669.88

always reviewing or re-reviewing what

1672.2

you're going to pull in for the next

1674.2

Sprint or essentially the top five items

1677.08

in the top of your back log are always

1679.44

fresh and have pretty much the mostly

1682.64

defined requirements that you need yes

1684.76

if you go to the backlog and you pull it

1686.799

out take a second read through the

1690.08

ticket read through the requirements

1691.84

make sure it still makes sense make sure

1693.64

that what you're currently working on

1695.44

didn't change

1697.12

it typically my rule of thumb every

1700.679

ticket is

1701.799

wrong it just my rule fell it's the

1705.679

tester to me I look at something in and

1709.039

I have to immediately know how is the

1711.24

user or how is this uh ticket supposed

1715.08

to work how am I supposed to touch it

1718.48

how am I supposed to click it how you

1720.64

know what do I do with this ticket

1723.32

what's the outcome you know not

1725.32

necessarily black box but you know if I

1727.48

give it a a and b i get C okay great

1732.32

that tells me specifically if I'm doing

1734.36

this I get this which leads to you know

1737.32

how you test uh driven development these

1739.84

tickets but if you think that way when

1742.12

you're refining the tickets and you're

1743.799

looking at those requirements no matter

1746.24

where you're at in this process you

1748.559

should be okay and if you do it first

1751.519

you're going to spend less time less

1753.679

headaches and not bang your head against

1756.12

the wall uh on tickets where essentially

1759.96

you're my computer doesn't work well why

1762.159

doesn't it work you know nothing's in

1763.679

the description but when the person uh

1766.32

or support finally calls a customer back

1768.2

says okay what's the problem uh and

1770.919

after spending 1 2 3 hours on the call

1773.6

with them you find out well their

1775

computer doesn't work because they're in

1776.399

the middle of a

1779.279

blackout yeah you've gota yeah you've

1781.88

always got to pick a little bit outside

1784.24

of the box when you're when you're

1785.36

tracking some of those things down but I

1786.96

think it is it's it is a that is a nice

1789.919

thing about test driven development and

1791.799

even having where it is useful for

1794.24

developers to have any kind of like QA

1796.08

testing kind of background because it

1798.24

does help us to to Think Through okay

1800.44

what are what are the potential inputs

1803.279

and what are the outputs based on those

1805.039

and what are the exceptions and what are

1806.48

the errors and what are the message and

1807.96

asking those kinds of questions because

1810.2

that's going to almost that's almost

1811.48

going to apply to everything you ever

1813.48

build and to some level and I think just

1816.559

getting those questions often starts the

1820.2

conversation to get deeper into it if

1822.279

it's a if it's a a ticket an issue or

1826

you know a problem you're solving that's

1827.12

at a bigger scale there's going to be

1828.64

all these little ones are going to end

1829.6

up being that are going to grow out of

1831.159

that

1833.159

conversation slight segue I guess is

1835.84

that this has grown out of just a couple

1837.799

of very simple questions and

1839.12

conversations but we're going to wrap

1841.08

this one up because hey we're going to

1843.039

try to respect your time as best we can

1845.679

uh as always shoot us some questions if

1847.799

you have any at info developer.com check

1849.96

out the site U subscribe wherever you're

1853.559

you have podcasts that you're listening

1855.679

to all of the different things out there

1857.32

we're out there somewhere go find

1859.12

develop andur or building better

1860.48

developers depending on uh we use that

1862.76

because some of these things that are

1864

voice activated they don't understand

1865.399

the word develop preneur as well as they

1866.799

do billing better developers that's why

1869.48

well that's why we converted our tagline

1871.279

to the the name at one point that being

1874.2

said go out there and have yourself a

1876.08

great day a great week and we will talk

1878.24

to you next time and for the rest of you

1881.919

thank you so much for hanging out this

1884.12

has been a uh you know again we're going

1887.2

down some rabbit hole and we've warned

1888.6

you that this would happen that these

1890.639

are the kinds of conversations we have

1893.08

and I think they're probably the

1894.08

conversations you have as well is that

1896.12

you know sometimes we just start talking

1898.559

about problems and we have more problems

1901.679

it's just like requirements you have a

1903.6

requirements you start talking about it

1905.159

and now they have more requirements and

1906.72

it starts to you know sort of snowball

1909.039

until you get to the point where you

1910.039

finally start hitting leaves at the end

1911.559

of all of those little you know branches

1913.72

that you've hit from off of all of your

1915.519

requirements so I think we will wrap

1918.48

this one up I want thank you again for

1920.72

your time check us out subscribe say hi

1923.279

leave comments all that good stuff

1925.679

because that just helps us give better

1928.44

comment uh content and just you know

1931.279

better copy and such for you as well so

1934.6

you guys as well go out there have

1935.76

yourself a great time and we will see

1937.399

you on our next episode as we're just

1939.559

going to continue cranking through uh on

1941.72

the podcast side we are cranking through

1943.88

season

1944.88

21 and uh we're just moving along those

1947.399

episodes and then here we're just going

1949

to continue on the the YouTube side

1952.639

continue to crank these things out and

1954.279

periodically I promise I know I've

1955.96

mentioned it before and I have not in a

1957.32

while put out some of the tutorials but

1959.519

we will return to those uh it's just

1961.72

been a a little bit busy time and we're

1963.44

hoping to settle that down a little bit

1964.96

and throw a couple of those little

1966.08

tutorials out again if you have

1968.159

questions comments or requests for

1970.159

tutorials in particular anything related

1972.24

to some of the stuff we've done in the

1974.279

last now couple of years my SQL SQL uh

1978.08

in general Maria DB python Java let us

1982.2

know and we will uh we'll see what we

1983.96

can do to help you out and throw a

1985.08

little tutorial together or we may have

1986.639

some fun exploring whatever that

1988.12

technology is as well uh go out have

1991.279

yourself a great time and we will talk

1992.6

to you next

1996.15

[Music]

2006.76

time