📺 Develpreneur YouTube Episode

Video + transcript

Maximizing Efficiency in Software Development: Individual, Small, and Large Teams

2024-07-09 •Youtube

Detailed Notes

In this episode, we delve into the next step in the developer journey: implementation. We explore how to work within different team sizes and structures, including individual projects, small teams, and large teams. This guide will cover essential strategies for maximizing efficiency in various software development environments.

Read more ... https://develpreneur.com/maximizing-efficiency-in-software-development-individual-small-and-large-teams

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

* Embrace Feedback for Better Teams (https://develpreneur.com/embrace-feedback-for-better-teams/)

* Using Offshore Teams and Resources – Interview With Tanika De Souza (https://develpreneur.com/using-offshore-teams-and-resources-interview-with-tanika-de-souza/)

* Moving To Mobile Teams and Building Them – Sebastian Schieke (https://develpreneur.com/moving-to-mobile-teams-and-building-them-sebastian-schieke/)

Transcript Text
[Music]
not
this hey everybody we record so we are
recording uh this episode Let's see we
want to talk
about see throwing a couple ideas out
here places to look for work and how to
leave a job professionally when when
quitting or resigning uh let's
see uh development Journey on working on
teams agile waterfall stuff like that
um what were you thinking about from the
like the you mentioned something about
the you know they working on development
the the journey and working on teams
agile waterfall stuff what were you
where were you thinking that would that
conversation would go so we've had
the you know what makes a developer you
know what when do you reach the point of
be you know becoming a developer when do
you know you're a coder we talked about
solving problems being a problem solver
we talked about um solving problems
without solving problems
and I thought the next progression would
either be you know about the teams or
potentially about software development
you know like how do you so we've talked
about you know solving the problems but
now maybe talking about in a more
constructive way like all right so you
may be coming out of those boot camps
out of school you know how do you
actually build software what are the
types of environments you can work in as
far as teams go like agile a waterfall
structure you know startup kind of
mentality uh kind of ideas on maybe talk
about you know some of the lessons we
learned from you know when we started
out you know like we said before you
know you jump into a team you got to
learn how to write the code this way but
go One Step Beyond what we talked about
already as far as like coding but now
talk about working in the teams writing
the code kind of what's
involved uh yeah let's see where that
goes I think we can give it a shot um
and we'll see where that where that
takes us because I think there's a lot
of ways we can go with that that's
another one there's a lot of different
directions so I'll kick it off and then
you can either reain it in or you can
wander off on a different Rabbit Trail
if that if that happens to be the case
so we'll see how that goes okay well
hello and welcome back we are continuing
our season and we are talking about the
developer Journey uh my name is Rob
Broadhead I am one of the founders of
developing or building better developers
and on the other side is Michael you go
ahead and introduce yourself because you
do it so much better than I do hey
everyone my name is Michael Mage I'm one
of the founders of develop prur and I'm
also the founder of Envision QA so if
you need custom software or testing call
out to
us so this episode we're going to look
at sort of a sort of The Next Step that
we've T we've sort of been working our
way through the developer journey and
some of those things we're going to look
a little bit
into uh we look at like implementation
but it's really about implementation
about like whether you're within a team
and how do you work within that team and
what's the difference and not really
necessarily the difference but some of
the things that may come up such as
whether it's an agile shop or a
waterfall model or a we'll talk a little
bit I think we'll see how this goes
about things like whether you're remote
or you're not and all of the things that
you may run into that you would not have
hit probably while you were in school or
while you were on a boot camp or or
going through an online course or
whatever it was that you were doing
however you got your basic skills now
this is when the skills hit the real
world when the rubber meets a road and
you get out there and and talk a little
bit about that and so my thought with
this first comes first thing that came
to mind as as we were talking through
this concept or this idea this topic is
the difference
between uh Team sizes is basically
whether you're it's you
which sometimes happens particularly
it's a side hustle or something it may
be really you are really the only
developer working on it or it's
something where you're in a small team
and usually it's GNA be small team with
small high communication kind of team
because it's usually you know two or
three of you everybody's got to really
has to communicate or else it's going to
fall apart and then I think another big
step was when you get into a team that's
a and what people think of more of like
an actual team where you've got you know
half dozen dozen or more people that
there's different roles and things like
that so really the three places are
individual where each your Chief cook
bottle washer small team where everybody
is basically wearing all the hats and
they're just sort of working together in
a in a very tight-knit group and then
when you get into something a little
bigger where you do have defined roles
which could be number-wise I guess you
could have a team of like five people
where you have a dedicated you know
maybe a QA person a dedicated database
developer dedicated API
developer I want to talk a little bit
about those and what you need to think
about in order to make the most of the
team the one that'll be really quick and
easy or at least quick and I'm going to
you know sort of fly through it is
individually individually I think when
you step into a project and this is most
important if you're doing a side hustle
or something like that where you or
maybe you've get ass sign by your boss
to go to a proof of concept or a demo or
something where like hey go build this
thing and then come back when you're
done or something along those
lines I we've talked about it before I
cannot emphasize enough use that as an
opportunity to practice the common
development things like committing code
putting decent Comm you know comments on
your your commits commenting your code
having a a reproducible build process of
some sort it is easy as an IND idual to
sort of just skirt those things to just
like write code and then you just build
it and you copy it and all that but
you're this a great place for you to cut
your teeth on having like processes and
reproducible repeatable things that you
do as part of your process so that you
can be a better developer for example I
think I've mentioned before that I use
ant scripts a lot that's just something
I've had for a long time I like them
I've been able to make them do all kinds
of cool stuff uh including like I can
rebuild my database I can copy files out
I can restart stuff on servers all of
that and while I don't really
technically need those things and I just
air quoted for those of you that are
can't see me visually but they are very
valuable it is amazing over time how
much those little scripts will save you
now it may be you know a minute here or
a minute there but it'll save you typos
it'll make it reproducible and that time
does you know it does add up as you go
day after day and you know build after
build and push after push over time that
stuff adds up and so utilize that make
the most of the tools that are out there
small
teams a small team really I think if you
have not introduced yourself to slack or
teams or something where there's a chat
some sort of instant messaging thing you
really need to do that uh I currently
have a small team I'm working on we've
got and we do have defined roles of more
or less as we've got sort of front end
middle API backend kind of developers
but because we are building something
that is you know we're working towards a
version one we'll call it we need to
there's a lot of changes going on so
it's not like the API is stable it's not
like the UI is stable it's not like
anything is stable we're constantly
changing and adding features those kinds
of situations you need to have a way set
up that you can communicate and make
sure that everybody's on board with that
communication style so if it's if it's a
slack Channel or slack make sure that
everybody has slack up and that they
know when it's you know we all know when
we're working because that can also be a
big problem when you get into bigger
teams as well but especially small teams
if you're waiting on the the database
developer and they only work 2: a.m. to
6:00 a.m. your time then you can can
lose days sometimes because you're
waiting for them and you got to go send
them something you got to make sure that
you've got a very good communication
structure that you understand that
timing and it may be something where you
know some people may have to get a
little bit out of their comfort zone and
check things outside of their normal
schedule just to help you if not know
that that's going to be a blocker at
some point you know if you've got
somebody that doesn't show up on a
Thursday that they always take Thursdays
off and they're not there inevitably
there's going to be a point where their
code change is required on a Thursday
and that means you're going to have to
wait till Friday so make sure that
you're clear on those things last thing
and then I'm going to kick it over to
you Michael is the big team
stuff all of the things I've talked
about in these other two instances are
really important in the big team stuff
but the biggest thing that I think I
have seen that's a a gap or a flaw in
larger
teams is ownership is making sure when
you line up your project and you say
here's the requirements and here's what
we're going to do and this is the
structure and this is the architecture
and all that stuff all of the pieces all
of the steps within the software
development life cycle all of the main
we'll call them like feature uh you know
feature points and stuff like that there
needs to be somebody somewhere that owns
those things and by own I mean there's
somebody that is a decision maker of
some sort and if they aren't that you
can go to them and you can say hey we
need to have we have a question about
this and they need to be able to go to
the person that can answer that and also
somebody that's when you get towards the
end in particular they're going to be
able to do things like test it and
validate it and say yes that is correct
or if a test fails they need to be the
person that can override that and say oh
no that's okay we've changed it or say
yes that's critical and particularly
when you get into the go noo meetings of
is this going to be you know is this
production worthy you've got to have
those people there and so often that is
a gap as you get into larger teams where
there's something just nobody owns it
and that may include the project plan
itself deadlines all kinds of stuff that
is critical to declaring something done
uh which is probably the the most basic
of that when you go into a project
particularly with the team we need to
all agree what does done look like what
does that mean because done is different
to everybody else and now I am done and
my definition is I want to let let you
throw your your two cents and actually
due to inflation is now your 45 bucks
into the conversation
Mike so you've touched on the three
different types of teams you talked
about the independent person working on
a team could be a contract could be a
startup uh whatever but it's essentially
a team of one uh you talked about the
small mid size teams small development
teams communication and you talked about
the large teams now the running theme of
all three of those uh at least between
the midsize and large is communication
now even if you're an individual of one
communication is still important but the
communication typically is more
important between you and the customer
or you and the vendor because you have
to make sure that what you're working on
is done right now with all three of
those the types of ways you work on the
projects or you develop software
typically can follow the same type of
pattern you have things like waterfall
where you build the entire project in
one go and then you have small
deliverables as you go out and get user
feedback as you're building the
application typically you see a little
bit more of that with individual or even
startup mentalities uh but typically in
today's environment it's more agile
driven you do things in small Sprints
you get things out the door quickly this
really is tailored for any type of team
or environment you typically want to
start quickly you you define your
requirements and you start chipping away
at it in small iterations and
deliverables as you're doing this
regardless of what size team you're
working on make sure you follow some
simple steps one make sure that you
understand the requirements that you
need you understand the software that
you're building make sure you have good
documentation skills make sure you
comment your code and you follow some
best practices you know make sure you
write test cases for your code make sure
you have the user stories defined as
you're building this software now Circle
back around as you're communicating this
if you're dealing with offshore or
different time zones with teams this
type of strategy really can hit home
because if you're doing small
deliverables no one should be working on
anything that isn't related to the
current Sprint so you really should be
working on requirements in such a way
that you don't have too many blockers
now this can happen but if you're in
this agile environment when you're
communicating you hit a blocker
everyone's on the same page it's like
whoops hey we've got this problem let's
kind of circle the fences and work
through
it now that kind of the development
style now as Rob said you know if you're
a standalone regardless of what team
code backup code repositories are
critical make sure that you define and
keep backing up your code this can also
help with that documentation it can also
help with testing so we've talked about
testing before in past podcasts but what
we really haven't hit home is if you
build out that deployment process that
continuous integration continuous
deployment one of the things you can
also build into that like Rob uses ANS
scripts to help do his builds his
deploys and things of that nature you
can also write in to your continuous
integration pipeline testing so you can
kick off like Jenkin or bamboo so when
you deploy your software it
automatically kicks off the test to run
against your software now as you're
compiling your code you can run unit
tests against your code to make sure
that the white box testing of your code
works that the functions work the way
they're supposed to when you're
deploying it through the continue
integration process you're looking at
more kind of like blackbox testing
you're testing things on the backend so
you can write those integration tests
those regression tests those smoke
testing and even system and load testing
all that can be built into the process
as you're going through your software
development process this really works in
any environment it could be waterfall it
could be agile but typically you want to
think agile try to get away from that
monolithic application now you could be
in that situation if you did a proof of
concept and oops you're now in
production you kind of have to backtrack
a little bit so if you run into
situations like that again work with the
tools you have
if you don't have good tools or good
software development processes in place
look at project management tools like
Microsoft project jira uh bugzilla you
even have some uh I believe issue
tracking Tools in git laabs now so look
at using these to help manage your
process to manage the project and make
sure everyone's on the same page and
finally the last point I'd like to hit
on is while you're working in teams now
if you're working in a ASO is you you
have to hold yourself accountable so
time management becomes critical you
should be keeping track of what you're
working on so things don't get off the
rails again that falls into that agile
process now when you're dealing with
small to midsize teams or even larger
teams uh time management kind of gets a
little managed by the team environment
you have like your daily scrums you have
your standups you have your team collabs
which kind of keeps everyone moving in
the same direction and keep things on
track so something's falling behind you
call it out and people you know again
help circle the wagons and we can work
together and keep things moving
forward so I'll pass that back to you
now Rob since I've kind of rambled on
for a bit I think that the one thing I
wanted to to point out to this that I I
I have seen uh a change in
this there are going to be times when it
is all hands on deck there are if you're
in a any kind of a real software
development whether it is you doing some
sort of you know side hustle thing or
whether you're doing something with a
team of thousands there is a point where
there is a push where there there are
going to be deadlines there are
Milestones or deadlines or cost related
to them there's all kinds of things like
that one of the things you want to do as
much as possible with these pieces the
reason that we do this testing and that
is to try to level those out as much as
possible to try to take early on the
where we we don't have this usually the
urgency and sometimes there's some stuff
that can get done very easily that we
take the the buffer that gets built into
that and we pull into that some of the
things that are a little tougher this is
where agile actually becomes very useful
because you have things like you have a
you have a Sprint you have a short
period of time everything has
essentially sort of a a critical level
to it to some extent we want to get it
done get it in this
Sprint the two things I'll say is one
within your Sprints yes you probably are
going to have stuff in any given Sprint
that is going to get pushed to the next
one make sure that you're not just push
push push push and that you're suddenly
building up you're building more and
more each time that you're just saying
ah we're going to punt it to the next
Sprint we're going to punt to the next
Sprint there is a point where these
things come you know come due and you
need to get it done and that also means
that there are going to be times that if
you are a developer this to me is very
much a difference when you become a
developer is there's a point where like
you're going to have late nights you're
going to have weekends you're going to
have times
when things just don't work you're going
to have and the worst are probably the
configuration types things where I'm
setting up a server or you know building
this little piece of code that should be
done in 30 seconds and it's not and you
can lose an insane amount of time one
suck it up buttercup you're gonna have
to do that but two the good and the bad
news I guess it's mostly bad news that
never ends there will be times like
Michael and I have been doing this for
decades and we have still had times I
know both of us even in the last few
months where something like that happens
and it's you know something is the
uppercase instead lowercase or like I
had one I chased down the other day it
was literally a nine versus an 11 in two
lines of code that were in a
configuration file and it was like
buried deep in a you know took a while
to find it kind of thing those things
happen just realize that is part of why
they you know as they say you get paid
the big bucks or whatever it is even if
you're not getting paid the big bucks
this is like part of what we we do have
to struggle through and so the more that
we communicate the more that we put all
of these I will call them for lack of
better term best practices into practice
the more likely we are that we're not
going to hit those kinds of things
because we're going to test earlier
we're going to see the bugs earlier
we're going have repeatable processes
and all the things
that often contribute to those typos and
those kinds of errors that cost a lot of
time and caus us a lot of headaches and
cost you know night all nighters and
things like that we will get those
things out of way there's a reason for
this this is done by people and if if
you do it often enough you will do it
yourself because you'll be a believer
because you'll realize that darn it if I
had written a little script if I'd taken
you know know five minutes and written a
little shell script to do that then I
would not have had that typo that cost
me three hours to go track down uh
closing thoughts on you and then we'll
wrap this one up yeah so I'd like to add
one additional thing to the idea of
stuff getting kicked down the road like
Pro you know um tasks taking more than
one
Sprint one thing that can occur and it
does occur a lot in software development
is someone comes up with an idea sales
talks to a customer and within the
course of the current development cycle
you tend to get what's called scope
creep you get new things added that are
not necessarily thought out and it can
cause things to really start going off
the rails which causes the backup if you
start encountering that if you can push
back and try to get that into the next
release cycle so you can finish the
current level of work sometimes you
can't but if you can will help keep a
divide between the different areas of
work being done uh otherwise SC Creek
really big problem could potentially
derail an application or it could really
push your deliverables off track the
other thing I'd like to touch on just
slightly so we talked about the idea of
projects you know those late nights and
having to be all hands- on Deb sometimes
that is the fault of the software
sometimes a bug gets found but sometimes
this could be something that is totally
unintentional and and kind of a side
effect of something else going on
somewhere else in the
company a real quick example of that is
years ago we both worked at a company uh
this was before Rob came on but we were
going through a major systems upgrade
behind the scenes and they had it all
ready to go all tested and they were
about to turn it on when we found out it
did not work with our current web
application software they forgot to test
it literally 10 days before they went
live because they had to go live for a
federal
requirement we had to completely
overhaul our application server install
a brand new updated server to work with
everything and literally we were working
almost 24 hours 10 for 10 days to make
this happen we were talking to support
in every time zone from Germany to Japan
to California I mean it happens don't
panic when that happens you're going to
have a lot of anxiety trust me but just
understand what the problem is make sure
you have the numbers of who you need to
talk to the support people and work
together you know basically it's not
necessarily one person's uh problem to
solve unless you're a one person shop
but it's the the help of the team it
takes a community to kind of get you
through this these kind of problems so
use that and don't you know don't fall
on your sword and be the only person
that oh my God I have to figure this out
work as a
team I think that's the probably The
Parting thought that I want to put into
this is that yes this sounds you know
we're painting not a very happy picture
but these are also the times that you
bond with your team these are the like
these are the Box hole moments and stuff
like that where you go through this
stuff and you will come out of it on the
other side I think a little closer
tighter um it is really a good team
building kind of experience so don't you
know don't freak out it happens life
continues you're going to have you will
sleep again you know stuff like that
unless it's a Death March and that's a
whole different problem we'll talk about
those another time because when we're
just want to have another cheery
discussion like this that being said if
you're feeling really cheery right now
and want to give us some feedback please
shoot us an email info developer.com you
can request things that you want us to
talk about you can give us feedback you
can trade War Stories whatever it is
we'll read it we may probably will
actually at some point refer to it on uh
on the YouTube channel or out on the
podcast you can also check us out on
develop ur.com you can enter information
in our forums there's a contact there's
a contact us form there you can send us
stuff on Twitter X you can leave us
comments here you can leave us comments
on YouTube you can check us out on
YouTube if you're not and if you're on
YouTube and you're then you can check us
out on our podcast all of that being
said we are not done I know that's a
shocker we're coming back we're going to
have more information more things to
discuss next time around so until the
next time go out there and have yourself
a great day a great week and we will
talk to you next time
[Music]
Transcript Segments
1.35

[Music]

27.32

not

28.08

this hey everybody we record so we are

32.239

recording uh this episode Let's see we

35

want to talk

37.32

about see throwing a couple ideas out

40.44

here places to look for work and how to

42.84

leave a job professionally when when

45.2

quitting or resigning uh let's

47.719

see uh development Journey on working on

50.28

teams agile waterfall stuff like that

54.76

um what were you thinking about from the

57.199

like the you mentioned something about

59.719

the you know they working on development

61.44

the the journey and working on teams

63.36

agile waterfall stuff what were you

66.28

where were you thinking that would that

67.72

conversation would go so we've had

72

the you know what makes a developer you

74.64

know what when do you reach the point of

76.72

be you know becoming a developer when do

78.72

you know you're a coder we talked about

81.04

solving problems being a problem solver

83.439

we talked about um solving problems

88.159

without solving problems

91.119

and I thought the next progression would

93.52

either be you know about the teams or

95.439

potentially about software development

96.96

you know like how do you so we've talked

99.119

about you know solving the problems but

100.92

now maybe talking about in a more

102.24

constructive way like all right so you

104.159

may be coming out of those boot camps

106.04

out of school you know how do you

108.2

actually build software what are the

109.799

types of environments you can work in as

111.84

far as teams go like agile a waterfall

114.64

structure you know startup kind of

116.439

mentality uh kind of ideas on maybe talk

121

about you know some of the lessons we

122.439

learned from you know when we started

124.2

out you know like we said before you

126.759

know you jump into a team you got to

127.96

learn how to write the code this way but

130.8

go One Step Beyond what we talked about

132.92

already as far as like coding but now

135.28

talk about working in the teams writing

137.28

the code kind of what's

142.2

involved uh yeah let's see where that

145.599

goes I think we can give it a shot um

150.28

and we'll see where that where that

151.879

takes us because I think there's a lot

153.2

of ways we can go with that that's

154.36

another one there's a lot of different

155.84

directions so I'll kick it off and then

158.12

you can either reain it in or you can

159.64

wander off on a different Rabbit Trail

161.2

if that if that happens to be the case

163.599

so we'll see how that goes okay well

165.959

hello and welcome back we are continuing

168.599

our season and we are talking about the

171.92

developer Journey uh my name is Rob

174.159

Broadhead I am one of the founders of

176

developing or building better developers

177.92

and on the other side is Michael you go

180.12

ahead and introduce yourself because you

181.519

do it so much better than I do hey

184

everyone my name is Michael Mage I'm one

186.08

of the founders of develop prur and I'm

188.48

also the founder of Envision QA so if

190.319

you need custom software or testing call

193

out to

194.28

us so this episode we're going to look

197

at sort of a sort of The Next Step that

199.92

we've T we've sort of been working our

201.48

way through the developer journey and

203.04

some of those things we're going to look

204.239

a little bit

205.76

into uh we look at like implementation

209.799

but it's really about implementation

211.519

about like whether you're within a team

214.12

and how do you work within that team and

215.68

what's the difference and not really

217.159

necessarily the difference but some of

218.56

the things that may come up such as

221.239

whether it's an agile shop or a

222.72

waterfall model or a we'll talk a little

226.2

bit I think we'll see how this goes

227.879

about things like whether you're remote

229.2

or you're not and all of the things that

232.319

you may run into that you would not have

235.519

hit probably while you were in school or

238.84

while you were on a boot camp or or

240.56

going through an online course or

241.68

whatever it was that you were doing

243.2

however you got your basic skills now

245.84

this is when the skills hit the real

248.68

world when the rubber meets a road and

251.159

you get out there and and talk a little

253.04

bit about that and so my thought with

256.519

this first comes first thing that came

259.079

to mind as as we were talking through

260.68

this concept or this idea this topic is

264.12

the difference

265.68

between uh Team sizes is basically

268.56

whether you're it's you

270.32

which sometimes happens particularly

272.039

it's a side hustle or something it may

273.52

be really you are really the only

276.479

developer working on it or it's

279.4

something where you're in a small team

281.199

and usually it's GNA be small team with

283.36

small high communication kind of team

285.68

because it's usually you know two or

286.96

three of you everybody's got to really

289.68

has to communicate or else it's going to

291

fall apart and then I think another big

293.44

step was when you get into a team that's

295.12

a and what people think of more of like

297.52

an actual team where you've got you know

299.96

half dozen dozen or more people that

302.32

there's different roles and things like

304.24

that so really the three places are

306.8

individual where each your Chief cook

308.6

bottle washer small team where everybody

311.32

is basically wearing all the hats and

313

they're just sort of working together in

314.52

a in a very tight-knit group and then

317.16

when you get into something a little

318.16

bigger where you do have defined roles

320.56

which could be number-wise I guess you

323.12

could have a team of like five people

324.52

where you have a dedicated you know

326.319

maybe a QA person a dedicated database

328.319

developer dedicated API

330.88

developer I want to talk a little bit

333

about those and what you need to think

334.96

about in order to make the most of the

338.319

team the one that'll be really quick and

340.52

easy or at least quick and I'm going to

342.8

you know sort of fly through it is

345.479

individually individually I think when

348

you step into a project and this is most

350.84

important if you're doing a side hustle

352.479

or something like that where you or

354.52

maybe you've get ass sign by your boss

356.479

to go to a proof of concept or a demo or

359.12

something where like hey go build this

361.44

thing and then come back when you're

363.479

done or something along those

366.16

lines I we've talked about it before I

369.039

cannot emphasize enough use that as an

372.28

opportunity to practice the common

375

development things like committing code

378.72

putting decent Comm you know comments on

381.16

your your commits commenting your code

384.319

having a a reproducible build process of

387.039

some sort it is easy as an IND idual to

390.039

sort of just skirt those things to just

391.84

like write code and then you just build

393.599

it and you copy it and all that but

396.36

you're this a great place for you to cut

398.759

your teeth on having like processes and

402.039

reproducible repeatable things that you

404.479

do as part of your process so that you

406.639

can be a better developer for example I

409.36

think I've mentioned before that I use

410.96

ant scripts a lot that's just something

412.479

I've had for a long time I like them

414.319

I've been able to make them do all kinds

416.16

of cool stuff uh including like I can

418.639

rebuild my database I can copy files out

420.879

I can restart stuff on servers all of

423.479

that and while I don't really

426.479

technically need those things and I just

429.479

air quoted for those of you that are

431.36

can't see me visually but they are very

434.639

valuable it is amazing over time how

437.919

much those little scripts will save you

440.68

now it may be you know a minute here or

442.52

a minute there but it'll save you typos

445.8

it'll make it reproducible and that time

448.479

does you know it does add up as you go

452.68

day after day and you know build after

454.759

build and push after push over time that

457.08

stuff adds up and so utilize that make

459.8

the most of the tools that are out there

462.36

small

463.479

teams a small team really I think if you

468.08

have not introduced yourself to slack or

471.4

teams or something where there's a chat

473.52

some sort of instant messaging thing you

475.84

really need to do that uh I currently

478.199

have a small team I'm working on we've

479.919

got and we do have defined roles of more

483.72

or less as we've got sort of front end

485.4

middle API backend kind of developers

489.4

but because we are building something

492

that is you know we're working towards a

494.319

version one we'll call it we need to

497.24

there's a lot of changes going on so

498.879

it's not like the API is stable it's not

500.879

like the UI is stable it's not like

502.639

anything is stable we're constantly

504.159

changing and adding features those kinds

506.879

of situations you need to have a way set

509.639

up that you can communicate and make

511.919

sure that everybody's on board with that

514.08

communication style so if it's if it's a

516.68

slack Channel or slack make sure that

518.919

everybody has slack up and that they

521.519

know when it's you know we all know when

523.479

we're working because that can also be a

525.76

big problem when you get into bigger

528.12

teams as well but especially small teams

530.64

if you're waiting on the the database

533.8

developer and they only work 2: a.m. to

537.2

6:00 a.m. your time then you can can

539.6

lose days sometimes because you're

542.079

waiting for them and you got to go send

543.519

them something you got to make sure that

546.12

you've got a very good communication

548.399

structure that you understand that

550.48

timing and it may be something where you

552.92

know some people may have to get a

554.079

little bit out of their comfort zone and

555.72

check things outside of their normal

558.88

schedule just to help you if not know

562.16

that that's going to be a blocker at

563.56

some point you know if you've got

564.6

somebody that doesn't show up on a

566

Thursday that they always take Thursdays

567.48

off and they're not there inevitably

570.279

there's going to be a point where their

572.16

code change is required on a Thursday

574.76

and that means you're going to have to

575.959

wait till Friday so make sure that

577.959

you're clear on those things last thing

580.2

and then I'm going to kick it over to

581.12

you Michael is the big team

583.24

stuff all of the things I've talked

585.519

about in these other two instances are

587.48

really important in the big team stuff

589.64

but the biggest thing that I think I

592.32

have seen that's a a gap or a flaw in

595.959

larger

597.2

teams is ownership is making sure when

601.399

you line up your project and you say

603.44

here's the requirements and here's what

604.64

we're going to do and this is the

605.839

structure and this is the architecture

607.519

and all that stuff all of the pieces all

610.959

of the steps within the software

612.68

development life cycle all of the main

615.56

we'll call them like feature uh you know

617.24

feature points and stuff like that there

619.8

needs to be somebody somewhere that owns

622.88

those things and by own I mean there's

625.12

somebody that is a decision maker of

626.959

some sort and if they aren't that you

628.92

can go to them and you can say hey we

631.04

need to have we have a question about

633

this and they need to be able to go to

635.399

the person that can answer that and also

638.44

somebody that's when you get towards the

640.48

end in particular they're going to be

641.88

able to do things like test it and

643.6

validate it and say yes that is correct

646.16

or if a test fails they need to be the

649.12

person that can override that and say oh

650.839

no that's okay we've changed it or say

652.959

yes that's critical and particularly

655.279

when you get into the go noo meetings of

658.12

is this going to be you know is this

659.88

production worthy you've got to have

662.36

those people there and so often that is

664.279

a gap as you get into larger teams where

668.12

there's something just nobody owns it

669.959

and that may include the project plan

672

itself deadlines all kinds of stuff that

675.519

is critical to declaring something done

680.079

uh which is probably the the most basic

682.32

of that when you go into a project

685.12

particularly with the team we need to

687.12

all agree what does done look like what

689.959

does that mean because done is different

691.959

to everybody else and now I am done and

694.839

my definition is I want to let let you

696.76

throw your your two cents and actually

699.2

due to inflation is now your 45 bucks

701.8

into the conversation

703.92

Mike so you've touched on the three

707.48

different types of teams you talked

708.92

about the independent person working on

710.72

a team could be a contract could be a

712.92

startup uh whatever but it's essentially

715.6

a team of one uh you talked about the

718.519

small mid size teams small development

721

teams communication and you talked about

722.92

the large teams now the running theme of

725.44

all three of those uh at least between

727.399

the midsize and large is communication

729.76

now even if you're an individual of one

732.079

communication is still important but the

734.68

communication typically is more

736.76

important between you and the customer

738.32

or you and the vendor because you have

741.68

to make sure that what you're working on

742.959

is done right now with all three of

745.72

those the types of ways you work on the

749.279

projects or you develop software

751.8

typically can follow the same type of

753.399

pattern you have things like waterfall

755.24

where you build the entire project in

756.8

one go and then you have small

758.56

deliverables as you go out and get user

761.079

feedback as you're building the

762.519

application typically you see a little

764.519

bit more of that with individual or even

767.199

startup mentalities uh but typically in

769.839

today's environment it's more agile

771.959

driven you do things in small Sprints

773.959

you get things out the door quickly this

776.04

really is tailored for any type of team

778.839

or environment you typically want to

781.639

start quickly you you define your

783.959

requirements and you start chipping away

785.56

at it in small iterations and

788.8

deliverables as you're doing this

790.8

regardless of what size team you're

792.639

working on make sure you follow some

794.68

simple steps one make sure that you

798.12

understand the requirements that you

799.6

need you understand the software that

801.199

you're building make sure you have good

802.88

documentation skills make sure you

805.44

comment your code and you follow some

807.199

best practices you know make sure you

808.6

write test cases for your code make sure

810.76

you have the user stories defined as

813

you're building this software now Circle

816.279

back around as you're communicating this

818.839

if you're dealing with offshore or

821.079

different time zones with teams this

823.399

type of strategy really can hit home

826.16

because if you're doing small

827.279

deliverables no one should be working on

829.639

anything that isn't related to the

831.519

current Sprint so you really should be

834.839

working on requirements in such a way

837.92

that you don't have too many blockers

840

now this can happen but if you're in

842.24

this agile environment when you're

844.72

communicating you hit a blocker

846.12

everyone's on the same page it's like

847.72

whoops hey we've got this problem let's

850.04

kind of circle the fences and work

852

through

853.279

it now that kind of the development

856.16

style now as Rob said you know if you're

858.959

a standalone regardless of what team

861.199

code backup code repositories are

863.68

critical make sure that you define and

866.6

keep backing up your code this can also

869.48

help with that documentation it can also

871.839

help with testing so we've talked about

874.44

testing before in past podcasts but what

877.24

we really haven't hit home is if you

879.279

build out that deployment process that

881.88

continuous integration continuous

883.48

deployment one of the things you can

885.519

also build into that like Rob uses ANS

887.639

scripts to help do his builds his

889.8

deploys and things of that nature you

892.279

can also write in to your continuous

895.56

integration pipeline testing so you can

898.04

kick off like Jenkin or bamboo so when

900.56

you deploy your software it

902

automatically kicks off the test to run

904.16

against your software now as you're

906.04

compiling your code you can run unit

908.12

tests against your code to make sure

910.199

that the white box testing of your code

912.68

works that the functions work the way

914.8

they're supposed to when you're

916.44

deploying it through the continue

917.759

integration process you're looking at

920.199

more kind of like blackbox testing

921.759

you're testing things on the backend so

923.519

you can write those integration tests

925.279

those regression tests those smoke

926.759

testing and even system and load testing

929.44

all that can be built into the process

931.639

as you're going through your software

933.88

development process this really works in

936.759

any environment it could be waterfall it

938.36

could be agile but typically you want to

941.199

think agile try to get away from that

944.079

monolithic application now you could be

947.079

in that situation if you did a proof of

948.839

concept and oops you're now in

950.56

production you kind of have to backtrack

953.56

a little bit so if you run into

955.12

situations like that again work with the

957.639

tools you have

959.56

if you don't have good tools or good

962.6

software development processes in place

964.959

look at project management tools like

966.639

Microsoft project jira uh bugzilla you

969.959

even have some uh I believe issue

972

tracking Tools in git laabs now so look

974.839

at using these to help manage your

978.04

process to manage the project and make

980.12

sure everyone's on the same page and

982.959

finally the last point I'd like to hit

984.48

on is while you're working in teams now

988.199

if you're working in a ASO is you you

990.36

have to hold yourself accountable so

992.199

time management becomes critical you

994.92

should be keeping track of what you're

996.519

working on so things don't get off the

998.16

rails again that falls into that agile

1000.72

process now when you're dealing with

1002.759

small to midsize teams or even larger

1005.04

teams uh time management kind of gets a

1007.88

little managed by the team environment

1009.6

you have like your daily scrums you have

1011.199

your standups you have your team collabs

1013.279

which kind of keeps everyone moving in

1015.639

the same direction and keep things on

1018.199

track so something's falling behind you

1020.44

call it out and people you know again

1022.6

help circle the wagons and we can work

1024.679

together and keep things moving

1026.64

forward so I'll pass that back to you

1028.64

now Rob since I've kind of rambled on

1030.319

for a bit I think that the one thing I

1032.559

wanted to to point out to this that I I

1035.839

I have seen uh a change in

1039.679

this there are going to be times when it

1042.319

is all hands on deck there are if you're

1044.6

in a any kind of a real software

1047.839

development whether it is you doing some

1049.919

sort of you know side hustle thing or

1051.64

whether you're doing something with a

1053.039

team of thousands there is a point where

1055.799

there is a push where there there are

1059.12

going to be deadlines there are

1060.919

Milestones or deadlines or cost related

1063

to them there's all kinds of things like

1064.919

that one of the things you want to do as

1068.4

much as possible with these pieces the

1070.72

reason that we do this testing and that

1072.96

is to try to level those out as much as

1075.559

possible to try to take early on the

1079.36

where we we don't have this usually the

1081.4

urgency and sometimes there's some stuff

1083.159

that can get done very easily that we

1085.799

take the the buffer that gets built into

1088.919

that and we pull into that some of the

1091.4

things that are a little tougher this is

1093.44

where agile actually becomes very useful

1095.48

because you have things like you have a

1097.44

you have a Sprint you have a short

1098.84

period of time everything has

1101.12

essentially sort of a a critical level

1103.08

to it to some extent we want to get it

1106.039

done get it in this

1107.76

Sprint the two things I'll say is one

1110.44

within your Sprints yes you probably are

1112.64

going to have stuff in any given Sprint

1114.52

that is going to get pushed to the next

1116.08

one make sure that you're not just push

1119.559

push push push and that you're suddenly

1121.2

building up you're building more and

1123.08

more each time that you're just saying

1124.48

ah we're going to punt it to the next

1125.72

Sprint we're going to punt to the next

1126.96

Sprint there is a point where these

1129.2

things come you know come due and you

1132.08

need to get it done and that also means

1134.559

that there are going to be times that if

1137.08

you are a developer this to me is very

1139.08

much a difference when you become a

1140.96

developer is there's a point where like

1143

you're going to have late nights you're

1144.2

going to have weekends you're going to

1145.44

have times

1146.919

when things just don't work you're going

1149.08

to have and the worst are probably the

1150.799

configuration types things where I'm

1152.6

setting up a server or you know building

1155.039

this little piece of code that should be

1157

done in 30 seconds and it's not and you

1160.72

can lose an insane amount of time one

1165.32

suck it up buttercup you're gonna have

1167.6

to do that but two the good and the bad

1170.88

news I guess it's mostly bad news that

1172.559

never ends there will be times like

1174.4

Michael and I have been doing this for

1175.64

decades and we have still had times I

1177.28

know both of us even in the last few

1179.64

months where something like that happens

1181.28

and it's you know something is the

1183.88

uppercase instead lowercase or like I

1186.12

had one I chased down the other day it

1187.679

was literally a nine versus an 11 in two

1191.919

lines of code that were in a

1193.2

configuration file and it was like

1195.24

buried deep in a you know took a while

1197.559

to find it kind of thing those things

1200.28

happen just realize that is part of why

1204.36

they you know as they say you get paid

1205.64

the big bucks or whatever it is even if

1207.88

you're not getting paid the big bucks

1209.32

this is like part of what we we do have

1211.52

to struggle through and so the more that

1213.76

we communicate the more that we put all

1216.32

of these I will call them for lack of

1219.24

better term best practices into practice

1222.08

the more likely we are that we're not

1223.88

going to hit those kinds of things

1225.24

because we're going to test earlier

1226.84

we're going to see the bugs earlier

1228.32

we're going have repeatable processes

1230.52

and all the things

1232.72

that often contribute to those typos and

1236.039

those kinds of errors that cost a lot of

1238

time and caus us a lot of headaches and

1240.12

cost you know night all nighters and

1243.08

things like that we will get those

1245.559

things out of way there's a reason for

1247.52

this this is done by people and if if

1250.44

you do it often enough you will do it

1251.96

yourself because you'll be a believer

1253.88

because you'll realize that darn it if I

1255.64

had written a little script if I'd taken

1258.36

you know know five minutes and written a

1259.72

little shell script to do that then I

1261.72

would not have had that typo that cost

1263.559

me three hours to go track down uh

1266.679

closing thoughts on you and then we'll

1267.84

wrap this one up yeah so I'd like to add

1270.48

one additional thing to the idea of

1274.679

stuff getting kicked down the road like

1277.2

Pro you know um tasks taking more than

1280.32

one

1281.32

Sprint one thing that can occur and it

1285.76

does occur a lot in software development

1288.2

is someone comes up with an idea sales

1291

talks to a customer and within the

1293.12

course of the current development cycle

1296

you tend to get what's called scope

1297.679

creep you get new things added that are

1300.039

not necessarily thought out and it can

1302.52

cause things to really start going off

1304.32

the rails which causes the backup if you

1306.84

start encountering that if you can push

1310.88

back and try to get that into the next

1312.32

release cycle so you can finish the

1313.88

current level of work sometimes you

1316.52

can't but if you can will help keep a

1320.32

divide between the different areas of

1322.559

work being done uh otherwise SC Creek

1325.96

really big problem could potentially

1328.039

derail an application or it could really

1330.88

push your deliverables off track the

1334.24

other thing I'd like to touch on just

1337.12

slightly so we talked about the idea of

1340.12

projects you know those late nights and

1342.44

having to be all hands- on Deb sometimes

1346.159

that is the fault of the software

1349.64

sometimes a bug gets found but sometimes

1352.159

this could be something that is totally

1354.799

unintentional and and kind of a side

1358.159

effect of something else going on

1359.96

somewhere else in the

1361.4

company a real quick example of that is

1364.48

years ago we both worked at a company uh

1366.88

this was before Rob came on but we were

1369.52

going through a major systems upgrade

1372.159

behind the scenes and they had it all

1374.88

ready to go all tested and they were

1377.039

about to turn it on when we found out it

1379.32

did not work with our current web

1381.32

application software they forgot to test

1383.32

it literally 10 days before they went

1387.159

live because they had to go live for a

1389.32

federal

1390.52

requirement we had to completely

1392.919

overhaul our application server install

1395.96

a brand new updated server to work with

1398.4

everything and literally we were working

1401.2

almost 24 hours 10 for 10 days to make

1403.679

this happen we were talking to support

1405.36

in every time zone from Germany to Japan

1408.72

to California I mean it happens don't

1412.44

panic when that happens you're going to

1414.039

have a lot of anxiety trust me but just

1417.72

understand what the problem is make sure

1419.96

you have the numbers of who you need to

1421.72

talk to the support people and work

1424

together you know basically it's not

1426.84

necessarily one person's uh problem to

1429.679

solve unless you're a one person shop

1431.96

but it's the the help of the team it

1434.279

takes a community to kind of get you

1436.159

through this these kind of problems so

1439.36

use that and don't you know don't fall

1442

on your sword and be the only person

1444.159

that oh my God I have to figure this out

1446.32

work as a

1448.24

team I think that's the probably The

1450.36

Parting thought that I want to put into

1451.799

this is that yes this sounds you know

1454.159

we're painting not a very happy picture

1456.88

but these are also the times that you

1458.4

bond with your team these are the like

1460.559

these are the Box hole moments and stuff

1462.6

like that where you go through this

1463.88

stuff and you will come out of it on the

1465.84

other side I think a little closer

1467.36

tighter um it is really a good team

1470.2

building kind of experience so don't you

1472.48

know don't freak out it happens life

1475.32

continues you're going to have you will

1477.039

sleep again you know stuff like that

1478.919

unless it's a Death March and that's a

1480.32

whole different problem we'll talk about

1482.279

those another time because when we're

1483.96

just want to have another cheery

1486.24

discussion like this that being said if

1489.24

you're feeling really cheery right now

1490.679

and want to give us some feedback please

1492.6

shoot us an email info developer.com you

1495.08

can request things that you want us to

1497.559

talk about you can give us feedback you

1499.44

can trade War Stories whatever it is

1501.919

we'll read it we may probably will

1504.64

actually at some point refer to it on uh

1506.96

on the YouTube channel or out on the

1509.679

podcast you can also check us out on

1511.72

develop ur.com you can enter information

1513.48

in our forums there's a contact there's

1515.72

a contact us form there you can send us

1518.76

stuff on Twitter X you can leave us

1521.399

comments here you can leave us comments

1522.88

on YouTube you can check us out on

1524.32

YouTube if you're not and if you're on

1526.44

YouTube and you're then you can check us

1527.919

out on our podcast all of that being

1529.96

said we are not done I know that's a

1532.76

shocker we're coming back we're going to

1534.32

have more information more things to

1536.6

discuss next time around so until the

1538.919

next time go out there and have yourself

1540.159

a great day a great week and we will

1542.36

talk to you next time

1546.35

[Music]