📺 Develpreneur YouTube Episode

Video + transcript

Requirements Matter: How Better Planning Leads to Better Software

2025-07-24 Youtube

Detailed Notes

In this episode of Building Better Developers with AI, Rob Broadhead and Michael Meloche explore why requirements matter more than ever in software development. From vague specs to blown budgets, they break down how poor requirements—not bad code—are the root of most failed projects.

We cover: • Why requirements matter more than perfect code • How to write user stories that work • Managing scope, budget, and stakeholder expectations • Using prototypes and mockups to validate early • Balancing detail without over-specifying implementation

👉 Learn how to prevent rework and improve delivery through better planning.

🎧 Listen to the podcast: https://develpreneur.com/requirements-matter-software-success/ 📩 Contact us: [email protected] 🌐 More resources: https://develpreneur.com/

#RequirementsMatter #SoftwareDevelopment #UserStories #Agile #ProjectPlanning #BuildingBetterDevelopers #TechPodcast #SoftwareSuccess

00:00 - Welcome & Episode Setup 01:30 - Meet the Hosts: Rob & Michael 03:00 - Why Requirements Gathering Matters 05:20 - Common Causes of Project Failure 07:15 - Asking Better Questions Early 09:00 - Scope Creep & Account Modeling 11:00 - Managing Client Expectations 13:00 - Core Requirements vs. Bells & Whistles 15:00 - What Good Requirements Look Like 17:00 - User Stories & Testable Outcomes 20:00 - The Danger of Piecemeal Requirements 22:30 - Adding Detail Without Overdesigning 25:00 - Prototypes, Demos, and Visual Feedback 28:00 - Bonus: Bridging Business & Dev Teams 30:00 - Tools, Change Control & Keeping in Sync 32:00 - Final Thoughts & How to Connect

Transcript Text
[Music]
record and we're going to dive right
into this one which is
getting it right. How effective
requirements gathering leads to
successful projects. Wow,
there's a lot there. Let's see how this
one goes. Um, this is another one. We
could probably talk for days on this one
alone, but we're going to see how we're
going to do it and try to keep it to our
normal three, two.
Well, hello and welcome back. We are
building better developers. We are
developer and now we are with AI. Yes,
we are using AI in past episodes and
we're gonna see what it spits out. It's
really just a fun little experiment
we've had here, taking some of these
past topics and then basically get to
redo them, but we start with what AI
suggests we should talk about. Sometimes
it's very much what we talked about
before. Sometimes it's very different,
but every time we get some new
conversation points going out of it.
It's almost like having a third person
suddenly added into our series of hosts.
First of all, let's talk about the
people that are here. My name is Rob
Broadhead. I am a founder of developer
also a founder of the founder of RB
consulting where we help you do
technology better. The whole thing about
technology is that it's there. It's
everywhere. You can't escape it. Doesn't
matter what your business is. I don't
care if you're you've got a pet store or
if you've got an e-commerce suite or
whatever you've got. Technology is
something that is here and it is here to
help you. And we are here to help you
use technology to make your business
better. We sit down with you, talk about
your business, walk through and create a
special a unique recipe for success for
you that involves leveraging technology
through integration, simplification,
automation, innovation. We may need to
build something new. But a lot of times
what we really need to do is just walk
through your processes, the steps you
take, and then show you how to make
those go faster. Whether it's
eliminating steps or automating things
so that now you can just get rid of it.
You don't have to touch it. It just
happens. You don't have to worry about
all the errors and and human stuff that
happens and you can actually go worry
about your business and growing your
business instead of working in your
business. Now, good things, bad things,
uh whole lot of stuff going on lately.
So, we will go with um good thing is and
this is we'll go back to weather because
hey, weather has been one of those
things. Good thing is is that we have uh
we've come through a little bit of a a
rainy period of starting to see some sun
again and stuff like that. Bad thing is
is now summer is here where we are at.
We had a great spring lasted into June
actually I think almost to July and now
suddenly bam summer is here and uh it
makes me very happy that that's a good
thing. I have fans and I have AC. I even
have like a little USB powered one that
wherever I take my laptop I can put a
fan right there in my face so I don't
sweat bullets just like Michael is
because he knows his turn on the hot
seat is next. Go ahead and intro
introduce yourself. Hey everyone, my
name is Michael Malashsh. I'm one of the
co-founders of developer building better
developers. I'm also the founder and
owner of Envision QA. We are a software
consulting group focused on helping
startups and growing teams improve their
software quality through smarter
testing, automation, and development
workflows. At Envision QA, we work with
clients who want to ship faster without
sacrificing quality, offering support in
everything from test strategies and
continuous integration and development
to scalable QA practices. You can learn
more about what we do at envisionqa.com,
where we share resources, insights, and
ways to connect if you're looking to
level up your software delivery.
Let's see. Good thing and bad things. Uh
bad thing, yes, it is July. It is hot. I
walked outside today. I mean, first
thing this morning, we're talking it's
barely sun up at 6:00. Walk out my
glasses fog over there. It was so bloody
humid this morning. Uh it was miserable.
Uh thank goodness we have AC, but also u
my wife has a little 10-ft pool, kid
kind of kitty pool she puts up every
year. And uh it's in a nice shady spot.
So uh after we, you know, struggle with
all the yard work and dying of the heat,
we can just jump in that and cool off
real quick. Uh except when the humidity
is really bad, you just literally just
cool off, but you just stay hot, humid,
and wet all day. It's just miserable.
>> Yeah, that is probably the worst when
you like we we had this recently where
you like would walk out of an air
conditioned place and it didn't matter
how dry you were, two seconds later you
would be wet. and not necessarily from
sweat. It's from just everything
condensing on your skin.
That's a whole other problem AI hasn't
solved yet. But it is how it solved our
problem of having some cool stuff to
talk about. So, we're going to dive into
this one. Uh the episode we're talking
about that we're going to we took this
topic from the past was called getting
it right. How effective requirements
gathering leads to successful software
projects. Now, this again was one where
it did not give me a whole lot of like
oh great topic. It just jumped right in.
So it said episode object objective help
developers, PMs, and founders understand
the critical role of clear, complete,
and validated requirements and how
skipping this step sabotages software
success before a line of code is
written. Ah, get the choir going because
we're going to preach. Um, keep talking
points. First one, why requirements
gathering is the silent killer or
savior.
Then here's the sub bullet points.
There's three of them. First one, most
software failures aren't due to poor
code, they're due to unclear goals.
Second one, misunderstandings between
stakeholders and developers. Third one,
how vague or evolving qual requirements
lead to scope creep, rework, and budget
blowouts.
We could do a season, I think, on every
single one of those.
One of the things that we do every time
we start a project is we sit down as I
talked about part of the reason we sit
down with our customer and talk to them
about their business is we start with
the why and then we start getting into
not the why of their business but the
why if we're doing a project of that
project because this is where
requirements gathering starts is we're
going to talk about what are we building
this is sort of back to when we talked
about documentation. It starts like what
is the problem you're trying to solve?
How are we trying to solve this? What
does the solution look like? What are
the steps involved in that process to a
solution? What are the variance of that?
What are the requirements of that? What
are the constraints of the data that's
in that? What does it need to look like
when the output comes out? All of those
questions are just the tip of the
iceberg. And they are so key simple
things. I will tell you one of the
simplest thing that I have seen blow up
projects. I bet in 30 to 40% of the
projects that I've dealt with over the
last many many many years, even though
I'm so young, you will say, "How is it
you could possibly doing software that
long?" Side note there. Um, is how many
users will be on this at a given time?
Or a variant of that is is each user
going to have their own account or is
there some sort of a like say a
organizational account that has
employees or members or things like that
or a household that has a mom and a dad
and kids and things like that. That
one would think is a very simple
question to answer. people are either
going to say yes this is always going to
be one user or no we're going to build
this so that there's going to be an
organization and they're going to have
employees and blah blah blah.
There is so much so many devil in the
details to those answers
and it is so often a problem because the
pro the customer when they're talking
about it they originally have this very
small we'll say or very focused solution
and this isn't a knock on them. It's
just like they're solving this problem.
But then as we grow, as we get into the
implementation, they their eyes start to
open up and say, "Oh, well, there's a
different approach I can take that now
explodes where I can provide value." And
then suddenly it goes from no, we just
have a person that logs in and they can
have one password and they never change
it and all this kind of stuff to now we
have to have multiple users and we're
going to put it out on the internet and
they have to have all of these password
guidelines and they have to be able to
relate accounts to each other because
they need to share data in some way.
These things are
very valid solutions to so many
problems. But if we don't nail those
things down and agree that that's what
we're going to stick with, then
hopefully you can see that that can
really blow this stuff out of
proportion.
I've got to like quiet the choir down
like a little bit here. I've got to step
back because I know otherwise I'm going
to go too long. What your thoughts on
this, Michael?
>> Oh my god. Yeah. Uh such a clear example
of how quickly something can go off the
rails uh from like a small scope to a
larger scope of a project. One of the
other things you potentially run into is
your customers may already have existing
software and they're looking to move to
something similar or upgrade. The
problem is depending upon how old that
software is, what they are expecting or
what they're used to, they're looking at
basically for something similar to what
they have. But the problem is if it's so
old, what they have doesn't exist or
what exists today is so vastly different
that well, yes, you can literally check
all the boxes for their requirements for
what the new software is. The problem is
what pieces is the new project going to
look like? You're going to have to spend
a lot more time in the requirements
gathering phase kind of educating your
customer on what is available, but at
the same time trying to keep it concise
and say, "All right, what is your why?
What is it that you need?"
And then what are basically what is the
absolute requirements to get you off
your old system on your new system or
build you an existing system to all the
bells and whistles. You have to be very
careful in these situations because a
lot of times they'll be like, "Oh wow,
yes, let's go with this or this or
this." And it's like, "Okay, you've just
blown the whole scope of the project and
you're out of money before you even get
off the ground." So you have to be
careful.
um not just
understanding their why, but you also
have to be careful understanding what it
is that they need built.
If is it like a calendar system? Okay,
calendar being like Microsoft calendar,
Google calendar, you know, calendars
come in many flavors, but at the end of
the day, a calendar does what? It allows
you to schedule appointments or schedule
events in different times.
invite different people to them. It it's
basically a meeting place basically a
card catalog or a post-it note for a
meeting. That is kind of the bo that
really boils it down to the simplicity
of it. But if you get to the core of
whatever it is that you're building and
stick with the core requirements, once
you have that, everything else that you
put on top of that is
you have to be careful with that because
that's where the scope can come in
because you can now start adding too
many bells and whistles. But stick with
that core, get all those requirements in
place and then slowly work your way out
from there.
I think that is the it is sort of the
measure twice cut once approach uh
besides requirements in general but it
is to really understand what it is
you're building. It's like if you're
building a physical building one of the
things you probably need to know from
the start and I'm not a architect of
that sort but you probably need to know
for example how many floors is this
going to have? Is it going to you know
how many rooms does it need to have? how
big is the foundation need to be? Uh
some things like that. And that is what
we're actually dealing with when we're
talking about requirements. Now, this
next section is actually really
interesting as well. Again, I could do
and maybe we will. We could do seasons
on this. What good requirements actually
look like. It's got four sub points. Uh
smart requirements, specific,
measurable, achievable, relevant,
timebound. Next one, the difference
between features, goals, and
constraints. Next one, functional versus
nonfunctional requirements. The fourth
one, avoiding assumptions. Explicit is
always better.
I'm going to go ahead and just beat on
myself a little bit. Self flagagillate
on the last one there. Explicit is
always better. Now, I will I will we've
probably mentioned this before, but I
have a very different side of
requirements of Michael. We are polar
opposites probably in that sense. I am
very much a highlevel go do it you know
don't get very I don't I do not get
bogged down in details when I'm building
requirements of as far as like sending
them out to development team. If I'm
building requirements documented talking
to the customer that's a different
thing. Then I'm going to sit down there
and we're going to walk through a lot of
stuff and we're going to figure all that
stuff out. But then once we're done,
what I'm going to do usually is I'm
going to say these are the things that
matter and then allow somebody to go fix
the, you know, build the rest of it and
have some level of um artistic freedom
for for lack of a better term.
Michael's on the other side is he's
going to write stuff because he's
thinking about like, well, how do I test
it? So he wants the bullet points of,
well, it does A. If you do A, it B
should occur. If you do C, D should
occur. That's if you've got that then
your tests literally can write
themselves in a sense especially if
you're using AI. So the problem here is
that we want to we don't want to
micromanage and design and implement
during requirements gathering and this
is where I think a lot of times that we
we find struggles. Now some of this goes
back to the other bullet points things
like smart requirements or uh features
versus goals versus constraints and
functional versus non-functional.
I think the challenge with requirements
is being detailed with the requirements
without getting yourself detailed
because you've already put
implementation into the requirement.
It really is having that focus on the
business and the end result as opposed
to the implementation piece of it. Uh
this is part of why a lot of times I'm
I'm a big fan of not even talking about
uh the implementation language and
environment stuff like that until you
actually get done with requirements
first is actually walk through them and
and keep yourself free from the
implementation side because if there's
going to be a problem implementing it
you can figure that out further down the
road and say okay we need to make some
adjustments uh first let's figure out
what the actual requirements are and if
we have to change a requirement then at
least we're changing it based on uh
something that we need to do, but at
least the requirement is tied back to
something that we actually need for the
end user. And so while explicit is going
to be is very useful and very helpful, I
will fall back on a little bit of the u
you know the a little bit the agile
approach of it is very useful is very
helpful. If somebody says if if their
requirement is this has to be this color
blue, then okay, let's make sure that we
specify that. But if it's not and it's
just that happens to be they want
something close to that because it's a
favorite blue of theirs or something
along those lines then we need to make
sure that that actually is not a
requirement. So we want to be specific
when it's a requirement and explicit
when it's a requirement. We actually
don't care if it's not a requirement. I
mean it's like and if there's something
and if we should care then guess what
it's requirement. It's like one of
these, you know, circular arguments to
some extent, but we need to nail those
things down. Be very clear early on,
especially in your questions of things
like, does that really matter? And if
somebody says yes, it matters, this goes
back to a little bit what Michael was
hitting at. You may end up blowing out
your entire budget before you even start
because too many things matter. All
right, I'm gonna let you dive in on it
now.
All right. So, I like being explicit
because I like test-driven development.
Now, I also agree with Rob though where
you don't need to put too much
implementation into your requirements.
However, I am a strong believer if you
are writing a requirement, it should be
in the form of a user story. It should
explain what it is that you are supposed
to be building and what is the expected
result of that. It does not have to be
implementation but it essentially has to
say is the software has to do X and from
the user perspective or from the
software perspective it should do Y.
What happens in between up to the
developer but if you do not have those
two things in your requirements one you
don't know what you're building and two
you have no idea that what you built
meets the requirements that you're
building. So you have to be explicit
enough in the requirements to define the
task that you're doing. And if you're
doing it right and if you're being
explicit enough, you're going to find
very quickly that the requirements that
you're trying to put together are either
a too narrow, too refined, or too broad
and need to be broken down into smaller
stories so that you can actually divvy
up the work and get it done faster.
Because if you're at that large uh if
you have that large story that can have
many possible outcomes, you could be
going down rabbit trails, you could be
opening up for interpretation and then
you essentially could start building the
software and find out you have to go
back and refactor things because you put
the cart before the horse or you jumped
ahead on some things or you did
something that wasn't even a part of the
user requirement. Even though it looked
like it met the requirement, it didn't.
So to me being more explicit is really
define the story well enough that you
know what it is you're building or what
has to be implemented and essentially
how it does it work what is the outcome
of what it is what this requirement is.
If you have those two things, then you
should have no doubt when that developer
picks up that ticket and writes that
code, when it gets done, he knows that,
okay, this meets that second condition,
when I run this piece of code, it does I
I get the expected outcome. If you don't
have that in your ticket and they say,
"Oh, I'm done." How do you know you're
done? If you look at a ticket and you
can't say, "What is it that this is
providing?" then your ticket is not
explicit enough.
>> I want to go to that is and this is a
little bit of a shameless self-plug but
I I apologize but it's because it
reminded me of this. Um I think part of
the problems with user stories I love
that is it should be a user story
because that should give you it it
really within itself if you're doing it
as a user story is it is doing the
things like tying you back to the why
and giving people the understanding of
what we're actually trying to do and not
just you know write this thing that does
this thing. it doesn't and nobody
actually knows why it is. This gives
them uh reason and also gives them an
opportunity when they're implementing it
to uh have some you know some
efficiencies and things like that
because like oh this is where we're
going so we can do this and this is
something we want to check out all the
time. uh by the same
>> I want to follow up on what you just
said with that though you have to be
careful with the requirements and the
tickets as you're building them because
if you give those tickets to your
developers out of order or oh hey go
build this small piece if they don't
know enough of the big picture you could
end up in a rabbit hole of what you've
written doesn't plug into the big
picture.
That's true is you need you definitely
need I I will back up there and just put
that extra caveat to the whole thing.
The warning over all of this is that
like you should not be peacemealing
requirements to your developers. This
should when you go through this they
should actually be able to have access
to the entirety of the user story so
they can understand what's being built.
Now, back to my point is that with the
user stories, a user story you need to
think more of instead of like, you know,
a long time ago in a galaxy far far
away, there were some people blah blah
blah. You need to think more like uh
scripts for movies and stuff like that
where there's directions in there. Is
there things like, you know, the you
know, the lighting opens up and it's a
little bit of a blue and then somebody's
sh staring off in the distance and blah
blah blah. Those things more detail.
What happens a lot of times is this is
it's user stories like the user needs to
log in. Okay, cool. You need to tell me
more. And this is what we've added when
we've and it's I got to remember which
one it is. I think it's the it's the
software development book on out on the
RB site. You can go find it. It's free.
It's an ebook. But I have in there a
user ca a use case user story template
that is not just like you write your
little thing. There's a lot of questions
in there. There are details to that
story and that is what you're going to
need for the requirements because it
can't be as it's not going to be as
simple as the user needs to log in. It
is the user needs to log in and things
like but it needs to automatically log
them out after 30 minutes or they need
to have a password or they need to be
able to do it without a password or all
of the there's a lot of things that go
into even the most simple of stories and
making sure that where there are
requirements as opposed to just like
yeah it'd be cool if it worked this way
those actual requirements they need to
be laid out there and that includes
things like limits and validations. So,
it's things like, hey, they need to be
able to create a user account and have a
display name. Well, how long does the
display name need need to be? Like, oh,
it needs to be open text. They can make
it as long as they want. Okay. Well,
what happens when we start showing, you
know, somebody decides to have something
that is literally 4,000 characters long
and it's in a list of users and suddenly
they've blown out the entire screen.
There's things like that that need to be
discussed and I don't want to get too
far in there. Probably already have gone
down that rabbit hole too far. Um that
is definitely an area that you need to
be paying attention is that the level of
detail that you add to your users
stories. Now uh moving on uh to try to
get a little bit more in on this one. Uh
techniques for effective requirements
gathering. Again whole season on this
stakeholder interviews and empathydriven
discussions user stories. We've said
that use cases and personas prototypes
wireframes and mockups as communication
tools. Joint application development. JD
sessions and workshops. I'm going to
dive right into uh prototypes,
wireframes, mockups. I love Michael's
always about the kitchen sink and stuff
like that. I am a clickable demo person.
I I was with a group that we were called
our managers names/dangerous demos
because we could crank out demos that
you would look at them and you thought
they were real.
Those are the things I love for
requirements is not just getting the
basics of it and saying, "Okay, here's
what we've got," but it's actually
putting it back in front of them so they
can see it. And there are tools like
Figmas and stuff like that that are out
there that allow you to do this stuff
very quickly, very high quality, and
allow you to get a lot of feedback
quickly. I was literally in a call just
a few hours ago with a customer where
they were a little bit lamenting and a
little bit apologizing that they did not
have as much input six months ago as
they do now. But I told them I was like
part of it is we were building an
interface for them that they needed they
needed to be able to actually like work
with this thing before they could get a
really good honest assessment and
evaluation of it and and tell us where
it needs to go. So, I think things like
that, the more we'll call it real in
quotes that you can make it in front and
put it in front of them, the better
feedback you're going to get. Thoughts
on that?
>> Yeah, I I know you kind of get on me
about the kitchen sink, but I also like
the prototypes as well. Um, I I like the
Figma tools and that, but I'm like old
school, I guess, because I'll just th
open up like a PowerPoint or some type
of presentation thing and just quickly
copy paste, throw something together
because I guess just because I've been
doing it for so long, it takes me less
than an hour or two to throw a clickable
demo, so to speak, in a PowerPoint slide
and make it look like you are actually
going through a demo uh of an
application. Especially when you're
dealing with web applications, it is so
easy to just throw something together
like that. Kitchen sync apps though for
me um the reason I like the kitchen sync
app is if you have done a kitchen sync
app right and you have taken all these
things and pieces that you've written
for other tools and applications, you
put them in a kitchen sink app, you
could almost essentially have a hello
world or uh Swiss Army knife interface
for your kitchen sink app where you
could literally go click through. Oh,
this is what I'm talking about. Click
here. Oh, here's a mail interface that
we've written. This it would look
something like this. Or, oh, click over
here. Hey, here's another feature we're
talking about. You could almost
completely demo real functional code
peace meal, but in a way that you could
explain to the user visually what it is
that you're talking about building for
them.
And in that, we will wrap this one up.
We still these things are great. That is
a nice thing about this. we could
probably do a whole other season of AI
and we'd just start at the bottom and
work our way back up and we would get a
whole different set of uh useful
information. But that's why if you're
listening to us right now, you should
actually go check us out on YouTube,
check out the developer channel because
we have bonus material after every
episode and a lot of times we actually
go a little further into these
particular this season of AI.
As always, love to hear from you. Send
us an email [email protected].
We would any feedback, positive,
negative. We just want to know what
works for you, what doesn't work for
you, and how we can do, you know,
basically how we can do our job better.
How can we help help us help you? Uh,
you can check us out on xdevelopure.
You can check out the developer.com site
and we've got tons and tons of stuff out
there. As I mentioned, YouTube, uh,
anywhere that you listen to podcasts,
developer, building better developers is
out there as well. Uh, there's a
Facebook page. We're out there. or if
there's somewhere else you'd like to see
us. We're not on Instagram or anything
yet. If you want to see us out there,
we'll figure it out. Uh we'll black out
pictures of ourselves so we won't have
pictures of ourselves everywhere. That
just that would be a little too
disturbing to the internet's
equilibrium. That being said, my
equilibrium is as disturbed as it's
going to get. So, I'm going to wrap this
one up. Go out there and have yourself a
great day, a great week, and we will
talk to you next time. All right, then.
Bonus material. I'm going to dive into
Let's see. We got two more things. So,
bridging the gap between business and
dev teams. Uh, four subs. Translating
business goals into technical specs.
Avoiding the lost and translation trap.
The role of a good business analyst or
product owner. Involving developers
early, not just for estimates but for
feasibility. And then the next one,
requirements are living documents. How
to manage changes mid- project, change
control, backlog, grooming. Tools to
track and update requirements. Jira,
confluence, notion, etc. tying
requirements directly to tasks, code,
and test cases. So, I'll let you go
first. Bonus material. Where where do
you want to add that?
Well, you can't knock the tools, you
know, using Confluence or some project
tracking tool is really good. We beat
this horse to death death, but you know,
code repository back, you know, always
checking your code. Uh, you know, tie
your code to tickets, ties it to
requirements. Um,
and I guess the big one is get your
teams involved early on.
I mean that is the big one because if
you don't you or if you're running
behind on getting your requirements
together there there is one of those
situations where you want to get started
early but if you don't have enough of
the requirements solidified or you don't
have enough of the why
bringing them in too soon could get you
going down too many rabbit holes. So
sometimes you have to kind of weigh the
balance here of if you get your
developers in front of this and you
start getting more questions, more
confusion than answers, it might be
worth pausing with the developers, going
back, spending a little more time with
the requirements and the customer to get
things refined and then go back to your
developers. If you sit down with your
developers and everything seems to be
going smoothly, everyone has a clear
picture, that's good. But do that again
like Rob says with, you know, Scrum, do
it in sprints. Do it more often. Make
sure everyone's on the same page. If you
start getting to where your team is
confused again or you seem to be going
off track or floundering, pause. That
might be a situation where you've hit a
gap in the requirements or your
requirements aren't clear enough for
them to continue. So those are just some
warning signs to help you stay on track
with your projects.
>> I will I going to do the keeping up with
the documentation uh with requirements
in particular.
I think it is very important to uh stay
in sync as you're particularly if you're
doing uh agile approaches is because we
there have been more than a few times
I've been in a project where it evolves
as we are you know moving through
implementation and what you started out
with for the vision for the application
changes sometimes substantially and
sometimes the uh particularly like
there'll be an approach that you were
going to take to solving the main
problem that now you've realized that's
not really a good approach. approach and
you're going to try something different
and that can be very confusing if you
are not clearly updating things to say
oh by the way we are now moving in this
direction we have done a pivot or
something along those lines be very
clear when you're doing those kinds of
changes and don't be afraid to like
gather the troops around essentially and
say okay let's make sure everybody's
clear that we are this is what we did
but now we're throwing that out and this
is what we're and to make sure that
everybody understands that impact
because whenever you make those changes,
uh, it can be confusing and you can end
up in situations, particularly if you're
not communicating that back to the team
where somebody gets left behind because
they weren't paying attention or weren't
part of that meeting or things like
that. That being said, it is time for us
to wrap this one up. We've got to go
deal with our own meetings and rounding
up the troops and all that kind of
goodness. Thank you so much for your
time. We appreciate you guys hanging out
with us, listening to all of this. Um,
feedback, however you can get it to us,
we will love to hear it. U, if you can
find a way to snail mail us, we may find
a way to get to a mailbox. I don't know
if that's going to happen, but email
always is the best way to go.
[email protected].
Check us out. Give us a drop us a line
and we would be happy to we'll even give
you a shout out if you would like. Just
let us know if you want to be anonymous.
We're good with that one, too. As
always, go out there and have yourself a
great one. Enjoy your your summer,
whether it's hot or not, and we will see
you next time.
[Music]
Transcript Segments
1.35

[Music]

27.119

record and we're going to dive right

29.119

into this one which is

32.079

getting it right. How effective

34.32

requirements gathering leads to

36.079

successful projects. Wow,

39.6

there's a lot there. Let's see how this

41.44

one goes. Um, this is another one. We

43.68

could probably talk for days on this one

45.6

alone, but we're going to see how we're

48.32

going to do it and try to keep it to our

49.52

normal three, two.

52.16

Well, hello and welcome back. We are

55.52

building better developers. We are

56.879

developer and now we are with AI. Yes,

60.16

we are using AI in past episodes and

63.199

we're gonna see what it spits out. It's

65.04

really just a fun little experiment

66.799

we've had here, taking some of these

69.36

past topics and then basically get to

72.24

redo them, but we start with what AI

74.56

suggests we should talk about. Sometimes

76.96

it's very much what we talked about

78.32

before. Sometimes it's very different,

80.4

but every time we get some new

82.72

conversation points going out of it.

84.24

It's almost like having a third person

86.32

suddenly added into our series of hosts.

90

First of all, let's talk about the

91.36

people that are here. My name is Rob

92.72

Broadhead. I am a founder of developer

95.04

also a founder of the founder of RB

97.28

consulting where we help you do

99.439

technology better. The whole thing about

102

technology is that it's there. It's

103.92

everywhere. You can't escape it. Doesn't

106.72

matter what your business is. I don't

107.92

care if you're you've got a pet store or

110

if you've got an e-commerce suite or

112

whatever you've got. Technology is

114.24

something that is here and it is here to

116.32

help you. And we are here to help you

118.719

use technology to make your business

120.479

better. We sit down with you, talk about

122

your business, walk through and create a

124.24

special a unique recipe for success for

127.28

you that involves leveraging technology

129.84

through integration, simplification,

132.64

automation, innovation. We may need to

134.879

build something new. But a lot of times

136.8

what we really need to do is just walk

138.56

through your processes, the steps you

140.8

take, and then show you how to make

143.04

those go faster. Whether it's

144.48

eliminating steps or automating things

146.879

so that now you can just get rid of it.

149.12

You don't have to touch it. It just

150.8

happens. You don't have to worry about

152.08

all the errors and and human stuff that

154.319

happens and you can actually go worry

156.239

about your business and growing your

157.599

business instead of working in your

159.519

business. Now, good things, bad things,

164.4

uh whole lot of stuff going on lately.

166.879

So, we will go with um good thing is and

170.72

this is we'll go back to weather because

172.319

hey, weather has been one of those

174.319

things. Good thing is is that we have uh

176.959

we've come through a little bit of a a

178.8

rainy period of starting to see some sun

180.8

again and stuff like that. Bad thing is

183.44

is now summer is here where we are at.

185.84

We had a great spring lasted into June

188.72

actually I think almost to July and now

191.12

suddenly bam summer is here and uh it

194.56

makes me very happy that that's a good

196.239

thing. I have fans and I have AC. I even

199.28

have like a little USB powered one that

201.44

wherever I take my laptop I can put a

203.599

fan right there in my face so I don't

205.92

sweat bullets just like Michael is

208.239

because he knows his turn on the hot

209.76

seat is next. Go ahead and intro

211.84

introduce yourself. Hey everyone, my

214.239

name is Michael Malashsh. I'm one of the

215.68

co-founders of developer building better

217.519

developers. I'm also the founder and

219.44

owner of Envision QA. We are a software

222.239

consulting group focused on helping

223.92

startups and growing teams improve their

225.68

software quality through smarter

227.44

testing, automation, and development

229.44

workflows. At Envision QA, we work with

231.76

clients who want to ship faster without

233.44

sacrificing quality, offering support in

235.84

everything from test strategies and

237.439

continuous integration and development

239.28

to scalable QA practices. You can learn

242.08

more about what we do at envisionqa.com,

244.48

where we share resources, insights, and

246.64

ways to connect if you're looking to

248.239

level up your software delivery.

251.04

Let's see. Good thing and bad things. Uh

253.599

bad thing, yes, it is July. It is hot. I

257.359

walked outside today. I mean, first

259.759

thing this morning, we're talking it's

261.359

barely sun up at 6:00. Walk out my

263.68

glasses fog over there. It was so bloody

266.56

humid this morning. Uh it was miserable.

269.919

Uh thank goodness we have AC, but also u

273.919

my wife has a little 10-ft pool, kid

277.12

kind of kitty pool she puts up every

278.639

year. And uh it's in a nice shady spot.

281.52

So uh after we, you know, struggle with

284.4

all the yard work and dying of the heat,

286.16

we can just jump in that and cool off

287.6

real quick. Uh except when the humidity

289.44

is really bad, you just literally just

291.759

cool off, but you just stay hot, humid,

294.16

and wet all day. It's just miserable.

297.04

>> Yeah, that is probably the worst when

298.24

you like we we had this recently where

299.84

you like would walk out of an air

301.12

conditioned place and it didn't matter

302.479

how dry you were, two seconds later you

304.96

would be wet. and not necessarily from

306.639

sweat. It's from just everything

307.919

condensing on your skin.

310.88

That's a whole other problem AI hasn't

313.52

solved yet. But it is how it solved our

316.8

problem of having some cool stuff to

318.32

talk about. So, we're going to dive into

319.759

this one. Uh the episode we're talking

321.6

about that we're going to we took this

323.28

topic from the past was called getting

325.68

it right. How effective requirements

327.44

gathering leads to successful software

330.08

projects. Now, this again was one where

332.639

it did not give me a whole lot of like

334.24

oh great topic. It just jumped right in.

336.16

So it said episode object objective help

339.12

developers, PMs, and founders understand

341.12

the critical role of clear, complete,

343.36

and validated requirements and how

345.52

skipping this step sabotages software

347.68

success before a line of code is

349.6

written. Ah, get the choir going because

352.4

we're going to preach. Um, keep talking

354.72

points. First one, why requirements

357.44

gathering is the silent killer or

359.6

savior.

361.52

Then here's the sub bullet points.

363.039

There's three of them. First one, most

364.96

software failures aren't due to poor

366.56

code, they're due to unclear goals.

368.8

Second one, misunderstandings between

370.639

stakeholders and developers. Third one,

372.88

how vague or evolving qual requirements

375.199

lead to scope creep, rework, and budget

377.44

blowouts.

379.84

We could do a season, I think, on every

382.96

single one of those.

385.68

One of the things that we do every time

388.8

we start a project is we sit down as I

391.919

talked about part of the reason we sit

393.52

down with our customer and talk to them

395.12

about their business is we start with

397.36

the why and then we start getting into

399.919

not the why of their business but the

401.759

why if we're doing a project of that

403.68

project because this is where

406.4

requirements gathering starts is we're

409.28

going to talk about what are we building

411.199

this is sort of back to when we talked

412.72

about documentation. It starts like what

414.4

is the problem you're trying to solve?

416.56

How are we trying to solve this? What

418.56

does the solution look like? What are

420.639

the steps involved in that process to a

423.68

solution? What are the variance of that?

426.72

What are the requirements of that? What

428.16

are the constraints of the data that's

430

in that? What does it need to look like

431.759

when the output comes out? All of those

434.4

questions are just the tip of the

436.72

iceberg. And they are so key simple

441.599

things. I will tell you one of the

443.599

simplest thing that I have seen blow up

445.599

projects. I bet in 30 to 40% of the

448.88

projects that I've dealt with over the

450.319

last many many many years, even though

452.16

I'm so young, you will say, "How is it

453.919

you could possibly doing software that

455.599

long?" Side note there. Um, is how many

460.639

users will be on this at a given time?

464.16

Or a variant of that is is each user

467.12

going to have their own account or is

469.12

there some sort of a like say a

471.199

organizational account that has

473.28

employees or members or things like that

475.199

or a household that has a mom and a dad

477.919

and kids and things like that. That

481.919

one would think is a very simple

484.639

question to answer. people are either

486.24

going to say yes this is always going to

487.599

be one user or no we're going to build

489.36

this so that there's going to be an

490.4

organization and they're going to have

491.44

employees and blah blah blah.

494.08

There is so much so many devil in the

497.599

details to those answers

500.879

and it is so often a problem because the

503.68

pro the customer when they're talking

506

about it they originally have this very

508.72

small we'll say or very focused solution

511.52

and this isn't a knock on them. It's

513.279

just like they're solving this problem.

515.519

But then as we grow, as we get into the

517.76

implementation, they their eyes start to

519.68

open up and say, "Oh, well, there's a

522.24

different approach I can take that now

524.08

explodes where I can provide value." And

526.88

then suddenly it goes from no, we just

529.6

have a person that logs in and they can

531.519

have one password and they never change

533.04

it and all this kind of stuff to now we

534.8

have to have multiple users and we're

536.72

going to put it out on the internet and

538

they have to have all of these password

540.08

guidelines and they have to be able to

542

relate accounts to each other because

543.44

they need to share data in some way.

545.839

These things are

548

very valid solutions to so many

550.88

problems. But if we don't nail those

553.12

things down and agree that that's what

554.72

we're going to stick with, then

557.12

hopefully you can see that that can

558.72

really blow this stuff out of

560.48

proportion.

562.08

I've got to like quiet the choir down

564.08

like a little bit here. I've got to step

565.68

back because I know otherwise I'm going

566.959

to go too long. What your thoughts on

568.56

this, Michael?

570.16

>> Oh my god. Yeah. Uh such a clear example

575.279

of how quickly something can go off the

577.76

rails uh from like a small scope to a

580.8

larger scope of a project. One of the

583.76

other things you potentially run into is

586.72

your customers may already have existing

589.12

software and they're looking to move to

591.12

something similar or upgrade. The

594.32

problem is depending upon how old that

596.959

software is, what they are expecting or

599.68

what they're used to, they're looking at

602.72

basically for something similar to what

604.24

they have. But the problem is if it's so

606.72

old, what they have doesn't exist or

610.48

what exists today is so vastly different

614.64

that well, yes, you can literally check

617.44

all the boxes for their requirements for

619.2

what the new software is. The problem is

621.76

what pieces is the new project going to

625.12

look like? You're going to have to spend

626.8

a lot more time in the requirements

629.36

gathering phase kind of educating your

631.92

customer on what is available, but at

635.279

the same time trying to keep it concise

637.12

and say, "All right, what is your why?

639.92

What is it that you need?"

642.72

And then what are basically what is the

645.92

absolute requirements to get you off

648.399

your old system on your new system or

650.64

build you an existing system to all the

654.079

bells and whistles. You have to be very

656.079

careful in these situations because a

658

lot of times they'll be like, "Oh wow,

659.839

yes, let's go with this or this or

661.6

this." And it's like, "Okay, you've just

663.12

blown the whole scope of the project and

665.12

you're out of money before you even get

666.72

off the ground." So you have to be

669.279

careful.

670.8

um not just

673.68

understanding their why, but you also

675.279

have to be careful understanding what it

678

is that they need built.

680.959

If is it like a calendar system? Okay,

682.959

calendar being like Microsoft calendar,

687.2

Google calendar, you know, calendars

689.44

come in many flavors, but at the end of

691.76

the day, a calendar does what? It allows

694.72

you to schedule appointments or schedule

697.2

events in different times.

700.399

invite different people to them. It it's

702.64

basically a meeting place basically a

706.079

card catalog or a post-it note for a

708.88

meeting. That is kind of the bo that

712.32

really boils it down to the simplicity

714.32

of it. But if you get to the core of

716.959

whatever it is that you're building and

719.2

stick with the core requirements, once

722.32

you have that, everything else that you

725.2

put on top of that is

728.56

you have to be careful with that because

729.92

that's where the scope can come in

732.16

because you can now start adding too

733.68

many bells and whistles. But stick with

735.68

that core, get all those requirements in

738.639

place and then slowly work your way out

741.92

from there.

744.079

I think that is the it is sort of the

747.279

measure twice cut once approach uh

750.079

besides requirements in general but it

751.839

is to really understand what it is

754.639

you're building. It's like if you're

756

building a physical building one of the

758.959

things you probably need to know from

760.72

the start and I'm not a architect of

762.88

that sort but you probably need to know

764.639

for example how many floors is this

766.399

going to have? Is it going to you know

768.8

how many rooms does it need to have? how

771.279

big is the foundation need to be? Uh

774.16

some things like that. And that is what

776.399

we're actually dealing with when we're

777.68

talking about requirements. Now, this

779.6

next section is actually really

781.04

interesting as well. Again, I could do

783.6

and maybe we will. We could do seasons

786

on this. What good requirements actually

788.639

look like. It's got four sub points. Uh

791.76

smart requirements, specific,

793.68

measurable, achievable, relevant,

795.76

timebound. Next one, the difference

798.16

between features, goals, and

800.32

constraints. Next one, functional versus

803.12

nonfunctional requirements. The fourth

805.68

one, avoiding assumptions. Explicit is

808.399

always better.

810.32

I'm going to go ahead and just beat on

812.72

myself a little bit. Self flagagillate

814.24

on the last one there. Explicit is

816.88

always better. Now, I will I will we've

820.079

probably mentioned this before, but I

821.92

have a very different side of

824.32

requirements of Michael. We are polar

826.56

opposites probably in that sense. I am

829.279

very much a highlevel go do it you know

833.76

don't get very I don't I do not get

835.76

bogged down in details when I'm building

837.519

requirements of as far as like sending

839.839

them out to development team. If I'm

841.519

building requirements documented talking

843.04

to the customer that's a different

845.199

thing. Then I'm going to sit down there

846.32

and we're going to walk through a lot of

847.44

stuff and we're going to figure all that

849.6

stuff out. But then once we're done,

851.76

what I'm going to do usually is I'm

853.04

going to say these are the things that

854.32

matter and then allow somebody to go fix

857.76

the, you know, build the rest of it and

859.68

have some level of um artistic freedom

863.44

for for lack of a better term.

866.48

Michael's on the other side is he's

867.839

going to write stuff because he's

869.12

thinking about like, well, how do I test

870.72

it? So he wants the bullet points of,

873.04

well, it does A. If you do A, it B

875.92

should occur. If you do C, D should

877.76

occur. That's if you've got that then

879.92

your tests literally can write

881.68

themselves in a sense especially if

883.76

you're using AI. So the problem here is

887.839

that we want to we don't want to

891.279

micromanage and design and implement

893.6

during requirements gathering and this

895.6

is where I think a lot of times that we

897.04

we find struggles. Now some of this goes

898.959

back to the other bullet points things

900.399

like smart requirements or uh features

903.04

versus goals versus constraints and

904.8

functional versus non-functional.

907.68

I think the challenge with requirements

909.44

is being detailed with the requirements

912.72

without getting yourself detailed

914.8

because you've already put

916.32

implementation into the requirement.

919.36

It really is having that focus on the

922.88

business and the end result as opposed

924.959

to the implementation piece of it. Uh

927.839

this is part of why a lot of times I'm

929.6

I'm a big fan of not even talking about

932.56

uh the implementation language and

934.959

environment stuff like that until you

936.399

actually get done with requirements

937.76

first is actually walk through them and

939.519

and keep yourself free from the

941.36

implementation side because if there's

943.76

going to be a problem implementing it

945.12

you can figure that out further down the

946.8

road and say okay we need to make some

948.399

adjustments uh first let's figure out

951.04

what the actual requirements are and if

952.639

we have to change a requirement then at

953.92

least we're changing it based on uh

956.48

something that we need to do, but at

957.839

least the requirement is tied back to

959.519

something that we actually need for the

961.6

end user. And so while explicit is going

965.92

to be is very useful and very helpful, I

969.279

will fall back on a little bit of the u

972.32

you know the a little bit the agile

974.88

approach of it is very useful is very

976.959

helpful. If somebody says if if their

979.12

requirement is this has to be this color

981.68

blue, then okay, let's make sure that we

984.8

specify that. But if it's not and it's

988.24

just that happens to be they want

989.92

something close to that because it's a

991.519

favorite blue of theirs or something

992.88

along those lines then we need to make

995.279

sure that that actually is not a

997.04

requirement. So we want to be specific

998.56

when it's a requirement and explicit

1000.56

when it's a requirement. We actually

1003.279

don't care if it's not a requirement. I

1005.519

mean it's like and if there's something

1007.04

and if we should care then guess what

1009.759

it's requirement. It's like one of

1011.12

these, you know, circular arguments to

1013.199

some extent, but we need to nail those

1015.6

things down. Be very clear early on,

1018.88

especially in your questions of things

1020.56

like, does that really matter? And if

1022.959

somebody says yes, it matters, this goes

1024.559

back to a little bit what Michael was

1025.679

hitting at. You may end up blowing out

1027.439

your entire budget before you even start

1029.52

because too many things matter. All

1032.72

right, I'm gonna let you dive in on it

1034.24

now.

1035.28

All right. So, I like being explicit

1038.16

because I like test-driven development.

1040.4

Now, I also agree with Rob though where

1043.12

you don't need to put too much

1044.48

implementation into your requirements.

1047.039

However, I am a strong believer if you

1049.52

are writing a requirement, it should be

1051.36

in the form of a user story. It should

1053.679

explain what it is that you are supposed

1056.72

to be building and what is the expected

1060.48

result of that. It does not have to be

1062.88

implementation but it essentially has to

1065.12

say is the software has to do X and from

1068.32

the user perspective or from the

1070.08

software perspective it should do Y.

1073.84

What happens in between up to the

1075.52

developer but if you do not have those

1077.44

two things in your requirements one you

1080

don't know what you're building and two

1081.44

you have no idea that what you built

1083.6

meets the requirements that you're

1084.96

building. So you have to be explicit

1087.84

enough in the requirements to define the

1090.96

task that you're doing. And if you're

1093.84

doing it right and if you're being

1095.76

explicit enough, you're going to find

1097.12

very quickly that the requirements that

1100

you're trying to put together are either

1102

a too narrow, too refined, or too broad

1106

and need to be broken down into smaller

1108.08

stories so that you can actually divvy

1110.64

up the work and get it done faster.

1112.559

Because if you're at that large uh if

1115.6

you have that large story that can have

1117.44

many possible outcomes, you could be

1119.44

going down rabbit trails, you could be

1121.039

opening up for interpretation and then

1123.84

you essentially could start building the

1125.84

software and find out you have to go

1127.039

back and refactor things because you put

1129.2

the cart before the horse or you jumped

1131.52

ahead on some things or you did

1133.919

something that wasn't even a part of the

1135.2

user requirement. Even though it looked

1136.64

like it met the requirement, it didn't.

1139.2

So to me being more explicit is really

1143.12

define the story well enough that you

1146.16

know what it is you're building or what

1148.799

has to be implemented and essentially

1152

how it does it work what is the outcome

1155.6

of what it is what this requirement is.

1158

If you have those two things, then you

1160.32

should have no doubt when that developer

1162.64

picks up that ticket and writes that

1164.48

code, when it gets done, he knows that,

1166.96

okay, this meets that second condition,

1171.36

when I run this piece of code, it does I

1174.559

I get the expected outcome. If you don't

1176.799

have that in your ticket and they say,

1178.48

"Oh, I'm done." How do you know you're

1181.039

done? If you look at a ticket and you

1183.28

can't say, "What is it that this is

1186.4

providing?" then your ticket is not

1188.88

explicit enough.

1191.2

>> I want to go to that is and this is a

1193.039

little bit of a shameless self-plug but

1194.559

I I apologize but it's because it

1196.24

reminded me of this. Um I think part of

1198.48

the problems with user stories I love

1200.08

that is it should be a user story

1201.679

because that should give you it it

1204.24

really within itself if you're doing it

1206

as a user story is it is doing the

1207.84

things like tying you back to the why

1209.919

and giving people the understanding of

1211.76

what we're actually trying to do and not

1213.679

just you know write this thing that does

1216.24

this thing. it doesn't and nobody

1218

actually knows why it is. This gives

1219.76

them uh reason and also gives them an

1222.48

opportunity when they're implementing it

1223.919

to uh have some you know some

1226.08

efficiencies and things like that

1227.28

because like oh this is where we're

1228.559

going so we can do this and this is

1229.919

something we want to check out all the

1231.2

time. uh by the same

1235.12

>> I want to follow up on what you just

1236.72

said with that though you have to be

1239.36

careful with the requirements and the

1241.76

tickets as you're building them because

1243.52

if you give those tickets to your

1245.28

developers out of order or oh hey go

1247.919

build this small piece if they don't

1249.76

know enough of the big picture you could

1252.32

end up in a rabbit hole of what you've

1254.32

written doesn't plug into the big

1256.24

picture.

1257.919

That's true is you need you definitely

1259.6

need I I will back up there and just put

1262.32

that extra caveat to the whole thing.

1263.84

The warning over all of this is that

1265.2

like you should not be peacemealing

1267.44

requirements to your developers. This

1268.96

should when you go through this they

1270.48

should actually be able to have access

1272.24

to the entirety of the user story so

1274.96

they can understand what's being built.

1276.96

Now, back to my point is that with the

1279.12

user stories, a user story you need to

1281.76

think more of instead of like, you know,

1284.72

a long time ago in a galaxy far far

1286.72

away, there were some people blah blah

1288.4

blah. You need to think more like uh

1291.84

scripts for movies and stuff like that

1293.6

where there's directions in there. Is

1295.12

there things like, you know, the you

1297.36

know, the lighting opens up and it's a

1299.28

little bit of a blue and then somebody's

1300.88

sh staring off in the distance and blah

1302.799

blah blah. Those things more detail.

1305.919

What happens a lot of times is this is

1307.679

it's user stories like the user needs to

1309.6

log in. Okay, cool. You need to tell me

1312.559

more. And this is what we've added when

1314.64

we've and it's I got to remember which

1316.96

one it is. I think it's the it's the

1318.159

software development book on out on the

1319.76

RB site. You can go find it. It's free.

1321.84

It's an ebook. But I have in there a

1325.039

user ca a use case user story template

1329.2

that is not just like you write your

1331.12

little thing. There's a lot of questions

1333.36

in there. There are details to that

1335.44

story and that is what you're going to

1337.36

need for the requirements because it

1338.72

can't be as it's not going to be as

1340

simple as the user needs to log in. It

1342.96

is the user needs to log in and things

1345.28

like but it needs to automatically log

1347.36

them out after 30 minutes or they need

1350.48

to have a password or they need to be

1353.12

able to do it without a password or all

1356.24

of the there's a lot of things that go

1358.559

into even the most simple of stories and

1362.08

making sure that where there are

1363.919

requirements as opposed to just like

1366.159

yeah it'd be cool if it worked this way

1368.159

those actual requirements they need to

1369.84

be laid out there and that includes

1371.84

things like limits and validations. So,

1373.679

it's things like, hey, they need to be

1375.679

able to create a user account and have a

1377.44

display name. Well, how long does the

1379.919

display name need need to be? Like, oh,

1381.76

it needs to be open text. They can make

1383.2

it as long as they want. Okay. Well,

1384.72

what happens when we start showing, you

1386.48

know, somebody decides to have something

1388.159

that is literally 4,000 characters long

1390.64

and it's in a list of users and suddenly

1392.4

they've blown out the entire screen.

1394

There's things like that that need to be

1395.36

discussed and I don't want to get too

1396.799

far in there. Probably already have gone

1398.32

down that rabbit hole too far. Um that

1401.679

is definitely an area that you need to

1403.84

be paying attention is that the level of

1405.84

detail that you add to your users

1407.84

stories. Now uh moving on uh to try to

1411.12

get a little bit more in on this one. Uh

1412.72

techniques for effective requirements

1414.24

gathering. Again whole season on this

1417.12

stakeholder interviews and empathydriven

1419.679

discussions user stories. We've said

1421.679

that use cases and personas prototypes

1424.4

wireframes and mockups as communication

1426.4

tools. Joint application development. JD

1428.88

sessions and workshops. I'm going to

1430.64

dive right into uh prototypes,

1432.72

wireframes, mockups. I love Michael's

1436.799

always about the kitchen sink and stuff

1438.48

like that. I am a clickable demo person.

1440.96

I I was with a group that we were called

1443.84

our managers names/dangerous demos

1446.48

because we could crank out demos that

1449.44

you would look at them and you thought

1451.44

they were real.

1453.36

Those are the things I love for

1455.76

requirements is not just getting the

1458.799

basics of it and saying, "Okay, here's

1460.559

what we've got," but it's actually

1462.08

putting it back in front of them so they

1463.84

can see it. And there are tools like

1465.919

Figmas and stuff like that that are out

1467.52

there that allow you to do this stuff

1469.6

very quickly, very high quality, and

1472.559

allow you to get a lot of feedback

1474.559

quickly. I was literally in a call just

1476.48

a few hours ago with a customer where

1478.08

they were a little bit lamenting and a

1480.24

little bit apologizing that they did not

1482.72

have as much input six months ago as

1485.76

they do now. But I told them I was like

1487.919

part of it is we were building an

1489.84

interface for them that they needed they

1491.679

needed to be able to actually like work

1493.36

with this thing before they could get a

1496.72

really good honest assessment and

1499.12

evaluation of it and and tell us where

1501.12

it needs to go. So, I think things like

1503.679

that, the more we'll call it real in

1506.88

quotes that you can make it in front and

1508.559

put it in front of them, the better

1510.08

feedback you're going to get. Thoughts

1511.52

on that?

1512.559

>> Yeah, I I know you kind of get on me

1515.679

about the kitchen sink, but I also like

1517.279

the prototypes as well. Um, I I like the

1520.64

Figma tools and that, but I'm like old

1522.72

school, I guess, because I'll just th

1524.08

open up like a PowerPoint or some type

1526.08

of presentation thing and just quickly

1527.84

copy paste, throw something together

1529.279

because I guess just because I've been

1531.6

doing it for so long, it takes me less

1533.919

than an hour or two to throw a clickable

1536.72

demo, so to speak, in a PowerPoint slide

1540.08

and make it look like you are actually

1542.24

going through a demo uh of an

1544

application. Especially when you're

1545.679

dealing with web applications, it is so

1547.76

easy to just throw something together

1549.279

like that. Kitchen sync apps though for

1552.08

me um the reason I like the kitchen sync

1554.72

app is if you have done a kitchen sync

1557.12

app right and you have taken all these

1559.039

things and pieces that you've written

1560.559

for other tools and applications, you

1563.039

put them in a kitchen sink app, you

1564.72

could almost essentially have a hello

1567.679

world or uh Swiss Army knife interface

1571.679

for your kitchen sink app where you

1573.36

could literally go click through. Oh,

1574.64

this is what I'm talking about. Click

1576.08

here. Oh, here's a mail interface that

1577.76

we've written. This it would look

1579.039

something like this. Or, oh, click over

1580.48

here. Hey, here's another feature we're

1582.4

talking about. You could almost

1583.919

completely demo real functional code

1587.679

peace meal, but in a way that you could

1590

explain to the user visually what it is

1592.88

that you're talking about building for

1594.24

them.

1596.64

And in that, we will wrap this one up.

1598.96

We still these things are great. That is

1600.88

a nice thing about this. we could

1602

probably do a whole other season of AI

1604.4

and we'd just start at the bottom and

1605.679

work our way back up and we would get a

1607.52

whole different set of uh useful

1609.6

information. But that's why if you're

1611.6

listening to us right now, you should

1613.039

actually go check us out on YouTube,

1614.64

check out the developer channel because

1616.64

we have bonus material after every

1618.88

episode and a lot of times we actually

1620.96

go a little further into these

1622.72

particular this season of AI.

1626.08

As always, love to hear from you. Send

1628.24

us an email [email protected].

1630.559

We would any feedback, positive,

1632.4

negative. We just want to know what

1634.48

works for you, what doesn't work for

1635.84

you, and how we can do, you know,

1637.919

basically how we can do our job better.

1639.279

How can we help help us help you? Uh,

1642.32

you can check us out on xdevelopure.

1645.12

You can check out the developer.com site

1647.6

and we've got tons and tons of stuff out

1649.679

there. As I mentioned, YouTube, uh,

1651.76

anywhere that you listen to podcasts,

1653.76

developer, building better developers is

1655.52

out there as well. Uh, there's a

1657.279

Facebook page. We're out there. or if

1659.44

there's somewhere else you'd like to see

1660.48

us. We're not on Instagram or anything

1661.919

yet. If you want to see us out there,

1663.76

we'll figure it out. Uh we'll black out

1665.6

pictures of ourselves so we won't have

1666.88

pictures of ourselves everywhere. That

1668.159

just that would be a little too

1669.52

disturbing to the internet's

1671.039

equilibrium. That being said, my

1673.2

equilibrium is as disturbed as it's

1675.279

going to get. So, I'm going to wrap this

1676.64

one up. Go out there and have yourself a

1678.72

great day, a great week, and we will

1681.039

talk to you next time. All right, then.

1684.72

Bonus material. I'm going to dive into

1687.679

Let's see. We got two more things. So,

1689.679

bridging the gap between business and

1691.44

dev teams. Uh, four subs. Translating

1695.2

business goals into technical specs.

1697.039

Avoiding the lost and translation trap.

1699.36

The role of a good business analyst or

1701.039

product owner. Involving developers

1702.88

early, not just for estimates but for

1704.559

feasibility. And then the next one,

1706.24

requirements are living documents. How

1708.32

to manage changes mid- project, change

1710.32

control, backlog, grooming. Tools to

1712.559

track and update requirements. Jira,

1714.399

confluence, notion, etc. tying

1716.96

requirements directly to tasks, code,

1719.279

and test cases. So, I'll let you go

1722.32

first. Bonus material. Where where do

1724.24

you want to add that?

1727.84

Well, you can't knock the tools, you

1730.399

know, using Confluence or some project

1732.799

tracking tool is really good. We beat

1736

this horse to death death, but you know,

1738.799

code repository back, you know, always

1742.24

checking your code. Uh, you know, tie

1744.159

your code to tickets, ties it to

1746

requirements. Um,

1749.279

and I guess the big one is get your

1751.679

teams involved early on.

1755.84

I mean that is the big one because if

1757.76

you don't you or if you're running

1761.6

behind on getting your requirements

1763.2

together there there is one of those

1766.64

situations where you want to get started

1769.6

early but if you don't have enough of

1772.559

the requirements solidified or you don't

1775.12

have enough of the why

1777.52

bringing them in too soon could get you

1779.679

going down too many rabbit holes. So

1781.44

sometimes you have to kind of weigh the

1784

balance here of if you get your

1787.44

developers in front of this and you

1788.96

start getting more questions, more

1790.48

confusion than answers, it might be

1793.919

worth pausing with the developers, going

1796.64

back, spending a little more time with

1797.84

the requirements and the customer to get

1800.48

things refined and then go back to your

1802.64

developers. If you sit down with your

1805.279

developers and everything seems to be

1807.2

going smoothly, everyone has a clear

1808.72

picture, that's good. But do that again

1812.96

like Rob says with, you know, Scrum, do

1815.919

it in sprints. Do it more often. Make

1817.84

sure everyone's on the same page. If you

1820

start getting to where your team is

1822.64

confused again or you seem to be going

1824.88

off track or floundering, pause. That

1828.48

might be a situation where you've hit a

1831.36

gap in the requirements or your

1833.36

requirements aren't clear enough for

1835.6

them to continue. So those are just some

1838.08

warning signs to help you stay on track

1839.84

with your projects.

1842

>> I will I going to do the keeping up with

1845.12

the documentation uh with requirements

1847.039

in particular.

1849.36

I think it is very important to uh stay

1852.799

in sync as you're particularly if you're

1855.36

doing uh agile approaches is because we

1858.32

there have been more than a few times

1859.52

I've been in a project where it evolves

1861.6

as we are you know moving through

1863.2

implementation and what you started out

1866.72

with for the vision for the application

1868.88

changes sometimes substantially and

1871.76

sometimes the uh particularly like

1874.159

there'll be an approach that you were

1875.279

going to take to solving the main

1876.559

problem that now you've realized that's

1878.159

not really a good approach. approach and

1879.44

you're going to try something different

1881.679

and that can be very confusing if you

1885.919

are not clearly updating things to say

1888.72

oh by the way we are now moving in this

1891.84

direction we have done a pivot or

1893.679

something along those lines be very

1895.76

clear when you're doing those kinds of

1897.919

changes and don't be afraid to like

1899.84

gather the troops around essentially and

1901.44

say okay let's make sure everybody's

1903.919

clear that we are this is what we did

1906.24

but now we're throwing that out and this

1907.919

is what we're and to make sure that

1909.44

everybody understands that impact

1910.88

because whenever you make those changes,

1912.88

uh, it can be confusing and you can end

1914.48

up in situations, particularly if you're

1916.32

not communicating that back to the team

1918.64

where somebody gets left behind because

1920.32

they weren't paying attention or weren't

1922

part of that meeting or things like

1923.76

that. That being said, it is time for us

1927.6

to wrap this one up. We've got to go

1929.039

deal with our own meetings and rounding

1931.2

up the troops and all that kind of

1932.64

goodness. Thank you so much for your

1935.12

time. We appreciate you guys hanging out

1936.96

with us, listening to all of this. Um,

1939.6

feedback, however you can get it to us,

1941.6

we will love to hear it. U, if you can

1944.399

find a way to snail mail us, we may find

1946.399

a way to get to a mailbox. I don't know

1947.76

if that's going to happen, but email

1949.039

always is the best way to go.

1952.48

Check us out. Give us a drop us a line

1955.12

and we would be happy to we'll even give

1956.799

you a shout out if you would like. Just

1958.399

let us know if you want to be anonymous.

1960.96

We're good with that one, too. As

1962.88

always, go out there and have yourself a

1964.799

great one. Enjoy your your summer,

1967.519

whether it's hot or not, and we will see

1969.519

you next time.

1972.55

[Music]