📺 Develpreneur YouTube Episode

Video + transcript

Mastering Scope CreepL Navigating the Hidden Challenges in Software Development

2024-08-29 •Youtube

Detailed Notes

Welcome back to the Building Better Developers Podcast, where we continue to explore the developer journey—from novice to expert—focusing on practical skills and mindset shifts that turn good developers into great ones. In this episode, we dive deep into a critical topic that affects developers at every stage of their careers: scope creep, requirements management, and defining what it means to be “done.”

Read More ... https://develpreneur.com/mastering-scope-creep-navigating-the-hidden-challenges-in-software-development

Stay Connected: Join the Developreneur Community

We invite you to join our community and share your coding journey with us. Whether you’re a seasoned developer or just starting, there’s always room to learn and grow together. Contact us at [email protected] with your questions, feedback, or suggestions for future episodes. Together, let’s continue exploring the exciting world of software development.

Additional Resources * Sprint Planning – Setting The Scope (https://develpreneur.com/sprint-planning-setting-the-scope/)

* A Positive Look At Scope Creep (https://develpreneur.com/a-positive-look-at-scope-creep/)

* The Importance of Properly Defining Requirements (https://develpreneur.com/the-importance-of-properly-defining-requirements/)

* Getting It Right: How Effective Requirements Gathering Leads to Successful Software Projects (https://develpreneur.com/getting-it-right-how-effective-requirements-gathering-leads-to-successful-software-projects/)

Transcript Text
[Music]
howdy Everybody by fault we had a great
conversation sorry you missed out on it
I forgot to hit record not for the first
time
um so I think I wanted one of the things
about uh all of you guys just to like
clue you in we're talking about our
topic for today and we're thinking we're
going to go along the lines of like
avoiding scope creep as a sort of a
overall umbrella thing so okay now that
you guys are caught up I can continue my
conversation um I think part of it too
is there's there's General scope creep
and what is scope creep versus what is M
requirements and I think this takes on a
whole different world and I I want to
talk a little bit about how you manage
that in the agile world because this is
also something that's very near and dear
to my heart because I've just I've got a
customer that I've just started working
with that we've it's one of these it was
a really tiny little thing it's like oh
I just want this little thing and it's
like cool but as we started talking
about it it morphed into something much
bigger and we ended up talking about a
whole other application that I'm working
on for him and it's basically it's like
you working with his budget it's stuff
where it's like okay well we're just
going to keep you going along and we're
just going to pay you periodically and
we're just going to throw stuff on you
know on the list and just keep doing
stuff so it's in a sense it's an
open-ended it's not like I'm just
billing whatever I want to write I'm not
writing Bank bank checks but it's an
open-ended project right now and I've
been in both of them are and I've been
in a lot of those and one of the things
is that even in an open-ended project or
an agile project where you haven't
really maybe necessarily defined the the
goal line you still need to do it so
that's where I think that may be even a
part to or a followup to this is is the
world of requirements and scope creep
versus agile and some people I think
feel that agile means that you could
just keep skip you know scope creep
forever but there is hopefully it's tied
back to how agil does I don't want to
spoil all the discussion but um
hopefully that you still have a you know
you're keeping a goal in mind and you're
not just doing like Sprint after Sprint
after Sprint after Sprint that I know
there was a lot of stuff so thoughts on
that as our topic so just to unpack that
so are we looking to start at like
through the agile process like with the
open-ended project can I go through
something like this or are we going
to well and also touch on like the
definition of done or what is done what
our requirements kind of I know we've
talked about requirements before but
within this I think some of these top
points will I know this will probably be
a multiple Conversation Piece but I want
to see how far we want to touch on those
like the end pieces in this first
conversation well I think let's see
where we go if we start with the focus
on which it is it's key things like you
know requirements which defining done is
part of scope creep you know it's like
okay once you define done if go beyond
that that's obviously scope creep but
then there's other stuff within it um
and I like the transition at agile I'm
guessing that our conversation in this
first one will just be this this episode
will really just
be not even touching agile just on a
general sense of scope creep and
requirements and defining done because I
have a feeling we'll have them more than
enough to throw into that and then we'll
we'll follow that up because then we're
sort of in that mode I think it'll be
perfect to then talk to about uh the
agile world and how that's a
little people think it's different and
it is but it also isn't and making sure
that and it gets a little bit more into
like
avoiding uh runaway projects or death
marches or stuff like that because it's
agile and they're like well we didn't
really Define requirements like no you
do Define requirements it's just you are
a little more flexible when they change
does that make sense yeah yeah I follow
with that okay let me move the camera
stuff around so I'm looking more at you
and my camera as opposed to other stuff
and let me get this thing minimized out
are we going to touch on ceremonies at
all with agel or just keep it um because
I think the ceremonies help if
ceremonies are done right then you don't
have some of that right so I guess that
would be part of the I think I want to
bring that up but definitely the in
particular I think it's really it's it
really is it's not necessarily the
ceremonies as much as it really is the
um the deployment
at each Sprint at technically you know
at each Sprint you should deploy working
software so in theory that means that
you don't really run out of you you
could ideally cut it off at any point
and say okay we're done we have working
software you know we're out of we're out
of money or we want to push this forward
but that's not really the case there is
there's always an MVP point and I think
it's it's talking about that the
ceremony should help that to some extent
uh and it's I I think it's perfectly
fine I think that's perfectly within uh
boundaries of what we can talk about
because I think those are some of the
things we're talking about ways to tools
to keep it straight to you know
straighten stuff out so that it doesn't
run off the rails okay works for me
sounds good then let me move this around
let me move that
around and let me find my window again
and sorry everybody you get to see how
the sausage is made hello and welcome
back we are continuing our season of
just building better developers we are
the building better developers podcast
but now we're really talking about the
developer Journey which is hopefully
going to take you from a developer to a
better developer whatever that happens
to look like whether it's a you know
starting at the beginning of your career
and going to end of your career and it's
dramatically different or whether it's
something where you're just starting uh
maybe you want to the beginning of the
year where you at let's look you know a
little bit talking about your journey
through the year this episode I want to
jump right into talking at least about
the
topic is um we're going to talk about
scope creep we're going to talk about
requirements we're going to talk about
what is done what does that mean and
that's something that often is a problem
in projects allows things to get a
little bit out of hand and then you get
into this whole well you know cost
overruns and you miss schedules but if
you didn't know what you're building
it's hard to really schedule that right
as well before we do all of that I want
to introduce myself I just want to leave
that little like you know little hanging
hanging thing there so that you come
back after the introductions my name is
Rob Broadhead I am one of the founders
of building better developers developer
or also a founder of RB Consulting where
we go out and we do we basically make
you we help you find ways to use
technology better through integration
simplification and automation is make
that you know that big expensive car
that you've built in your technology tur
it into a a fine lean
machine on the other side I'm also going
to bring up what we did last couple
times around is like what is a big a
good thing and a bad thing that's
happened since the last time we met that
you want to throw on there and introduce
yourself
Michael hey everyone my name is Michael
Mage I'm also one of the co-founders of
developer ner building better developers
and I'm also the founder of Envision QA
we focus on highquality software and
working with our customers to really
establish what they really need their
technology for is either better software
uh better integration with existing
software or building something very
custom to their needs so good and bad so
good uh making progress on my latest
project we un peeling back the onion
really getting down into some of the
Neer details it's going really well uh
thing's going a little you know not so
well uh it end of the month I forgot to
pay a bill so I had to unfortunately got
hit with a you know late fee but you
know it happens what about you all right
so good stuff I got a lot of stuff I
think this time is I'm just coming off a
vacation got to go visit Aruba if you
haven't been go it's awesome it's really
a a great time we were exhausted by the
time we got done with our vacation but
that was a good one uh bad thing is uh I
mean I guess here's a it's not that bad
but I mean one of those projects where
you need certain permissions and
security and access in order to like get
the project done and I'm just in this
waiting period where it's like I keep
you know it's like every day like hey I
need you to give me this this and this
access and they're just really slow to
respond so it's like you know you're
just drumming your fingers going okay
can't really help you we we got this
project we really want to get done we
should be able to get it done quickly
but not if you don't give us access to
the proper stuff so that's my bad which
actually it's their bad it's just my bad
experience right
now which goes sort of into requirements
and scope
creep now I think one of the big things
about scope creep that I want to
first talk about because I don't think I
haven't really heard a lot of people
think talk about it in this sense is
that what really is scope cream because
a lot of times what we have with
projects is yes there are uh dates that
are you know slip or you have uh you
know change requests and stuff like that
they come in and then so whatever the
original project looked like that little
box that somebody put it in and said
it's going to cost x amount of money and
Y amount of time has
changed and sometimes it's it's often
just called scope creep it's because oh
well we added a feature we added a
feature we added a
feature but people don't always see it
that way because sometimes they think
that and it's whether it's it could be
us as developers it could be them as our
customer is that we added a feature and
I'm air quoting for those who you know I
don't know we need to figure out what
that looks like in the audio world but
for the video world you can see we added
a feature in air quote and what we
really did is we didn't really add a
feature we found a requirement that was
not that you know that was missed there
was a gap in the requirements and this
is where it gets interesting because
depending on how the project is set up
sometimes and actually quite often there
will be different views of whether that
was a problem or a flaw or something
with the development or implementation
team or whether it was something that is
scope creep or something along those
lines now in the very technical sense it
is a new feature because it was not in
the original requirements even if you
thought it was in the original
requirements it's a new feature because
that was not part of the original
estimate now it may seem like I'm
splitting hairs a little bit here but it
is something that I think changes the
conversation and this is about being a
better developer it changes a
conversation
about that particular change
particularly when these things come in
when you get deeper into implementation
maybe you're already you know just
barely on schedule or maybe you're
already behind schedule and now you have
a requirement that comes in that you
realize that oh there was a we missed it
whoever we is somebody missed that
requirement and now that discussion is
it was a requirement is it really a
requirement is it really something that
was requirement or is it something that
we just sort of figured out as we went
along that as that is a nice to have but
because it was probably should have been
you know it should have been caught
technically should have been caught
originally if you did everything right
you would have got that in your
requirements and then in that case it's
like this is it is a requirement and now
moves in the requirements we do have to
adjust our schedules and that we have a
reason for it it's not one anybody likes
nobody's happy with that but it is a
valid reason it's like this is it is
what it is which is different from we're
working Along on our project and hey we
found out that we need to integrate with
this different system or we don't like
the way this worked when we initially
talked about it we need this feature we
need a reporting feature an export
feature an import feature those those
things that show up all the time when
you get a customer in front of the
application they actually start using it
and if they don't have a really hard
example to work
from and this is even these days it
happens more and more is what what
happens is people realize what the
technology can do and then they suddenly
say oh wait because we can do this we
really need to do that and it may be a
very firm requirement but that's a
different discussion and is how you
approach it because it really is Now The
Leverage is more on hey we're adding
something to what we originally you know
we're going to provide we're adding
something because this is now it is it's
a new feature versus you need to take a
different approach when it's a oh we
forgot to put that feature in so it's in
a way not a feature and particularly if
you have and this something that we were
talking about a little bit before we hit
record the idea of when you have a
customer that is or customer
representative somebody that's that that
product owner where they have a lot of
stuff in their head and they have all of
these assumptions that are related to
that there are going to be things where
it's like oh you should know that this
is how this process works or yes of
course that process always has these
five steps and you have to you explain
that well to me it looked like it only
had three steps it I didn't understand
step four and five and so these are
different
conversations the good thing is is that
you can avoid those if you ask those
questions before you get into the
implementation phase the bad this is one
of those good and bad things the bad
things is that you don't always know
what you don't know now this goes a
little bit back to I'll do a flashback
as you can go into our how do you gather
requirements discussion because that's
really where it that's where the you
know the value is that is where your
gold is going to be is by asking the
right questions and assume nothing when
you're putting those requirements
together don't assume that anything is
there and constantly with stuff is there
anything else is there something else
how else does this work let's let me
walk you through the process so for
example if there's if I see three steps
but there's five if I walk you through
the process as a customer and say step
one is this step two is this step three
is that and say does that complete it
hopefully they will say wait you missed
step four and step five those are the
kinds of questions now I think I've
talked long enough to sort of set the
stage on this and hopefully got that I
also want to I wanted to pitch it to you
as well to sort of talk about the
defining what done is because I think
that gets into your favorite way place
to talk about testing and things like
that I know it's subtle but I've picked
that up so thoughts on all
this yeah
so I liked how you kind of laid out the
two different ways where you kind of
have scope like feature creep and then
you have kind of like a bug creep where
you there's actually something wrong
with the system but you don't actually
catch that until you actually get into
the software uh and work with it uh
interestingly I ran into that recently
uh we found out that we had reports
created one way we're switching to
another uh data system in the back end
and all of of a sudden the sort order of
our reports is not the same so we
uncovered a bug but they want apples to
apples they want the old report or the
new report to look like the old report
which can't happen because the Sorting
there's no way to we we would
essentially have to create a bug to make
it look like the old way but since we're
actually pulling different data we can't
really duplicate so it's kind of an
apples and oranges issue which is
something you do run into uh with
features it's like oh the software we
think works like this like Rob touched
on but it is actually doing this so it's
not an Apples to Apples it's an apples
to oranges it's like it's not doing what
we thought so we need to take a step
back and understand what that
requirement is Define it and make the
software work the way it's expected to
not necessarily the way we think it
does that kind of gets you to that
definition of done you know
what is the end goal for the change the
requirements whatever it is you're
working on what does it mean to be done
is it the feature has to be complete uh
in agile you try to go through smaller
Sprints so you always delivering code so
you don't want these monolithic
requirements or monolithic changes so
how can you break it down into a way
where we can roll things out in stages
and still have different stages of done
uh for instance like if you're building
a big application that has security well
you can build the login screen you can
validate login but you don't necessarily
need the entire application for that you
can just focus on one section uh of the
or one feature uh within that particular
Sprint now circling back around to the
definition of done so if you're working
within the agile approach or you're
working with these uh kind of situations
one of the things that is interesting
from a test driven approach a definition
of done approach is you start with the
end par what are you supposed to have at
the end and like Rob said you shouldn't
have any questions about this this
should be very straightforward if this
then this then this if there's an else
with a possible splitting of scenarios
that aren't defined you can't write that
code that is unknown requirements and
therefore you potentially could run into
a situation where you're almost to the
end oh we need this oh we need this so
now you run into feature creep or
requirements creep for missing
requirements the one thing we rob didn't
touch on is the other side of things so
as developers uh especially front-end
developers we will take a way of
implementing something that like display
a table and we will build the table but
we don't like the way it looks so we'll
add some colors to it we'll add some
features while some bells and M that is
scope creep that is not even feature
creep it it's not necessary you don't do
that but if you do that guess what your
timelines get blown out of proportion
and you don't meet the deadline so
you've added scope creep to an
application that wasn't necessary so
you've made code changes that weren't
required in the requirements they
weren't in the definition of done so you
now essentially blown your timeline to
do something that you thought was cool
but not what the customer wanted or
wasn't expected so I've run into that
I've done it myself especially in your
early years as a developer you want to
show off you want to show your skills so
you are going to make that
mistake and it's not necessarily a bad
one but it is one that has impact it has
a negative impact on your timelines so
well the feature may look good it may be
something the customer absolutely hates
and therefore you get a bad reputation
from the end user
so it kind of goes back to that old
adage the customer is always right but
the customer is always right if and only
if they give you the requirements that
they need for the feature that you're
building if they leave something
out you're going to miss your deadline
you're G to not be able to build them
what they
want so before I pass it back to you one
of the things I would State and we talk
about this in the requirements
discussion
is as you're going through the process
and we'll get into this with agile more
but through the process of agile you
have different stages where you get the
requirements for the next Sprint and
you're supposed to go through and do a
backlog refinement look at the
requirements flush them out if you are
not doing that you are going to be in a
lot of trouble because you don't know if
that ticket has all the requirements it
needs it does may not have what the def
definition of done is it may be missing
oh hey you need to integrate with this
particular software so before you can
even write the uh changes you need to
get access like Rob's running into
getting access for one of the projects
he's running into these are things that
have impact that if you really look at
the tickets or the requirements first
you should be able to identify that at
the beginning now sometimes something
going to get missed you may be deing
with Legacy software where no one in the
company knows how the old stuff works
anymore you're trying to rebuild it or
you're trying to maintain it and it's
going to be a hot mess you're going to
run into situations where you will run
into scope creep feature creep and
missing requirements but in those
situations before you even begin you
need to set the expectation that this is
how we perceive it working we're ready
wrting the definition of done and the
requirements on this however we are
going to add within scope that this may
not be what it's expected and at that
point we're going to have to either
create another ticket or we're going to
need to go back and reanalyze the
requirements so you do have checkpoints
especially with agile to protect
yourself but you need to make sure that
you utilize them and not just go head
long and assume that everything that the
customer gives you or that the tickets
have is what you need to do the job what
are your that's actually there's a
really
good uh Junior versus middle versus
senior level developer thing right in
the midst of that which I've I've
noticed and it does make a huge
difference is when you get a task
whether it's however it's done whether
you've pulled a ticket off of because
it's part of the Sprint and you're
working in an agile mode or whether it's
something that you've been assigned by
your your boss your manager or
whatever one of the first things we
should always
do is some level of design even if we're
given a design and and all of these you
know most of the pieces as a developer
even as a coder there's some level of
design there's some level of this is how
I'm going to get this task
completed a lot of times and this is
where I say that when I usually a junior
developer is just going to get it
they're just going to start running in
it they're going to like okay I'm going
to start cranking code you learn a
little further on you get more depending
on where you're at in your soft mat
software maturity level will say
somewhere along the lines you realize
that you've got to think about this a
little bit before you do it and as you
get further on you realize that you
really need to think about it as you
really need to it's not just as we've
talked about a little bit before it's
not just coding the happy path but it is
how am I going to solve this problem and
hopefully they gave us all the needs as
far as like how am I going to solve this
problem with the uh we'll call the
proper data the happy path what are the
places where there could be exceptions
what is what does that look like when
there's an exception how am I supposed
to handle those what am I supposed to
what are the uh constraints on values
and all of those things that are factors
that go into how you implement the
solution so if you sit down and the
first thing you do is you look at it and
you say okay I'm going to sort of like
sketch out in some way form or fash
however tool you use it a design for
what I'm doing that is often going to
right away start to Bubble Up those
questions that Michael's referred to
where you're going to look at stuff as
like wait I don't know what this is I
don't know how this is supposed to work
this is a a flaw in the requirements
this is something that is
not fleshed out enough this is something
where there's a gap there's something
you ask questions that is part of it
because if you this goes back to what I
said earlier if you assume you're like
oh well I can assume all of this like
you can but you may build something that
actually does not fit the solution now
hopefully the requirements include all
the things that you need to know about
done what does done look like you know
what is it what is proper input what's
proper output what are all the different
ways it can handle invalid input and how
is it supposed to do that if you've got
all of that awesome but if you don't
that's going to be your safety net
basically regardless of whether it's
agile or anything else when you're given
that task sit down sketch it out
somewhere that is going to highlight
where there may be gaps I'll throw it
back to you before we wrap this one up
yeah
so to kind of add on top of that so
especially for some of the Junior and uh
you know early beginner developers one
of the other issues you can run into if
you just jump in and code and I've seen
this a lot is copying and pasting of
code you may have a feature somewhere
else that you think meets the
requirements so you grab that you throw
that in and you say you're done if you
don't test it to the requirements that
copy code could bite you in the ass so
take the time look at the requirements
even if you make the change make sure
that it functions to the definition of
done don't just assume always make sure
that it works as expected
I will follow that that is an excellent
point uh it's a little bit of a I'm I
feel bad that I did not bring that up
because it's a little bit of a sore
point I have in some cases most
importantly what Michael just said in
the context of chat GPT or any AI piece
I don't know how many times I've seen
code that has been pulled from you know
before it used to be back in my day we
had to write it all ourselves but then
at some point there was Google and there
was all these other places you can get
code where it was just lifted and put in
it's like boom this solves the problem
no it does not necessarily solve the
problem most
importantly if you get it through one of
these AI tools test it test it test it I
don't know how many times I have found
stuff and I use I use those tools to
some extent and the to some extent is
that every time I do it I'm going to go
walk through everything to make sure
that it actually does what I need it to
do and if it doesn't then I'll adjust it
accordingly but n times out of 10 I
don't think I it is very rare for me to
just be able to get that code plug it in
it's like boom we're off and running
almost every time it's not solving
exactly the same problem so I have to
make some adjustments so this is that
being a better developer better
developer does not mean you just
slamming code in and you're getting it
done faster it means you're building
good code or at the very least you're
solving the problem there and then as
you get to be a better developer you're
going to have the right habits to write
better code from the start if not part
of of it is you have you know some sort
of a technology you know back U backlog
of stuff where you're going to go back
and do your Tech debt and go clean that
stuff up but you don't clean it up it's
not throw the coat in there and then
clean it up even though it's horribly
broken it's make it work and then you
can come back and clean it up and make
sure that it's like you know uses all of
your prop follows all your proper
standards and things like that that
being
said we got started here but we are not
done we teased a little bit the whole
idea of agile and how that's a little
bit different and it is and that's we're
going to talk about next episode so we
don't you already know what's coming so
hold your breath but not too long
because it does take a while before
these come out and then we will come
back and we're going to continue really
jumping right into this whole how do you
deal with done and not having scope
creep or scope Stampede as it often
becomes or the world famous Death March
when you're in an agile world because
that can and often has happened and how
do you set expectations but I've given
you enough you can give me an email at
info developer.com you can check us out
on developer.com you can enter contact
form we've got to contact us throw your
suggestions your comments your favorite
things that we've covered the things we
need to cover more the things we need to
cover less if we need to cover our faces
in the videos that's fine as well I mean
we get that we're not the prettiest
people but we're here for you so let us
know what you want let us know how we
can help because we are also getting
close to the end of the season and we're
g to figure out what our next season is
going to be just like we sort of figure
out our episodes sometimes right as we
go I think we hav't figured out this
season at the beginning of the first
episode we're like hey this is what the
season's goingon to be because sometimes
we do that because technology is
everywhere and goes all over the place
that being said you can go all over the
place but come back here next time
around go out there and have yourself a
great day a great week and we will talk
to you next
time bonus material we don't want to we
don't want to get into the agile yet so
there's any bonus that you wanted to
touch on here yeah so to Tech on to the
copy code in the AI and copying code
from the web look at your tools we've
talked about Tools in previous uh
discussions we've got good blogs on the
site but
especially if you're using Code
generated AI these days if you ask it to
write your unit test for you make sure
you have something like sonar Q double
cheing your code coverage to make sure
that your tests are actually covering
the code I've seen so many times where
like chat GPT generates a valid test but
it only covers one of 10 use cases so
you think you're covered but you're not
so you don't want to be like that one
company that shut down the world with
Microsoft by only running unit tests
that were
stale do your due diligence make sure
you've got everything in place to check
that you your code does meet the
definition of
done I think that is plenty of bonus
material because then I'm sure I'm going
to be running off at the mouth next time
around so thank you so much for hanging
out with us we will be back and you know
what the next topic is but we'll
probably do a little Preamble talk about
that before we get into it and we'll
just be back here next time as always
give us whatever feedback you can you
can leave us comments you can do likes
you can do I don't know if there's
dislikes or whatever it is but just like
feedback is great however you give us
feedback we enjoy that because we want
to know how to be better as a podcast
we're building better podcasting in our
own little world along with us becoming
Developers for yourselves thank you so
much for your time and hanging out with
us and we will see you next time
[Music]
Transcript Segments
1.35

[Music]

28.359

howdy Everybody by fault we had a great

31.08

conversation sorry you missed out on it

33.2

I forgot to hit record not for the first

35.84

time

37.239

um so I think I wanted one of the things

39.92

about uh all of you guys just to like

42.44

clue you in we're talking about our

44.68

topic for today and we're thinking we're

46.36

going to go along the lines of like

49

avoiding scope creep as a sort of a

50.92

overall umbrella thing so okay now that

53.359

you guys are caught up I can continue my

55.039

conversation um I think part of it too

57.879

is there's there's General scope creep

60.92

and what is scope creep versus what is M

64.92

requirements and I think this takes on a

67.2

whole different world and I I want to

69.84

talk a little bit about how you manage

71.24

that in the agile world because this is

74.4

also something that's very near and dear

75.799

to my heart because I've just I've got a

77.4

customer that I've just started working

79.439

with that we've it's one of these it was

82.24

a really tiny little thing it's like oh

83.96

I just want this little thing and it's

85.36

like cool but as we started talking

87.36

about it it morphed into something much

90.159

bigger and we ended up talking about a

93

whole other application that I'm working

94.68

on for him and it's basically it's like

97.64

you working with his budget it's stuff

99.439

where it's like okay well we're just

100.56

going to keep you going along and we're

101.88

just going to pay you periodically and

103.68

we're just going to throw stuff on you

105

know on the list and just keep doing

106.84

stuff so it's in a sense it's an

109.04

open-ended it's not like I'm just

110.759

billing whatever I want to write I'm not

112.119

writing Bank bank checks but it's an

113.92

open-ended project right now and I've

116

been in both of them are and I've been

117.719

in a lot of those and one of the things

119.24

is that even in an open-ended project or

121.719

an agile project where you haven't

123.759

really maybe necessarily defined the the

127.32

goal line you still need to do it so

130.2

that's where I think that may be even a

131.64

part to or a followup to this is is the

134.68

world of requirements and scope creep

138.16

versus agile and some people I think

140.519

feel that agile means that you could

141.879

just keep skip you know scope creep

143.72

forever but there is hopefully it's tied

147.319

back to how agil does I don't want to

148.68

spoil all the discussion but um

151.76

hopefully that you still have a you know

153.28

you're keeping a goal in mind and you're

154.64

not just doing like Sprint after Sprint

156.44

after Sprint after Sprint that I know

159

there was a lot of stuff so thoughts on

160.48

that as our topic so just to unpack that

163.959

so are we looking to start at like

166.879

through the agile process like with the

168.68

open-ended project can I go through

170.2

something like this or are we going

173.76

to well and also touch on like the

176.44

definition of done or what is done what

179.84

our requirements kind of I know we've

181.84

talked about requirements before but

183.599

within this I think some of these top

185.84

points will I know this will probably be

188.519

a multiple Conversation Piece but I want

191.599

to see how far we want to touch on those

195.36

like the end pieces in this first

197.64

conversation well I think let's see

199.4

where we go if we start with the focus

201.12

on which it is it's key things like you

202.799

know requirements which defining done is

206.159

part of scope creep you know it's like

208.599

okay once you define done if go beyond

210.28

that that's obviously scope creep but

211.879

then there's other stuff within it um

214.64

and I like the transition at agile I'm

217.319

guessing that our conversation in this

219.36

first one will just be this this episode

221.72

will really just

223.2

be not even touching agile just on a

225.959

general sense of scope creep and

227.319

requirements and defining done because I

229.439

have a feeling we'll have them more than

230.799

enough to throw into that and then we'll

233.239

we'll follow that up because then we're

235.56

sort of in that mode I think it'll be

237.12

perfect to then talk to about uh the

239.2

agile world and how that's a

241.2

little people think it's different and

243.76

it is but it also isn't and making sure

246

that and it gets a little bit more into

247.92

like

249.239

avoiding uh runaway projects or death

252.519

marches or stuff like that because it's

254.319

agile and they're like well we didn't

255.599

really Define requirements like no you

257.32

do Define requirements it's just you are

260.04

a little more flexible when they change

262.16

does that make sense yeah yeah I follow

264.96

with that okay let me move the camera

267.28

stuff around so I'm looking more at you

269.36

and my camera as opposed to other stuff

272.08

and let me get this thing minimized out

275.16

are we going to touch on ceremonies at

276.84

all with agel or just keep it um because

280.72

I think the ceremonies help if

283.08

ceremonies are done right then you don't

285.039

have some of that right so I guess that

287.16

would be part of the I think I want to

289

bring that up but definitely the in

291.759

particular I think it's really it's it

294.479

really is it's not necessarily the

295.56

ceremonies as much as it really is the

298.24

um the deployment

300.6

at each Sprint at technically you know

302.8

at each Sprint you should deploy working

304.8

software so in theory that means that

307.759

you don't really run out of you you

310.039

could ideally cut it off at any point

312.16

and say okay we're done we have working

314.56

software you know we're out of we're out

316.68

of money or we want to push this forward

318.68

but that's not really the case there is

320.919

there's always an MVP point and I think

323.8

it's it's talking about that the

325.8

ceremony should help that to some extent

329.84

uh and it's I I think it's perfectly

331.6

fine I think that's perfectly within uh

335.12

boundaries of what we can talk about

336.84

because I think those are some of the

337.84

things we're talking about ways to tools

340.44

to keep it straight to you know

342.319

straighten stuff out so that it doesn't

344.639

run off the rails okay works for me

348.88

sounds good then let me move this around

352.68

let me move that

354.639

around and let me find my window again

359.96

and sorry everybody you get to see how

361.639

the sausage is made hello and welcome

364.84

back we are continuing our season of

369.039

just building better developers we are

370.68

the building better developers podcast

372.28

but now we're really talking about the

373.639

developer Journey which is hopefully

375.599

going to take you from a developer to a

378.16

better developer whatever that happens

379.759

to look like whether it's a you know

381.88

starting at the beginning of your career

383.08

and going to end of your career and it's

384.8

dramatically different or whether it's

387.56

something where you're just starting uh

389.08

maybe you want to the beginning of the

390.08

year where you at let's look you know a

392.599

little bit talking about your journey

394

through the year this episode I want to

396.88

jump right into talking at least about

398.4

the

399.36

topic is um we're going to talk about

402.72

scope creep we're going to talk about

404.08

requirements we're going to talk about

405.4

what is done what does that mean and

408.28

that's something that often is a problem

410

in projects allows things to get a

411.68

little bit out of hand and then you get

413.72

into this whole well you know cost

415.72

overruns and you miss schedules but if

417.72

you didn't know what you're building

419.919

it's hard to really schedule that right

421.639

as well before we do all of that I want

424.199

to introduce myself I just want to leave

426

that little like you know little hanging

428.4

hanging thing there so that you come

429.639

back after the introductions my name is

431.319

Rob Broadhead I am one of the founders

433.039

of building better developers developer

434.68

or also a founder of RB Consulting where

437.199

we go out and we do we basically make

439.599

you we help you find ways to use

441.8

technology better through integration

443.759

simplification and automation is make

447.16

that you know that big expensive car

448.919

that you've built in your technology tur

450.8

it into a a fine lean

453.56

machine on the other side I'm also going

456.28

to bring up what we did last couple

458.4

times around is like what is a big a

460.639

good thing and a bad thing that's

461.96

happened since the last time we met that

463.759

you want to throw on there and introduce

465.599

yourself

466.72

Michael hey everyone my name is Michael

468.96

Mage I'm also one of the co-founders of

470.96

developer ner building better developers

473

and I'm also the founder of Envision QA

476.039

we focus on highquality software and

478.44

working with our customers to really

480.319

establish what they really need their

484

technology for is either better software

487

uh better integration with existing

488.68

software or building something very

491.24

custom to their needs so good and bad so

494.479

good uh making progress on my latest

497.759

project we un peeling back the onion

500.919

really getting down into some of the

502.72

Neer details it's going really well uh

506.319

thing's going a little you know not so

508.199

well uh it end of the month I forgot to

510.84

pay a bill so I had to unfortunately got

513.68

hit with a you know late fee but you

516.56

know it happens what about you all right

520.279

so good stuff I got a lot of stuff I

522

think this time is I'm just coming off a

524

vacation got to go visit Aruba if you

526.08

haven't been go it's awesome it's really

528.44

a a great time we were exhausted by the

531.48

time we got done with our vacation but

533.68

that was a good one uh bad thing is uh I

537.72

mean I guess here's a it's not that bad

541.04

but I mean one of those projects where

543.12

you need certain permissions and

545.36

security and access in order to like get

547.839

the project done and I'm just in this

550.56

waiting period where it's like I keep

552.24

you know it's like every day like hey I

554.12

need you to give me this this and this

555.88

access and they're just really slow to

558.399

respond so it's like you know you're

559.92

just drumming your fingers going okay

562.519

can't really help you we we got this

565.079

project we really want to get done we

566.399

should be able to get it done quickly

568.12

but not if you don't give us access to

569.88

the proper stuff so that's my bad which

573.2

actually it's their bad it's just my bad

574.8

experience right

576.279

now which goes sort of into requirements

579.079

and scope

580.399

creep now I think one of the big things

583.32

about scope creep that I want to

587.279

first talk about because I don't think I

590.399

haven't really heard a lot of people

591.6

think talk about it in this sense is

593.16

that what really is scope cream because

597.92

a lot of times what we have with

599.519

projects is yes there are uh dates that

602.16

are you know slip or you have uh you

605.32

know change requests and stuff like that

607.6

they come in and then so whatever the

609.6

original project looked like that little

612

box that somebody put it in and said

613.279

it's going to cost x amount of money and

615.12

Y amount of time has

617.399

changed and sometimes it's it's often

619.839

just called scope creep it's because oh

621.44

well we added a feature we added a

622.76

feature we added a

624.32

feature but people don't always see it

626.48

that way because sometimes they think

628.8

that and it's whether it's it could be

630.279

us as developers it could be them as our

632.079

customer is that we added a feature and

635.639

I'm air quoting for those who you know I

638.12

don't know we need to figure out what

639.32

that looks like in the audio world but

640.959

for the video world you can see we added

642.639

a feature in air quote and what we

644.92

really did is we didn't really add a

647.279

feature we found a requirement that was

650.56

not that you know that was missed there

652.12

was a gap in the requirements and this

654.639

is where it gets interesting because

656.92

depending on how the project is set up

659.72

sometimes and actually quite often there

661.839

will be different views of whether that

663.92

was a problem or a flaw or something

667.399

with the development or implementation

669.12

team or whether it was something that is

671.68

scope creep or something along those

673.72

lines now in the very technical sense it

676.76

is a new feature because it was not in

679.32

the original requirements even if you

680.959

thought it was in the original

682.36

requirements it's a new feature because

684.839

that was not part of the original

687.44

estimate now it may seem like I'm

689.56

splitting hairs a little bit here but it

692.279

is something that I think changes the

694.959

conversation and this is about being a

696.6

better developer it changes a

697.92

conversation

699.36

about that particular change

701.92

particularly when these things come in

704.2

when you get deeper into implementation

706.68

maybe you're already you know just

709.079

barely on schedule or maybe you're

710.56

already behind schedule and now you have

712.639

a requirement that comes in that you

714.32

realize that oh there was a we missed it

717.079

whoever we is somebody missed that

720.44

requirement and now that discussion is

724.279

it was a requirement is it really a

726.88

requirement is it really something that

728.519

was requirement or is it something that

729.839

we just sort of figured out as we went

732.48

along that as that is a nice to have but

736.079

because it was probably should have been

737.959

you know it should have been caught

739.16

technically should have been caught

740.199

originally if you did everything right

741.959

you would have got that in your

743.079

requirements and then in that case it's

745.6

like this is it is a requirement and now

747.6

moves in the requirements we do have to

749.6

adjust our schedules and that we have a

751.44

reason for it it's not one anybody likes

754.399

nobody's happy with that but it is a

756.399

valid reason it's like this is it is

759.079

what it is which is different from we're

762.839

working Along on our project and hey we

766.16

found out that we need to integrate with

768.279

this different system or we don't like

770.199

the way this worked when we initially

772.32

talked about it we need this feature we

775.079

need a reporting feature an export

776.56

feature an import feature those those

778.639

things that show up all the time when

781.16

you get a customer in front of the

783.44

application they actually start using it

785.959

and if they don't have a really hard

789.16

example to work

790.72

from and this is even these days it

793.76

happens more and more is what what

795.48

happens is people realize what the

796.959

technology can do and then they suddenly

799.839

say oh wait because we can do this we

801.76

really need to do that and it may be a

804.04

very firm requirement but that's a

805.48

different discussion and is how you

807.76

approach it because it really is Now The

810.56

Leverage is more on hey we're adding

814.44

something to what we originally you know

817.079

we're going to provide we're adding

818.639

something because this is now it is it's

820.16

a new feature versus you need to take a

823.36

different approach when it's a oh we

825.92

forgot to put that feature in so it's in

828.48

a way not a feature and particularly if

830.759

you have and this something that we were

832.72

talking about a little bit before we hit

834.12

record the idea of when you have a

836.839

customer that is or customer

839.44

representative somebody that's that that

841.16

product owner where they have a lot of

843.759

stuff in their head and they have all of

847.24

these assumptions that are related to

848.92

that there are going to be things where

850.399

it's like oh you should know that this

853.56

is how this process works or yes of

855.72

course that process always has these

857.8

five steps and you have to you explain

861.48

that well to me it looked like it only

863.519

had three steps it I didn't understand

866.079

step four and five and so these are

868.519

different

869.8

conversations the good thing is is that

872.519

you can avoid those if you ask those

874.839

questions before you get into the

877.639

implementation phase the bad this is one

880.199

of those good and bad things the bad

881.639

things is that you don't always know

883.92

what you don't know now this goes a

885.399

little bit back to I'll do a flashback

887.079

as you can go into our how do you gather

889.88

requirements discussion because that's

892.8

really where it that's where the you

896.079

know the value is that is where your

897.839

gold is going to be is by asking the

900

right questions and assume nothing when

903.639

you're putting those requirements

904.959

together don't assume that anything is

907.16

there and constantly with stuff is there

911.199

anything else is there something else

912.68

how else does this work let's let me

915

walk you through the process so for

916.88

example if there's if I see three steps

919.8

but there's five if I walk you through

921.44

the process as a customer and say step

923.44

one is this step two is this step three

925.68

is that and say does that complete it

929.04

hopefully they will say wait you missed

931.839

step four and step five those are the

933.88

kinds of questions now I think I've

936.959

talked long enough to sort of set the

938.48

stage on this and hopefully got that I

941.199

also want to I wanted to pitch it to you

942.88

as well to sort of talk about the

944.959

defining what done is because I think

946.839

that gets into your favorite way place

948.6

to talk about testing and things like

950.36

that I know it's subtle but I've picked

952.319

that up so thoughts on all

955.199

this yeah

956.959

so I liked how you kind of laid out the

959.759

two different ways where you kind of

961

have scope like feature creep and then

963.639

you have kind of like a bug creep where

967.319

you there's actually something wrong

969.72

with the system but you don't actually

972.36

catch that until you actually get into

974.12

the software uh and work with it uh

977.56

interestingly I ran into that recently

980.88

uh we found out that we had reports

982.8

created one way we're switching to

985.319

another uh data system in the back end

988.399

and all of of a sudden the sort order of

990.639

our reports is not the same so we

993.72

uncovered a bug but they want apples to

996.639

apples they want the old report or the

999

new report to look like the old report

1000.519

which can't happen because the Sorting

1003.48

there's no way to we we would

1006.04

essentially have to create a bug to make

1009.36

it look like the old way but since we're

1011.16

actually pulling different data we can't

1014.279

really duplicate so it's kind of an

1016.079

apples and oranges issue which is

1018.079

something you do run into uh with

1021

features it's like oh the software we

1023.519

think works like this like Rob touched

1025.199

on but it is actually doing this so it's

1028.039

not an Apples to Apples it's an apples

1030.039

to oranges it's like it's not doing what

1032.199

we thought so we need to take a step

1034.24

back and understand what that

1037.36

requirement is Define it and make the

1040.24

software work the way it's expected to

1042.4

not necessarily the way we think it

1044.679

does that kind of gets you to that

1046.839

definition of done you know

1049.36

what is the end goal for the change the

1053.919

requirements whatever it is you're

1055.48

working on what does it mean to be done

1058.919

is it the feature has to be complete uh

1061.919

in agile you try to go through smaller

1063.919

Sprints so you always delivering code so

1066.4

you don't want these monolithic

1068.4

requirements or monolithic changes so

1071.08

how can you break it down into a way

1072.88

where we can roll things out in stages

1076.559

and still have different stages of done

1079.799

uh for instance like if you're building

1081.36

a big application that has security well

1083.76

you can build the login screen you can

1086.24

validate login but you don't necessarily

1088.28

need the entire application for that you

1089.96

can just focus on one section uh of the

1093.2

or one feature uh within that particular

1098.12

Sprint now circling back around to the

1100.36

definition of done so if you're working

1104

within the agile approach or you're

1105.44

working with these uh kind of situations

1109.24

one of the things that is interesting

1111.36

from a test driven approach a definition

1113.559

of done approach is you start with the

1116.24

end par what are you supposed to have at

1119.2

the end and like Rob said you shouldn't

1121.919

have any questions about this this

1123.84

should be very straightforward if this

1126.52

then this then this if there's an else

1129.559

with a possible splitting of scenarios

1131.919

that aren't defined you can't write that

1133.88

code that is unknown requirements and

1136.28

therefore you potentially could run into

1137.96

a situation where you're almost to the

1140.88

end oh we need this oh we need this so

1143

now you run into feature creep or

1145.64

requirements creep for missing

1148.48

requirements the one thing we rob didn't

1151.159

touch on is the other side of things so

1154.08

as developers uh especially front-end

1156.559

developers we will take a way of

1160.039

implementing something that like display

1162.32

a table and we will build the table but

1165.76

we don't like the way it looks so we'll

1167.24

add some colors to it we'll add some

1168.799

features while some bells and M that is

1170.679

scope creep that is not even feature

1172.88

creep it it's not necessary you don't do

1176.44

that but if you do that guess what your

1179.08

timelines get blown out of proportion

1181.76

and you don't meet the deadline so

1183

you've added scope creep to an

1185.76

application that wasn't necessary so

1187.76

you've made code changes that weren't

1190.28

required in the requirements they

1192.2

weren't in the definition of done so you

1194.559

now essentially blown your timeline to

1197

do something that you thought was cool

1199.08

but not what the customer wanted or

1201

wasn't expected so I've run into that

1204.2

I've done it myself especially in your

1206.96

early years as a developer you want to

1208.919

show off you want to show your skills so

1212.039

you are going to make that

1214.24

mistake and it's not necessarily a bad

1216.52

one but it is one that has impact it has

1220.28

a negative impact on your timelines so

1222.96

well the feature may look good it may be

1225.12

something the customer absolutely hates

1227.48

and therefore you get a bad reputation

1229.76

from the end user

1231.44

so it kind of goes back to that old

1233.64

adage the customer is always right but

1236.4

the customer is always right if and only

1238.559

if they give you the requirements that

1240.28

they need for the feature that you're

1242.039

building if they leave something

1244.36

out you're going to miss your deadline

1246.919

you're G to not be able to build them

1250.28

what they

1251.2

want so before I pass it back to you one

1254.32

of the things I would State and we talk

1256.48

about this in the requirements

1257.84

discussion

1259.64

is as you're going through the process

1262.48

and we'll get into this with agile more

1265

but through the process of agile you

1267.4

have different stages where you get the

1270.88

requirements for the next Sprint and

1273.88

you're supposed to go through and do a

1276.24

backlog refinement look at the

1277.96

requirements flush them out if you are

1280.48

not doing that you are going to be in a

1282.919

lot of trouble because you don't know if

1285.48

that ticket has all the requirements it

1287.279

needs it does may not have what the def

1290.72

definition of done is it may be missing

1293.919

oh hey you need to integrate with this

1296.12

particular software so before you can

1298.24

even write the uh changes you need to

1302

get access like Rob's running into

1304

getting access for one of the projects

1305.32

he's running into these are things that

1307.32

have impact that if you really look at

1310.72

the tickets or the requirements first

1312.88

you should be able to identify that at

1315.279

the beginning now sometimes something

1318.84

going to get missed you may be deing

1320.4

with Legacy software where no one in the

1323.2

company knows how the old stuff works

1325

anymore you're trying to rebuild it or

1327.4

you're trying to maintain it and it's

1330.039

going to be a hot mess you're going to

1331.76

run into situations where you will run

1334.72

into scope creep feature creep and

1337.48

missing requirements but in those

1339.84

situations before you even begin you

1342.6

need to set the expectation that this is

1345.919

how we perceive it working we're ready

1348.52

wrting the definition of done and the

1349.919

requirements on this however we are

1353.559

going to add within scope that this may

1355.96

not be what it's expected and at that

1358.279

point we're going to have to either

1359.4

create another ticket or we're going to

1361.76

need to go back and reanalyze the

1363.559

requirements so you do have checkpoints

1368.24

especially with agile to protect

1370.6

yourself but you need to make sure that

1372.12

you utilize them and not just go head

1374.72

long and assume that everything that the

1377.4

customer gives you or that the tickets

1379.159

have is what you need to do the job what

1382.32

are your that's actually there's a

1384.679

really

1386

good uh Junior versus middle versus

1388.88

senior level developer thing right in

1392.039

the midst of that which I've I've

1393.96

noticed and it does make a huge

1395.88

difference is when you get a task

1399.48

whether it's however it's done whether

1401.32

you've pulled a ticket off of because

1403.08

it's part of the Sprint and you're

1404.159

working in an agile mode or whether it's

1406.32

something that you've been assigned by

1407.799

your your boss your manager or

1410.36

whatever one of the first things we

1412.559

should always

1413.88

do is some level of design even if we're

1418

given a design and and all of these you

1421.159

know most of the pieces as a developer

1424

even as a coder there's some level of

1426.44

design there's some level of this is how

1428.36

I'm going to get this task

1430.88

completed a lot of times and this is

1433.36

where I say that when I usually a junior

1435.96

developer is just going to get it

1437.039

they're just going to start running in

1438.039

it they're going to like okay I'm going

1439.24

to start cranking code you learn a

1441.159

little further on you get more depending

1442.96

on where you're at in your soft mat

1445.32

software maturity level will say

1447.44

somewhere along the lines you realize

1448.96

that you've got to think about this a

1450.24

little bit before you do it and as you

1452.84

get further on you realize that you

1454.4

really need to think about it as you

1455.96

really need to it's not just as we've

1458.96

talked about a little bit before it's

1460.039

not just coding the happy path but it is

1463.559

how am I going to solve this problem and

1467

hopefully they gave us all the needs as

1468.919

far as like how am I going to solve this

1470.52

problem with the uh we'll call the

1472.48

proper data the happy path what are the

1475.159

places where there could be exceptions

1477.12

what is what does that look like when

1478.84

there's an exception how am I supposed

1480.44

to handle those what am I supposed to

1482.039

what are the uh constraints on values

1484.44

and all of those things that are factors

1488.24

that go into how you implement the

1490.36

solution so if you sit down and the

1492.679

first thing you do is you look at it and

1495.08

you say okay I'm going to sort of like

1496.64

sketch out in some way form or fash

1498.76

however tool you use it a design for

1502.12

what I'm doing that is often going to

1505.52

right away start to Bubble Up those

1507.32

questions that Michael's referred to

1509.2

where you're going to look at stuff as

1510.48

like wait I don't know what this is I

1512

don't know how this is supposed to work

1513.76

this is a a flaw in the requirements

1516.24

this is something that is

1519.24

not fleshed out enough this is something

1522.08

where there's a gap there's something

1523.72

you ask questions that is part of it

1526.159

because if you this goes back to what I

1528.84

said earlier if you assume you're like

1531.12

oh well I can assume all of this like

1532.76

you can but you may build something that

1535.279

actually does not fit the solution now

1538.679

hopefully the requirements include all

1540.88

the things that you need to know about

1542.559

done what does done look like you know

1544.48

what is it what is proper input what's

1546.399

proper output what are all the different

1548.279

ways it can handle invalid input and how

1551.48

is it supposed to do that if you've got

1553.32

all of that awesome but if you don't

1556.6

that's going to be your safety net

1558.36

basically regardless of whether it's

1560.24

agile or anything else when you're given

1562.12

that task sit down sketch it out

1564.919

somewhere that is going to highlight

1567.2

where there may be gaps I'll throw it

1569.32

back to you before we wrap this one up

1572.039

yeah

1573.48

so to kind of add on top of that so

1576.559

especially for some of the Junior and uh

1579.799

you know early beginner developers one

1582.799

of the other issues you can run into if

1585.559

you just jump in and code and I've seen

1587.679

this a lot is copying and pasting of

1589.6

code you may have a feature somewhere

1591.48

else that you think meets the

1592.919

requirements so you grab that you throw

1594.96

that in and you say you're done if you

1597.24

don't test it to the requirements that

1600.159

copy code could bite you in the ass so

1603.679

take the time look at the requirements

1607.36

even if you make the change make sure

1610.159

that it functions to the definition of

1612.72

done don't just assume always make sure

1615.679

that it works as expected

1619.2

I will follow that that is an excellent

1621.12

point uh it's a little bit of a I'm I

1623.96

feel bad that I did not bring that up

1625.76

because it's a little bit of a sore

1626.96

point I have in some cases most

1629.2

importantly what Michael just said in

1632.559

the context of chat GPT or any AI piece

1637.919

I don't know how many times I've seen

1639.279

code that has been pulled from you know

1642.279

before it used to be back in my day we

1644

had to write it all ourselves but then

1645.279

at some point there was Google and there

1646.76

was all these other places you can get

1648.96

code where it was just lifted and put in

1651.12

it's like boom this solves the problem

1653.039

no it does not necessarily solve the

1654.919

problem most

1656.6

importantly if you get it through one of

1658.679

these AI tools test it test it test it I

1661.84

don't know how many times I have found

1663.2

stuff and I use I use those tools to

1665.559

some extent and the to some extent is

1668.399

that every time I do it I'm going to go

1670.12

walk through everything to make sure

1671.519

that it actually does what I need it to

1674.519

do and if it doesn't then I'll adjust it

1676.64

accordingly but n times out of 10 I

1679.44

don't think I it is very rare for me to

1681.679

just be able to get that code plug it in

1683.6

it's like boom we're off and running

1685.039

almost every time it's not solving

1687.48

exactly the same problem so I have to

1689.08

make some adjustments so this is that

1691.48

being a better developer better

1692.799

developer does not mean you just

1693.88

slamming code in and you're getting it

1695.279

done faster it means you're building

1697.559

good code or at the very least you're

1700.12

solving the problem there and then as

1702.6

you get to be a better developer you're

1704.159

going to have the right habits to write

1705.76

better code from the start if not part

1707.96

of of it is you have you know some sort

1710.519

of a technology you know back U backlog

1715.08

of stuff where you're going to go back

1716.279

and do your Tech debt and go clean that

1718.6

stuff up but you don't clean it up it's

1721.48

not throw the coat in there and then

1723.399

clean it up even though it's horribly

1724.72

broken it's make it work and then you

1727.2

can come back and clean it up and make

1728.6

sure that it's like you know uses all of

1730.72

your prop follows all your proper

1732.279

standards and things like that that

1734.76

being

1735.72

said we got started here but we are not

1738.24

done we teased a little bit the whole

1739.559

idea of agile and how that's a little

1740.96

bit different and it is and that's we're

1742.919

going to talk about next episode so we

1744.519

don't you already know what's coming so

1748.12

hold your breath but not too long

1749.76

because it does take a while before

1750.84

these come out and then we will come

1753.12

back and we're going to continue really

1754.44

jumping right into this whole how do you

1757.519

deal with done and not having scope

1762.64

creep or scope Stampede as it often

1764.84

becomes or the world famous Death March

1768.08

when you're in an agile world because

1769.559

that can and often has happened and how

1771.88

do you set expectations but I've given

1774.2

you enough you can give me an email at

1777.48

info developer.com you can check us out

1780.12

on developer.com you can enter contact

1782

form we've got to contact us throw your

1784.6

suggestions your comments your favorite

1787.64

things that we've covered the things we

1788.919

need to cover more the things we need to

1790.44

cover less if we need to cover our faces

1792.679

in the videos that's fine as well I mean

1794.6

we get that we're not the prettiest

1796.039

people but we're here for you so let us

1798.76

know what you want let us know how we

1801.64

can help because we are also getting

1804

close to the end of the season and we're

1806

g to figure out what our next season is

1808.36

going to be just like we sort of figure

1809.76

out our episodes sometimes right as we

1811.679

go I think we hav't figured out this

1813.32

season at the beginning of the first

1814.72

episode we're like hey this is what the

1816.159

season's goingon to be because sometimes

1818.6

we do that because technology is

1820.6

everywhere and goes all over the place

1822.679

that being said you can go all over the

1825.36

place but come back here next time

1826.679

around go out there and have yourself a

1828.48

great day a great week and we will talk

1830.72

to you next

1833.44

time bonus material we don't want to we

1836.64

don't want to get into the agile yet so

1837.88

there's any bonus that you wanted to

1839.48

touch on here yeah so to Tech on to the

1843.799

copy code in the AI and copying code

1848.08

from the web look at your tools we've

1850.76

talked about Tools in previous uh

1853.88

discussions we've got good blogs on the

1857.159

site but

1858.559

especially if you're using Code

1861.279

generated AI these days if you ask it to

1865.039

write your unit test for you make sure

1867.76

you have something like sonar Q double

1870.44

cheing your code coverage to make sure

1873.08

that your tests are actually covering

1875.44

the code I've seen so many times where

1878.559

like chat GPT generates a valid test but

1882.72

it only covers one of 10 use cases so

1885.48

you think you're covered but you're not

1887.919

so you don't want to be like that one

1889.399

company that shut down the world with

1891.039

Microsoft by only running unit tests

1893.279

that were

1894.32

stale do your due diligence make sure

1897.24

you've got everything in place to check

1899.519

that you your code does meet the

1901.679

definition of

1903.24

done I think that is plenty of bonus

1906.32

material because then I'm sure I'm going

1907.96

to be running off at the mouth next time

1910.639

around so thank you so much for hanging

1913.72

out with us we will be back and you know

1916.24

what the next topic is but we'll

1917.48

probably do a little Preamble talk about

1919.32

that before we get into it and we'll

1921.519

just be back here next time as always

1923.24

give us whatever feedback you can you

1924.639

can leave us comments you can do likes

1926.159

you can do I don't know if there's

1927.84

dislikes or whatever it is but just like

1929.44

feedback is great however you give us

1931.12

feedback we enjoy that because we want

1932.48

to know how to be better as a podcast

1935.039

we're building better podcasting in our

1937.08

own little world along with us becoming

1939.88

Developers for yourselves thank you so

1942

much for your time and hanging out with

1943.279

us and we will see you next time

1949.71

[Music]