📺 Develpreneur YouTube Episode

Video + transcript

Improving Team Collaboration in Software Development: Proven Strategies for Success

2025-06-19 •Youtube

Detailed Notes

In this episode of Building Better Developers with AI, Rob Broadhead and Michael Meloche explore how developers and teams can improve collaboration in software development to boost productivity, reduce tech debt, and deliver better software.

We dive into AI-backed insights on what true efficiency means—from solo developers to teams of 10+. Learn how to overcome common bottlenecks, improve your code review process, avoid testing paralysis, and implement Agile practices that actually work.

💡 Topics Covered: • Defining real efficiency beyond speed • Tips for solo developers to collaborate with tools and future selves • Small team collaboration with Agile, standups, and shared environments • Code review SLAs, requirement clarification, and CI/CD pipelines • Avoiding burnout, rework, and context switching

🎯 Whether you’re freelancing, managing a dev team, or leading engineering operations, these proven strategies will help you build better collaboration habits and workflows.

🔔 Subscribe for more developer-focused content every week!

📌 Visit the blog recap: https://develpreneur.com/improving-team-collaboration-in-software-development/

#SoftwareDevelopment #TeamCollaboration #AgileDevelopment #DeveloperProductivity #DevOps #SoloDeveloper #BuildingBetterDevelopers

Transcript Text
[Music]
that and get this like lined up a little
bit
like that.
Head straight
there.
Let's see there. Center myself a little
bit. Boom. All right. Yeah, all you guys
are catching all this behind the scenes
stuff. Isn't this a This is how we pull
off such an incredible podcast is a lot
of like aligning ourselves with cameras
and stuff like that because we don't
have, you know, makeup people and all
that kind of stuff to do all of this. We
just got to figure it out just like
we're going to do with this episode.
We're going to jump into this one.
Maximizing efficiency in software
development, individual, small, and
large teams. This uh be interested to
see what it has to say for this one.
Let's see.
Uh, interesting enough, it didn't start
with like that's an incredible topic.
So, maybe it's getting bored. We'll see
what happens with this one. See how it
goes. But we're going to dive right in.
Three, two, one. Well, hello and welcome
back. We are building better developers.
We are developer. We are with AI this
season. We're taking a prior season.
We're going through the topics and we're
basically just kicking those topics into
AI and we're discussing what it tells us
would have been great things to talk
about. Sometimes we get exactly what we
talked about. Sometimes we get stuff
that is out there. But guess what? We
talk about it this time around. So,
we're going to see what happens this
time around. First, I'm going to
introduce myself. I am Rob Broadhead,
one of the founders of Developer, also
the founder of RB Consulting, where we
help you do technology better. We sit
down with you. We learn what your
business is. What's your secret sauce?
What are your, you know, your pros and
cons? What are your good things, your
bad things, the positives? What are the
challenges and the pain points? What
kind of technologies do you have? And
then we take our knowledge of technology
and business and look at ways to allow
you to help you to guide you to do it
better. Whether it's through
simplification, automation, integration,
innovation, we sit down and find you a
way to go forward. work. Start with the
technology assessment. Figure out where
you're at, where are we starting our
journey, get a road map, where are we
going to go and how are we going to get
there. That's our road map. And then
we're going to either point you to the
places you can go to execute it yourself
or we're going to work with you to
execute on that road map as well. Good
thing, bad thing,
good thing, bad thing, bad thing. Couple
weeks ago, wife gets a call out of the
blue, son got into a car accident and it
was one of these where it was like,
okay, uh, what's going on? What's
happened? Things like that. The good
thing is nothing happened to him. This
is a combo. Cuz there's a bad thing. It
was a hit and run. The good thing is the
first thing that my wife said, Natalie
comes in and says, "You know what? Take
a picture of all of the cars including
their license plate." So my son gets out
of his car within the first, I don't
know, 30 seconds, 60 seconds, starts
snapping pictures and he gets the
picture of the license of the person
that is driving away. So they get caught
and they are going to, you know, it's
hit and run and uh they're going to
their insurance is going to cover all
this stuff. So good thing, bad thing,
good thing, bad thing. There's a couple
of those in there. Sometimes it's nice
to have somebody that can like think on
the, you know, during a a season or a
session of of stress and be like, "Hey,
take a picture of the bad guys before
they get away."
Don't have to take a picture of the bad
guy on the other side because he's on
video. If you've never checked us out on
the developer channel on YouTube, go for
it. But first, Michael is going to
introduce his bad self. Hey everyone, my
name is Michael Malash. I'm one of the
co-founders of building better
developers, also known as developer. I'm
also the founder of Envision QA where we
help companies unlock their software
potential through a comprehensive
software quality assurance assessment
review and test services. We help you
discover how assessing all the areas of
your software development teams from
sales to QA can ensure customer
satisfaction and improve the software
quality right from the initial
conversation with your users. We don't
just do that. We also help with
assessments. We help through you
actually walk through your applications,
do a full assessment of your software
stack and understand your processes and
procedures within your company to make
sure that the you have the right
software working for you, not you
working for your software. Good thing,
bad thing this time. Uh it's kind of one
and the same. Um, I am a bit of a gadget
geek and a project I'm on, I we had to
go buy a new uh printer for them uh to
print labels for this particular project
we're on. I've never worked with this
before, but it is a new gadget. So, I'm
like really looking to get my hands on
it. Um, but the bad side is I have to
figure out how this works under a
deadline. So, that's kind of the good
and bad. I'm going to have a lot of fun
with this, but it's going to be a little
stressing in the process. But, you know,
hey, that's what gadget geeks are all
about. You know, if it's not a Raspberry
Pi, it's a phone. You know, if you like
gadgets, you know what I'm saying?
So, this episode we're going to talk
about, we're going to spit out to AI and
see what it spits back at us. Maximizing
efficiency in software development,
individual, small, and large teams. Now,
one of the things I'm noticing as we're
going through this is that there was
probably some AI involved in creating
the topics that we the names of the
topics that we did back in the day. So,
it's really interesting because it's
almost like back when you used to tell
uh Alexa to act something to Google and
then Google would ask it back and forth
and the next thing you know they're
getting into a an AI war. Well, this is
maybe what we're going to get into. Now,
this this topic, we threw it in there.
And interestingly enough, it didn't get
all friendly and like, you know, rosy
cheicked and sunshine and rainbows. It
just got right into it. It's like, you
know what? Okay, this is what we're
going to do. We're going to talk about
how developers and teams of all sizes
can improve efficiency, blah blah blah.
Let's get into its points that it
recommends.
The first thing is define efficiency in
context. what efficiency really means in
software development. Not just speed,
but value delivered per effort. Avoiding
rework, tech debt, and burnout.
Efficiency is not the same as rushing or
cutting corners. Now, we didn't actually
define efficiency, I don't think, at the
time. We have definitely talked about
some of these topics along the way, but
I think this is probably the this is
like the the nut of it basically that I
think I'd like us to talk about a little
bit is efficiency where you're avoiding
rework, tech debt, and burnout. So, it's
it's really a couple of different very
big areas. It's rework. So it's doing
the solving the problem correctly, not
having to go not having bugs, not having
to go back and change the requirements
or get clarity on the requirements or
anything like that, but getting the
product the the problem solved the first
time, for lack of a better term. Now,
tech debt is the kind of it's like not
only getting it solved, but getting it
solved in a way that you're not saying,
"All right, we're just getting it done
right now, but we know there's some
other things that we want to do." It's
actually getting it solved essentially
the right way the first time. And then
burnout
is
yes it's you know burnout of your
resources of your developers but I also
think of it in this ska this a little
bit more of like without going through
all the resources you need to not making
your developers have to you know stay up
24 hours straight not having to you know
not pay people or uh you know cut your
budget or all these other things. So
it's really you know time quality and
resources. This is really looking at
efficiency in all of those areas. And so
I'm going to throw this out to you and
let you talk to any one of those to get
us started on this.
Sure. I was trying to pull up the uh
podcast episode to see some of the
highlights we did. Um, interestingly
enough, a lot of the things we talked
about, and I I'll touch on this, is
the main point of this episode before
was to really talk about efficiency of
your team, like individual developers,
small teams, large teams, how they work
together, how to make them work
efficiently together. And interestingly
enough, a lot of it was, you know, um
talking about like code committing, you
know, is everyone keeping track of their
code? How are people communicating? But
the main thing is, you know, define
efficiency and the the contracts within
your team. These are those points,
right? Commit code regularly, commit
your code, create re uh reproducible
builds like we were working on today.
create containers that you can share
with your teammates so that you don't
you have a smaller time for bringing new
team members up to speed. You know, it
it's all about efficiency. You want your
teams to work faster. You want them to
work better and you want them to
basically be working and not have be
constantly blocked, hitting roadblocks
uh and kind of arguing amongst
themselves across technology. You want
to make sure things run smoothly and
efficiently.
Now they move right and I think we're
going to talk into some of these as I'm
I'm looking at some of the other things.
So they break it this yeah you these
results come back they're going to break
it into a couple areas. So first they
talk about working solo. So the
independent developer so this is being
efficient as a soloreneur solo
developer. So the challenge is wearing
many hats you know dev QA ops support.
Uh there's not you don't have any
feedback loops. It's it's just you in
your head. Uh and they have some
efficiency tips. use opinionated
frameworks, which I've never heard that
phrase before, which is pretty
interesting. Uh, for example, Rails
Next.js to reduce decisions. So,
I like that because some of these uh a
lot of times we talk about the the
negatives of a framework being too
restrictive, too constraint, having too
many constraints that you have to solve
the problem this way. But the bonus of
that is that you don't have to think
about do I do it this way, do I do it
that way? Uh, one of the things that
I've I just was playing around with like
building a new little application the
other day and I wanted to do it in
Python because I was like, "All right, I
want to do it in Python because I had a
couple things set up for it already."
But then it was like, "Do I do Django?
Do I do Flask?" And there's things like
that. I like, "Okay, which way do I go?"
And then what do I do for the front end?
Do I do just like straight HTML? Do I do
React? Do I do, you know, do I maybe
instead say, "Well, I'm going to do like
Django on the front end, but I'm have a
node on the back end for an API."
There's there's a lot of different ways
you can go with these things. And that's
going to take you time if you're going
to sit there and think about it. So
these these tools that are much more
like this is the way will help you get
there faster. Now automate everything
possible. This is we talk about this all
the time, but as a single person, as a
single developer, um I find this a
really big challenge is that you
you just you don't feel like you have
the time or at least I don't feel like I
have the time to step back and go
automate it until I've done it several
times. I'm like, I am wasting time on
this. So instead of spending, you know,
five minutes now and then five minutes
tomorrow and five minutes the next day,
I'm going to go ahead and spend 15
minutes right now and just take care of
it for the way out. But you have to, you
know, it's one of those that you I think
you're a little biased in your
calculations of what kind of time are
you spending and what kind of time are
you going to save yourself. It always
helps to have that second set of eyes.
Uh set time box goals with clear
deliverables. that is so crucial
especially as an independent especially
as a side hustler and then uh use
journaling tools like obsidian or notion
to track progress. So I think also other
tools out there like you know your
trellos your asas your jeras all of
those things those kinds of things are I
think just as critical for a single
developer as they are for a team. So
covered a lot of ground there where do
you want to tackle uh efficiency for the
solo developer? So efficiency for the
solo developer. Uh one thing I don't
think you really touched on but it's
kind of we talked about many times is uh
make sure you have good uh like code
commit. Make sure you keep your the
quality of your code clean. you know,
make sure you that you have good um code
commit uh documentation
uh that you keep track like you said
using Jer things like that to make sure
that what you're working on is tracked
that you have snapshots of what you're
doing so you can roll back and then
automate automate automate automate. Get
that continuous integration pipeline
going as fast as you can because the
less time you have to spend maintaining
your pipelines, getting your builds out
there, the more time you can focus on
getting the work done and keep moving
forward on features. The other thing is
even as a solo developer, it may still
be worthwhile to build those containers
for your development environment so that
you can drop something and build it
right back up very quickly versus oops,
I broke my database. I have to spend 3
days rebuilding my database on my
machine. Whereas if you had a container
for that, all you would have to do is
drop the container and bring it back up.
So starting a project or starting out as
a solo developer, you might not think of
these things, but these are things that
if you can kind of plan ahead, what am I
going to need for what I'm working on?
What does this project need? And you
kind of lay out the things that you can
automate or structure in such a way that
you have minimal downtime.
Yeah. I and I think that the
that is I was I was taken back to a
project I did years and years ago where
I was I was the only developer. It was
uh it was as a consultant. It was for a
company but basically rebuilding an
existing application and it was uh I was
given the time and the the bandwidth to
you quote do it right. And it was really
comforting to have a broad range of unit
tests and automation so that when I
would go through I didn't at that point
it was a it was a locally developed
application. It was old Tomcad
application and stuff like that. But the
nice thing was that I would do you know
build I had and it was automated scripts
that could build it run all the unit
tests and make sure that it you know
everything tested out and then it would
actually like you know deploy it out and
then hit all the pages. So you would get
your initial, you know, cash hit. And it
was a great way for me to be able to
save time because instead of me having
to, you would do that like if I was
going to go to lunch or if I was going
to go take a break for a few minutes or
something like that, then I could kick
that off. I could have all that stuff
run and I could do the testing in the
background while I was doing something
else. So having those automations helped
a lot. Uh, another thing is containers.
I think when you're doing a solo
project, especially one that you will
probably get pulled away from, it is
very very helpful to have containers for
that, to have everything built into it.
Particularly, there's going to be things
like data. I don't know how often that
I've had um issues where I've got a
database that I was working on years,
you know, a year ago and I forget where
was I at. Uh maybe some of the data has
aged out and things like that. So having
a a fresh build process and things like
that you can do and the documentation
around it is really valuable because you
don't want to be cussing at yourself six
months ago. You're like man I wish I'd
really documented this piece. There's a
lot there but let's move on to the uh
small teams as they say there's two to
10 developers. So strengths, fast
communication, tight feedback loops, um
resource the challenges or resour
resource limitations, informal processes
can cause confusion as the team grows.
Uh efficiency tips, daily standups, but
keep them short and focused. Shared
development environments to reduce setup
friction. Adopt lightweight agile or
conbon boards. Invest early in testing
and CI/CD to avoid scaling pain.
Leverage pairing or mob programming
strategically for knowledge sharing or
onboarding. I'm going to take that last
one is I think that that is uh as
someone who has been in a lot of
different development environments and
particularly in the last 10 years or so
done a lot of you know siloed it's just
me even if I've got a you I may have
Slack and and other people around but
I'm in a in a room by myself effectively
doing coding it is very different from
being in uh the bullpin setup or some of
those kinds of things where you've got
people around you you can lean back at
any second and say Hey, I'm running into
this problem. And I think the people
that that embrace the technology that we
have out there like Slack and things
like that, message boards to be able to
quickly throw something out to the team
and have them respond back and say, "Oh
yeah, I ran into that thing and you
know, this is how I solved it." Or,
"Hey, let me help you out with that."
Or, "Hey, let's jump on a call real
quick and let's see if we can walk
through it."
The getting lost in your own head and
getting stuck in your own mindset of how
you're solving a problem is probably one
of the biggest challenges that we have.
Uh honestly, it's one of the things I've
liked about AI in the last 6 months is
because I will throw something out at
AI. It'll give me a completely different
direction. Sometimes it's useless.
Sometimes it's very useful, but at least
gets me off of the track. You know, we
get on this track like, "Okay, this is
this is a bug. This is the problem. This
is how I fix it." and then we realize
that it's not the bug or it's not the
problem or it's not how we fix it, but
we're stuck in that track already. Other
people can help us out in a nice nice
size team, you know, two to 10, it's
actually really good because you've got
somebody available, but you're not going
to be overwhelmed by the team. That's my
two cents. Your thoughts? So, I'm going
to take the one you always talk about.
I'm going to go with agile.
So for small teams 2 to 10 and even
larger teams but agile as Rob has
preached for many many years is
a great way to manage teams and ensure
that everyone is on the same page with
the project. It also helps avoid
duplication of work
where you don't have two people in a
silo working on the exact same thing at
the exact same time. The other thing
that this really helps that I like about
the agile approach is it also helps
share information across teams. I could
be working on one thing and say, "Hey, I
ran into this problem, but this is how I
solved it." And someone else could chime
in and say, "Oh, hey, can you get with
me after this standup?" Because that is
exactly what I'm running into. How did
you solve it? And it it it is a great
way to kind of break down your projects
into smaller sprints and really take
small chunks out of the code instead of
trying that big waterfall approach where
you try to do everything at once. This
is also very good for testing of the
application because hopefully you have a
tester on your team, but if you don't,
the other thing that you can kind of
work through is someone's got to be
testing the code. be it the manager, the
project manager, there's UAT as you are
going through these sprints, you can
work talk to these people and understand
that hey in my standup I'm running into
this. I'm doing this but the other
person can say hey wait that's not quite
what we need for the requirements or how
is that going to work for the user. So
it's very good for collaboration. It
keeps everyone on the same page and it
keeps your project from going too far
off track. It can still go off track,
but at least you go off track together
instead of in a silo. Yeah, we all go
over the edge of the cliff at the same
time. That's so not really comforting.
Anyways, let's move along. Uh the next
one I want to I'm going to skip the the
large teams uh mostly just for lack
because of time because the next one I
talked about is common bottlenecks and
bottlenecks and solutions for all sizes
of teams. So it has a nice little four
bullet points. So, one, and these I
think you probably all will be able to
relate to in some way. Slow code
reviews. Use review SLAs's and rotate
reviewers. Unclear requirements. Always
start with a 15minute clarification
huddle. Testing paralysis. Use test
pyramids. Prioritize integration tests
that catch regressions and context text
switching. Batch work. Blockout focus
time hours. So, I'm going to let throw
this one right back to you is where
where do you want to go with that? sort
of your favorite that every size team
seems to struggle with. So
it's very interesting. Uh all teams I
think
wow those bullet points it testing
paralysis seems to be the biggest one
for me. It it's like especially early on
with projects cuz you don't have
something there. you're still building
the foundation for what you need to
test. It really relies on the developers
to test their code, but they're too busy
trying to get the foundation in place to
get something stood up that they can
physically see and physically test. So,
a lot of times early on, either testing
is really good or it's really lax. And
then when you get into the more
midsection of the development uh of the
project, you run into problems where
there's not enough testing, things
break, you make one code change here,
break something here. Um, so that test
paralysis is really something that
kind of is personal where you you really
need to be testing your code from the
beginning. As you get something stood
up, as your teams get something a little
more sustainable, you can actually stand
up that server or you can actually run
the application on a desktop. At that
point, you need to start having
regression testing or at least user
acceptance testing. And then once you
start deploying to a QA server, you need
to start having uh that more refined
regression testing or smoke testing of
that system.
I am going to I think I want to talk
about the blocking out focus time hours.
Um because even with small teams, I've
seen this particularly in agile. This
can be a problem because you have your
daily standup. Um sometimes you'll have
a lot of breakout meetings and stuff
like that. you'll have a meeting here, a
meeting there, and the next thing you
know, you've you've ended up essentially
breaking up your day by a bunch of
meetings and you're not able to get
focused time to get stuff done. This
really becomes an issue with sprints
when you're getting to the end of a
sprint and you've got that mad dash, as
Michael sort of implied it, where you're
like getting all your code committed,
but then QA is doing all this testing
and there's this frenzy of testing and
there's a frenzy of feedback that comes
at it and so the developers are trying
to like scramble to get all their bugs
fixed and everything just goes haywire
for a couple of days and it's hard to
keep moving forward through that. Now,
that's not, you know, obviously it's the
end of a sprint, so it's not every part
of a sprint, but I think there
definitely should be some times, whether
it's waterfall, whether it's agile,
however you approach it. And no matter
the size of your team, that you have
some hours that are just like, we're
going to go get work done. Now, it may
be that you're, you know, the lead of a
team and you've got to deal with a lot
of other teams and you've got to go be
busy all the time. That's fine. Make
sure that if you do so, you're not
dragging your developers into
everything. make sure that you can, you
know, that's part of what your job is is
to deflect from them so that they can go
get their job done. You're going to go,
you know, listen to all the people you
need to listen to, get the stuff,
communicate it back to them, and do that
in a way that is efficient instead of
them having to sit there with you. Now,
you can do stuff, and this is something
we've done. You can do death by
recordings is you can record everything
and tell people, "Here you go. Let's go
to it. Uh, go listen to the recording
and you can grab whatever you want."
Don't do that to your teams,
particularly if you're like a, you know,
a lead and you've got developers, things
like that. Should distill that out. Give
them the bullet points that they need to
know and then move on. Don't make them
sit through that for a while.
A pro note is if you have to sit through
it, kick the speed up to like 1.5 or
two, however fast you can do stuff, and
you can always pause as you go through
that. Trust me, it makes very long
recordings a lot faster to go through,
and it will allow you to like jump
through to stuff. You can also use AI. A
lot of times it will give you summaries
and synopsis and you can take those and
maybe go figure out where in the
recording if you need to actually get
specifics. Uh but also it allows you to
get an outline a lot of times. So there
are a lot of ways there are a lot of
things that as a team grows that are
small but then they become very big very
quickly because you add more people and
so the little problems become bigger as
you go. And so I think that's something
you have to watch out for and it's one
of the things that it talks about as far
as principles of scale. But we're not
going to get into that because we are
bumping up against our time. It's like,
you know, ready for a commercial break
or something like that. So we've got to
wrap this one up. We will come back next
episode and we are going to continue
this because we're getting a lot out of
this as well. I hope you guys are. As
always, shoot us an info at developure
email. You can send us an email at
infodelvelopeneur.com.
I'm sorry I mixed all that up. didn't
come out quite right. It was one of
those like word scrambles.
Send us an email. Let us know what your
thoughts are. What are some of your
recommendations? What are some things
that you'd like to see us talk about? Uh
maybe some things that we want to throw
at AI as we get further into this future
episodes, future seasons. Uh if you want
to if if you're an interviewer and you
want to talk to us or if you know
somebody you would like us to interview,
we are open to that as well because hey,
we're agile just like that. Just just
because we can be. That being said, I
want to just thank you again for your
time. Go out there and have yourself a
great day, a great week, and we will
talk to you next time.
So, let's see. Bonus stuff. Oh, it even
has bonus content ideas. So, I'm going
to get that. Actually, I have two ideas
that I didn't get to in the podcast.
Cool.
one which started coming to mind when we
were talking about larger teams and it
totally went out the door as he went
through those four bullet points is
crossrain your team. Make sure that you
cycle your developers on different
features of your program. If you just
have one person working on database and
one person working on UI, if that UI
person quits, who's going to support
your UI?
Just make sure you're always rotating
your developers across different
features. Even if they're not skilled in
UI and they're better at backend, still
put them in UI. Give them smaller tasks
or give them a larger task, but give
them more time to work on the task and
maybe pair programming with the other
developer. That is very crucial to make
sure that your team is healthy and you
have the coverage in case someone wants
to go on vacation. Um, also it makes
sure that everyone on the team can
support customer issues or bugs that
come in. So you're not relying on one
person to always be that firefighting
person and have them burn out. Second
thing was code reviews.
I've been in many, many projects and
code reviews can be very contentious.
They can be ignored. People just go in
and just click done. They don't even
review it. You have other people that go
in it with such a fine tooth uh pen that
people are so frustrated by the time
they get the reviews from this person um
that it's like go away. Uh but a lot of
times
and then you have those that are in the
middle where they give very good
feedback. They give very detailed um
advice like oh hey maybe this is outside
of our framework or this is not quite
the architecture we want to use. Um,
other things could be simply, hey,
you're not following the code standards
for naming conventions. Make sure that
you're following this or you're missing
this comment. Or something even more
critical. It could be, hey, I don't
think this loop is working the way you
think it is. You might have a infinite
loop or you might want to switch the
logic that's not quite right. These are
benefits of doing code reviews. Code
review is not just hey someone just give
me a green check mark on my code saying
hey it looks great move on. Code reviews
are there one for review so your other
teammates know what's changing in the
code so if they don't touch that section
of code for 6 months they're at least
aware of what's going on. Two you catch
general uh typos or just logic issues
that might just be missed uh just
because you're quickly going through it.
It may work for your solution for your
problem but may break something else
just something you don't think about or
didn't even know about. And then lastly,
uh if you are the
uh coder,
take the code reviews with a grain of
salt. Submit your code, walk away. Do
not look at that code review for a day
at least or at least a couple hours. If
you watch those code reviews as they
come in and the comments, you might get
frustrated and just get angry. That's
not the point of this. And if your
reviewers are giving you that type of
feedback, you need to come together as a
team and say, "Hey, code reviews are a
safe space. This is to work through the
problems and make sure the code is
right, not how badly can I make myself
look better than you because I found a
problem in your code."
Yeah, there's code reviews are I've seen
them done. Well, there's a a wide range
of ways they are accomplished. They are
done. and they're addressed. They are a
great way for cross trainining. I will I
want to I guess sort of piggyback off
the crossraining idea.
This is something that a lot of times we
we put people on certain tickets and a
particular certain task because they're
good at it. That's their area and that
is the, you know, a sense the most
efficient way to get there. Put the
person that that's their strength on it
so they can get it done. The problem is
what happens if there are too many uh
things of tasks of that nature that have
to be done because now they become a
backlog or what happens if they leave or
they're hit by a bus or you know there's
a lot of different things that can go on
that can change the the balance of the
team and the team that you started out
with where everybody had the right
amount of work to do and all that kind
of stuff. it was do going well and now
suddenly the balance changes and things
go off the rails. I think I like to
relate it back to I'll go to a sport
like a nice little sports analogy way
back in the day.
One of these things that we did as a
hockey team is early in the year you'd
make sure that people played different
positions. You would play them in roles
that they wouldn't normally have gotten
because maybe they're not that good or
maybe they're really good and they
wouldn't normally have to do it. And it
could cost you like early in the se
there could be games that you they were
close they needed to be or that you lost
that you could have won. But fast
forward to the end of a season and now
you've got a everybody has come up.
You've got people that can cover for
each other. And so if you have an
injury, if you have somebody gets sick,
if you have somebody's just tired, you
can last longer. You now have a team and
not just a bunch of individuals. And it
makes a world of difference. And that is
included in solving problems because if
you've got your database guy always does
database and your front-end guy always
does front end and your designer always
does design and you know your JavaScript
person always does JavaScript, you're
going to have an imbalance. You're not
going to be able to have the idea of
like all hands on deck, everybody just
jump in and start grabbing tickets and
get stuff done because people aren't
going to be able to. And this is a hard
lesson to learn sometimes because
there's stuff that people will grab
things, you know, they'll work on things
that yes, they're going to do it a
little faster than somebody else, but
somebody else could do it. And so maybe
somebody else should do it so that
you're expanding that knowledge that you
do have a team that you're developing,
bringing everybody up instead of just
letting everybody get better within
their specific silo. Uh before we jump
out, I do want to go ahead. I teased
that they have this. One of the other
things was principles at scale was one
of the things that AI threw at us and I
just want to go through these because
you know real quick because there are
some good ones. Feedback loops shorten
them code customer production
any kind of feedback loop the sooner you
can get the message the information back
the better. Automation we talk about
this build pipelines that scale with
you. Whatever it is, however you do it,
make sure that as you get further along
that you are still not having to spend
too much time doing your builds and you
know getting doing to anything that's
not writing code, verifying code,
knowledge sharing, wikis, code comments,
brown bags, we talked about this is same
thing as a crossing. Make sure that as
many people on the teams as possible
know as much as they can about what's
going on. Yes, it is sometimes
timeconuming. Yes, it is sometimes very
frustrating, but it will pay off in the
long run. I promise you measurable
improvement. This is something that is
really a struggle for a lot of teams
particularly smaller ones is using like
dorometrics or delivery KPIs or
something like that. Have some way to
measure what you're doing. Now it is
very difficult. I know that there are u
you know you could use points and
velocities and things like that that
that happen a lot in agile and those
things are you know squishy as you start
out and as you get further along in a
team you can at least evaluate those uh
estimation I think from a developer
point of view is one of the most
important things to do is make your
developers estimate everything they
stink and do and then hold them to it
and by hold them to it I mean just when
they get done say how did that work out
for you help them to understand what
their particular estimation
style is, whether they need to take
their estimate and multiply it by 10 or
whether they, you know, overestimate,
which no developer ever does. Um, you
that's going to help everybody get
better because you're going to be more
realistic about what you can cover and
how fast you can cover that. That being
said, we are I'm done covering this.
This is as far as I can cover it. We
can't cover anymore. So, we are going to
call it an episode. Call it a night as
it were. We will be back. We are just
getting started in the season. Uh loving
this so far. We'll see. AI has like
gotten a little cooler towards us this
time. So, we'll see how it goes as we go
into the uh the remaining episodes and
uh we'll just see where we go from
there. We may break it up with a couple
of uh interviews along the way as well.
We're still looking at that. Uh
definitely some fun ones that are out
there. We'll see how it goes. As always,
love to hear your feedback. Any way that
you hear us, whether it's wherever
you're listening to podcasts, if you're
out there on YouTube, which you're
watching us right now, you're probably
on YouTube, leave us a comment, leave us
some feedback. You can, you know, thumbs
up, rate us, whatever it is. But really,
it's the comments that we really want to
have. We want to have that feedback.
What do you like? What don't you like?
Help us out. Help us help you, all of us
build a better podcast for building
better developers. Go out there and have
yourself a good one. And we will talk to
you next time.
[Music]
Transcript Segments
1.35

[Music]

27.519

that and get this like lined up a little

30.16

bit

32.079

like that.

34.96

Head straight

38.16

there.

40.64

Let's see there. Center myself a little

43.84

bit. Boom. All right. Yeah, all you guys

47.12

are catching all this behind the scenes

48.559

stuff. Isn't this a This is how we pull

51.039

off such an incredible podcast is a lot

54.48

of like aligning ourselves with cameras

56.079

and stuff like that because we don't

57.52

have, you know, makeup people and all

60.719

that kind of stuff to do all of this. We

62.399

just got to figure it out just like

65.439

we're going to do with this episode.

66.56

We're going to jump into this one.

68.64

Maximizing efficiency in software

70.479

development, individual, small, and

72.159

large teams. This uh be interested to

75.92

see what it has to say for this one.

78.159

Let's see.

81.36

Uh, interesting enough, it didn't start

82.96

with like that's an incredible topic.

85.04

So, maybe it's getting bored. We'll see

87.36

what happens with this one. See how it

88.96

goes. But we're going to dive right in.

90.96

Three, two, one. Well, hello and welcome

95.119

back. We are building better developers.

98.079

We are developer. We are with AI this

101.68

season. We're taking a prior season.

103.52

We're going through the topics and we're

105.36

basically just kicking those topics into

107.04

AI and we're discussing what it tells us

109.439

would have been great things to talk

110.799

about. Sometimes we get exactly what we

113.28

talked about. Sometimes we get stuff

114.72

that is out there. But guess what? We

116.96

talk about it this time around. So,

118.88

we're going to see what happens this

120.079

time around. First, I'm going to

122.24

introduce myself. I am Rob Broadhead,

124.399

one of the founders of Developer, also

126.399

the founder of RB Consulting, where we

128.879

help you do technology better. We sit

132.48

down with you. We learn what your

134.08

business is. What's your secret sauce?

136.239

What are your, you know, your pros and

137.84

cons? What are your good things, your

139.2

bad things, the positives? What are the

141.36

challenges and the pain points? What

143.44

kind of technologies do you have? And

145.36

then we take our knowledge of technology

147.28

and business and look at ways to allow

150

you to help you to guide you to do it

152.879

better. Whether it's through

153.84

simplification, automation, integration,

156.16

innovation, we sit down and find you a

158.879

way to go forward. work. Start with the

160.959

technology assessment. Figure out where

162.56

you're at, where are we starting our

164.4

journey, get a road map, where are we

166.879

going to go and how are we going to get

168.8

there. That's our road map. And then

170.16

we're going to either point you to the

171.599

places you can go to execute it yourself

173.76

or we're going to work with you to

175.28

execute on that road map as well. Good

178.8

thing, bad thing,

181.12

good thing, bad thing, bad thing. Couple

183.76

weeks ago, wife gets a call out of the

186.08

blue, son got into a car accident and it

190.319

was one of these where it was like,

192.08

okay, uh, what's going on? What's

195.12

happened? Things like that. The good

197.44

thing is nothing happened to him. This

200.319

is a combo. Cuz there's a bad thing. It

201.92

was a hit and run. The good thing is the

204.48

first thing that my wife said, Natalie

207.519

comes in and says, "You know what? Take

209.04

a picture of all of the cars including

210.959

their license plate." So my son gets out

213.519

of his car within the first, I don't

215.04

know, 30 seconds, 60 seconds, starts

217.36

snapping pictures and he gets the

219.2

picture of the license of the person

220.72

that is driving away. So they get caught

223.76

and they are going to, you know, it's

225.92

hit and run and uh they're going to

228.239

their insurance is going to cover all

229.599

this stuff. So good thing, bad thing,

231.28

good thing, bad thing. There's a couple

232.56

of those in there. Sometimes it's nice

234.64

to have somebody that can like think on

236.72

the, you know, during a a season or a

239.36

session of of stress and be like, "Hey,

242

take a picture of the bad guys before

243.519

they get away."

246.159

Don't have to take a picture of the bad

247.519

guy on the other side because he's on

249.12

video. If you've never checked us out on

250.64

the developer channel on YouTube, go for

252.879

it. But first, Michael is going to

255.28

introduce his bad self. Hey everyone, my

258.639

name is Michael Malash. I'm one of the

260

co-founders of building better

261.359

developers, also known as developer. I'm

263.84

also the founder of Envision QA where we

266.16

help companies unlock their software

268

potential through a comprehensive

269.84

software quality assurance assessment

271.6

review and test services. We help you

274.32

discover how assessing all the areas of

276.08

your software development teams from

277.919

sales to QA can ensure customer

280

satisfaction and improve the software

282.24

quality right from the initial

283.68

conversation with your users. We don't

286.08

just do that. We also help with

287.759

assessments. We help through you

289.52

actually walk through your applications,

291.52

do a full assessment of your software

293.199

stack and understand your processes and

296

procedures within your company to make

298.4

sure that the you have the right

300

software working for you, not you

302.08

working for your software. Good thing,

304.24

bad thing this time. Uh it's kind of one

306.8

and the same. Um, I am a bit of a gadget

309.68

geek and a project I'm on, I we had to

313.68

go buy a new uh printer for them uh to

317.039

print labels for this particular project

319.52

we're on. I've never worked with this

321.36

before, but it is a new gadget. So, I'm

323.68

like really looking to get my hands on

325.68

it. Um, but the bad side is I have to

328.4

figure out how this works under a

329.919

deadline. So, that's kind of the good

331.6

and bad. I'm going to have a lot of fun

332.72

with this, but it's going to be a little

334.72

stressing in the process. But, you know,

336.32

hey, that's what gadget geeks are all

338.479

about. You know, if it's not a Raspberry

339.84

Pi, it's a phone. You know, if you like

342.8

gadgets, you know what I'm saying?

346.4

So, this episode we're going to talk

348.24

about, we're going to spit out to AI and

350.24

see what it spits back at us. Maximizing

352.56

efficiency in software development,

354.24

individual, small, and large teams. Now,

356.96

one of the things I'm noticing as we're

358.32

going through this is that there was

359.6

probably some AI involved in creating

361.44

the topics that we the names of the

363.919

topics that we did back in the day. So,

366.56

it's really interesting because it's

367.919

almost like back when you used to tell

370.24

uh Alexa to act something to Google and

373.039

then Google would ask it back and forth

374.88

and the next thing you know they're

376.479

getting into a an AI war. Well, this is

378.88

maybe what we're going to get into. Now,

380.8

this this topic, we threw it in there.

382.96

And interestingly enough, it didn't get

384.72

all friendly and like, you know, rosy

388.4

cheicked and sunshine and rainbows. It

390.16

just got right into it. It's like, you

391.84

know what? Okay, this is what we're

394.479

going to do. We're going to talk about

395.919

how developers and teams of all sizes

397.52

can improve efficiency, blah blah blah.

399.759

Let's get into its points that it

401.84

recommends.

403.36

The first thing is define efficiency in

405.36

context. what efficiency really means in

408.08

software development. Not just speed,

409.68

but value delivered per effort. Avoiding

412.479

rework, tech debt, and burnout.

415.039

Efficiency is not the same as rushing or

417.919

cutting corners. Now, we didn't actually

420.72

define efficiency, I don't think, at the

422.88

time. We have definitely talked about

424.88

some of these topics along the way, but

427.599

I think this is probably the this is

430.8

like the the nut of it basically that I

432.96

think I'd like us to talk about a little

434.16

bit is efficiency where you're avoiding

437.199

rework, tech debt, and burnout. So, it's

439.759

it's really a couple of different very

442.639

big areas. It's rework. So it's doing

445.28

the solving the problem correctly, not

447.68

having to go not having bugs, not having

449.599

to go back and change the requirements

451.759

or get clarity on the requirements or

453.199

anything like that, but getting the

454.24

product the the problem solved the first

456.72

time, for lack of a better term. Now,

458.8

tech debt is the kind of it's like not

460.639

only getting it solved, but getting it

462

solved in a way that you're not saying,

463.919

"All right, we're just getting it done

466.24

right now, but we know there's some

467.599

other things that we want to do." It's

469.919

actually getting it solved essentially

471.599

the right way the first time. And then

474.479

burnout

476

is

477.52

yes it's you know burnout of your

479.12

resources of your developers but I also

480.879

think of it in this ska this a little

483.039

bit more of like without going through

485.12

all the resources you need to not making

487.039

your developers have to you know stay up

489.199

24 hours straight not having to you know

491.919

not pay people or uh you know cut your

494.96

budget or all these other things. So

496.879

it's really you know time quality and

499.68

resources. This is really looking at

501.12

efficiency in all of those areas. And so

504

I'm going to throw this out to you and

505.199

let you talk to any one of those to get

507.28

us started on this.

510.8

Sure. I was trying to pull up the uh

512.479

podcast episode to see some of the

514.399

highlights we did. Um, interestingly

517.68

enough, a lot of the things we talked

519.519

about, and I I'll touch on this, is

523.839

the main point of this episode before

526.56

was to really talk about efficiency of

529.839

your team, like individual developers,

531.519

small teams, large teams, how they work

533.279

together, how to make them work

535.44

efficiently together. And interestingly

538.08

enough, a lot of it was, you know, um

540.8

talking about like code committing, you

542.959

know, is everyone keeping track of their

545.519

code? How are people communicating? But

549.12

the main thing is, you know, define

551.04

efficiency and the the contracts within

554.56

your team. These are those points,

557.2

right? Commit code regularly, commit

559.279

your code, create re uh reproducible

561.68

builds like we were working on today.

564.64

create containers that you can share

566.72

with your teammates so that you don't

568.72

you have a smaller time for bringing new

570.72

team members up to speed. You know, it

573.44

it's all about efficiency. You want your

575.2

teams to work faster. You want them to

578.08

work better and you want them to

579.6

basically be working and not have be

582.399

constantly blocked, hitting roadblocks

585.04

uh and kind of arguing amongst

586.88

themselves across technology. You want

589.04

to make sure things run smoothly and

591.12

efficiently.

593.519

Now they move right and I think we're

595.04

going to talk into some of these as I'm

596.32

I'm looking at some of the other things.

597.68

So they break it this yeah you these

599.44

results come back they're going to break

600.72

it into a couple areas. So first they

603.12

talk about working solo. So the

604.56

independent developer so this is being

606.399

efficient as a soloreneur solo

609.04

developer. So the challenge is wearing

611.36

many hats you know dev QA ops support.

615.44

Uh there's not you don't have any

616.959

feedback loops. It's it's just you in

618.64

your head. Uh and they have some

620.32

efficiency tips. use opinionated

622.64

frameworks, which I've never heard that

624.24

phrase before, which is pretty

625.519

interesting. Uh, for example, Rails

627.68

Next.js to reduce decisions. So,

632.24

I like that because some of these uh a

634.88

lot of times we talk about the the

636.88

negatives of a framework being too

640

restrictive, too constraint, having too

642

many constraints that you have to solve

644

the problem this way. But the bonus of

646.48

that is that you don't have to think

647.92

about do I do it this way, do I do it

649.68

that way? Uh, one of the things that

651.68

I've I just was playing around with like

654.079

building a new little application the

655.36

other day and I wanted to do it in

656.959

Python because I was like, "All right, I

658.64

want to do it in Python because I had a

660.079

couple things set up for it already."

661.92

But then it was like, "Do I do Django?

663.6

Do I do Flask?" And there's things like

666.959

that. I like, "Okay, which way do I go?"

668.16

And then what do I do for the front end?

669.279

Do I do just like straight HTML? Do I do

671.2

React? Do I do, you know, do I maybe

673.279

instead say, "Well, I'm going to do like

674.56

Django on the front end, but I'm have a

676

node on the back end for an API."

677.68

There's there's a lot of different ways

678.64

you can go with these things. And that's

680.959

going to take you time if you're going

682.079

to sit there and think about it. So

684.079

these these tools that are much more

686.16

like this is the way will help you get

688.8

there faster. Now automate everything

691.279

possible. This is we talk about this all

693.36

the time, but as a single person, as a

695.519

single developer, um I find this a

698.079

really big challenge is that you

701.12

you just you don't feel like you have

702.88

the time or at least I don't feel like I

704.56

have the time to step back and go

706.72

automate it until I've done it several

708.88

times. I'm like, I am wasting time on

710.64

this. So instead of spending, you know,

713.2

five minutes now and then five minutes

714.72

tomorrow and five minutes the next day,

716.16

I'm going to go ahead and spend 15

717.6

minutes right now and just take care of

719.839

it for the way out. But you have to, you

722.079

know, it's one of those that you I think

724.64

you're a little biased in your

726.24

calculations of what kind of time are

727.76

you spending and what kind of time are

728.959

you going to save yourself. It always

730.24

helps to have that second set of eyes.

733.519

Uh set time box goals with clear

735.44

deliverables. that is so crucial

737.68

especially as an independent especially

739.6

as a side hustler and then uh use

741.68

journaling tools like obsidian or notion

743.519

to track progress. So I think also other

746.56

tools out there like you know your

748

trellos your asas your jeras all of

751.2

those things those kinds of things are I

753.279

think just as critical for a single

755.76

developer as they are for a team. So

758.959

covered a lot of ground there where do

760.32

you want to tackle uh efficiency for the

762.959

solo developer? So efficiency for the

766.079

solo developer. Uh one thing I don't

768.24

think you really touched on but it's

769.519

kind of we talked about many times is uh

772.72

make sure you have good uh like code

776.079

commit. Make sure you keep your the

777.92

quality of your code clean. you know,

779.92

make sure you that you have good um code

783.36

commit uh documentation

786.16

uh that you keep track like you said

787.92

using Jer things like that to make sure

789.44

that what you're working on is tracked

792.079

that you have snapshots of what you're

794.56

doing so you can roll back and then

796.959

automate automate automate automate. Get

800.24

that continuous integration pipeline

802.16

going as fast as you can because the

804.72

less time you have to spend maintaining

807.2

your pipelines, getting your builds out

809.279

there, the more time you can focus on

811.2

getting the work done and keep moving

813.44

forward on features. The other thing is

816.079

even as a solo developer, it may still

820.56

be worthwhile to build those containers

824

for your development environment so that

826.24

you can drop something and build it

828.32

right back up very quickly versus oops,

831.279

I broke my database. I have to spend 3

833.12

days rebuilding my database on my

834.959

machine. Whereas if you had a container

837.68

for that, all you would have to do is

839.12

drop the container and bring it back up.

840.88

So starting a project or starting out as

844.16

a solo developer, you might not think of

845.68

these things, but these are things that

847.839

if you can kind of plan ahead, what am I

852.48

going to need for what I'm working on?

854.639

What does this project need? And you

856.32

kind of lay out the things that you can

857.6

automate or structure in such a way that

860.8

you have minimal downtime.

863.839

Yeah. I and I think that the

867.199

that is I was I was taken back to a

869.76

project I did years and years ago where

871.279

I was I was the only developer. It was

873.279

uh it was as a consultant. It was for a

875.279

company but basically rebuilding an

878.24

existing application and it was uh I was

881.36

given the time and the the bandwidth to

884

you quote do it right. And it was really

888

comforting to have a broad range of unit

890.88

tests and automation so that when I

893.6

would go through I didn't at that point

894.959

it was a it was a locally developed

897.279

application. It was old Tomcad

898.72

application and stuff like that. But the

900.56

nice thing was that I would do you know

902.399

build I had and it was automated scripts

904.88

that could build it run all the unit

907.36

tests and make sure that it you know

908.8

everything tested out and then it would

910.24

actually like you know deploy it out and

912.32

then hit all the pages. So you would get

914

your initial, you know, cash hit. And it

916.24

was a great way for me to be able to

918.48

save time because instead of me having

920.24

to, you would do that like if I was

922.32

going to go to lunch or if I was going

923.279

to go take a break for a few minutes or

924.8

something like that, then I could kick

925.92

that off. I could have all that stuff

927.76

run and I could do the testing in the

929.92

background while I was doing something

931.519

else. So having those automations helped

933.68

a lot. Uh, another thing is containers.

936.48

I think when you're doing a solo

940.24

project, especially one that you will

942.079

probably get pulled away from, it is

944.56

very very helpful to have containers for

946.56

that, to have everything built into it.

949.199

Particularly, there's going to be things

950.32

like data. I don't know how often that

951.92

I've had um issues where I've got a

954.399

database that I was working on years,

956.639

you know, a year ago and I forget where

958.88

was I at. Uh maybe some of the data has

961.44

aged out and things like that. So having

963.36

a a fresh build process and things like

965.36

that you can do and the documentation

967.279

around it is really valuable because you

970

don't want to be cussing at yourself six

971.6

months ago. You're like man I wish I'd

973.6

really documented this piece. There's a

977.12

lot there but let's move on to the uh

979.759

small teams as they say there's two to

981.759

10 developers. So strengths, fast

984.24

communication, tight feedback loops, um

987.199

resource the challenges or resour

989.199

resource limitations, informal processes

991.44

can cause confusion as the team grows.

994

Uh efficiency tips, daily standups, but

996.32

keep them short and focused. Shared

998.32

development environments to reduce setup

999.92

friction. Adopt lightweight agile or

1002.079

conbon boards. Invest early in testing

1004.399

and CI/CD to avoid scaling pain.

1006.88

Leverage pairing or mob programming

1008.88

strategically for knowledge sharing or

1011.04

onboarding. I'm going to take that last

1013.04

one is I think that that is uh as

1016.16

someone who has been in a lot of

1018.56

different development environments and

1020

particularly in the last 10 years or so

1022.399

done a lot of you know siloed it's just

1025.199

me even if I've got a you I may have

1026.959

Slack and and other people around but

1028.72

I'm in a in a room by myself effectively

1031.6

doing coding it is very different from

1035.199

being in uh the bullpin setup or some of

1037.679

those kinds of things where you've got

1038.64

people around you you can lean back at

1040.48

any second and say Hey, I'm running into

1042.4

this problem. And I think the people

1044.559

that that embrace the technology that we

1047.76

have out there like Slack and things

1049.6

like that, message boards to be able to

1051.6

quickly throw something out to the team

1053.44

and have them respond back and say, "Oh

1056

yeah, I ran into that thing and you

1058.4

know, this is how I solved it." Or,

1060.64

"Hey, let me help you out with that."

1062.32

Or, "Hey, let's jump on a call real

1064.48

quick and let's see if we can walk

1066

through it."

1067.679

The getting lost in your own head and

1069.84

getting stuck in your own mindset of how

1071.84

you're solving a problem is probably one

1073.919

of the biggest challenges that we have.

1075.76

Uh honestly, it's one of the things I've

1077.2

liked about AI in the last 6 months is

1079.28

because I will throw something out at

1080.559

AI. It'll give me a completely different

1082.64

direction. Sometimes it's useless.

1084.4

Sometimes it's very useful, but at least

1086.559

gets me off of the track. You know, we

1088.799

get on this track like, "Okay, this is

1090.72

this is a bug. This is the problem. This

1092.24

is how I fix it." and then we realize

1093.52

that it's not the bug or it's not the

1094.88

problem or it's not how we fix it, but

1096.72

we're stuck in that track already. Other

1098.64

people can help us out in a nice nice

1101.28

size team, you know, two to 10, it's

1103.039

actually really good because you've got

1104.32

somebody available, but you're not going

1105.919

to be overwhelmed by the team. That's my

1108.559

two cents. Your thoughts? So, I'm going

1110.88

to take the one you always talk about.

1112.48

I'm going to go with agile.

1114.799

So for small teams 2 to 10 and even

1117.44

larger teams but agile as Rob has

1120.64

preached for many many years is

1124.799

a great way to manage teams and ensure

1129.039

that everyone is on the same page with

1131.12

the project. It also helps avoid

1134

duplication of work

1137.76

where you don't have two people in a

1140.24

silo working on the exact same thing at

1142.559

the exact same time. The other thing

1144.48

that this really helps that I like about

1146.72

the agile approach is it also helps

1150.64

share information across teams. I could

1153.76

be working on one thing and say, "Hey, I

1155.76

ran into this problem, but this is how I

1157.52

solved it." And someone else could chime

1159.2

in and say, "Oh, hey, can you get with

1161.28

me after this standup?" Because that is

1163.2

exactly what I'm running into. How did

1165.44

you solve it? And it it it is a great

1169.12

way to kind of break down your projects

1172

into smaller sprints and really take

1175.2

small chunks out of the code instead of

1176.799

trying that big waterfall approach where

1178.32

you try to do everything at once. This

1181.2

is also very good for testing of the

1183.28

application because hopefully you have a

1185.84

tester on your team, but if you don't,

1188

the other thing that you can kind of

1190.32

work through is someone's got to be

1192.559

testing the code. be it the manager, the

1194.559

project manager, there's UAT as you are

1197.919

going through these sprints, you can

1201.039

work talk to these people and understand

1202.96

that hey in my standup I'm running into

1205.28

this. I'm doing this but the other

1206.48

person can say hey wait that's not quite

1208.16

what we need for the requirements or how

1210.88

is that going to work for the user. So

1213.12

it's very good for collaboration. It

1215.12

keeps everyone on the same page and it

1216.88

keeps your project from going too far

1218.559

off track. It can still go off track,

1220.559

but at least you go off track together

1222.799

instead of in a silo. Yeah, we all go

1225.28

over the edge of the cliff at the same

1226.88

time. That's so not really comforting.

1230.72

Anyways, let's move along. Uh the next

1233.36

one I want to I'm going to skip the the

1235.039

large teams uh mostly just for lack

1237.28

because of time because the next one I

1238.88

talked about is common bottlenecks and

1240.559

bottlenecks and solutions for all sizes

1242.559

of teams. So it has a nice little four

1245.919

bullet points. So, one, and these I

1247.52

think you probably all will be able to

1249.919

relate to in some way. Slow code

1251.919

reviews. Use review SLAs's and rotate

1254.4

reviewers. Unclear requirements. Always

1256.799

start with a 15minute clarification

1258.64

huddle. Testing paralysis. Use test

1260.96

pyramids. Prioritize integration tests

1263.2

that catch regressions and context text

1266.08

switching. Batch work. Blockout focus

1268.48

time hours. So, I'm going to let throw

1271.36

this one right back to you is where

1273.36

where do you want to go with that? sort

1275.2

of your favorite that every size team

1277.6

seems to struggle with. So

1283.679

it's very interesting. Uh all teams I

1287.52

think

1289.6

wow those bullet points it testing

1292.72

paralysis seems to be the biggest one

1294.4

for me. It it's like especially early on

1297.84

with projects cuz you don't have

1300.159

something there. you're still building

1302.559

the foundation for what you need to

1304.24

test. It really relies on the developers

1307.2

to test their code, but they're too busy

1309.28

trying to get the foundation in place to

1311.2

get something stood up that they can

1313.44

physically see and physically test. So,

1316

a lot of times early on, either testing

1318.64

is really good or it's really lax. And

1321.039

then when you get into the more

1322.4

midsection of the development uh of the

1324.799

project, you run into problems where

1326.48

there's not enough testing, things

1327.919

break, you make one code change here,

1329.679

break something here. Um, so that test

1332.08

paralysis is really something that

1335.919

kind of is personal where you you really

1337.919

need to be testing your code from the

1339.36

beginning. As you get something stood

1342

up, as your teams get something a little

1344.08

more sustainable, you can actually stand

1346.159

up that server or you can actually run

1347.76

the application on a desktop. At that

1350.159

point, you need to start having

1351.84

regression testing or at least user

1354.159

acceptance testing. And then once you

1355.919

start deploying to a QA server, you need

1358.159

to start having uh that more refined

1360.72

regression testing or smoke testing of

1362.88

that system.

1365.28

I am going to I think I want to talk

1368.08

about the blocking out focus time hours.

1370.799

Um because even with small teams, I've

1373.12

seen this particularly in agile. This

1375.679

can be a problem because you have your

1376.88

daily standup. Um sometimes you'll have

1379.679

a lot of breakout meetings and stuff

1381.36

like that. you'll have a meeting here, a

1382.799

meeting there, and the next thing you

1384.4

know, you've you've ended up essentially

1388.159

breaking up your day by a bunch of

1390.159

meetings and you're not able to get

1392.24

focused time to get stuff done. This

1394.24

really becomes an issue with sprints

1396.4

when you're getting to the end of a

1397.76

sprint and you've got that mad dash, as

1400.24

Michael sort of implied it, where you're

1401.44

like getting all your code committed,

1402.96

but then QA is doing all this testing

1404.799

and there's this frenzy of testing and

1406.32

there's a frenzy of feedback that comes

1407.919

at it and so the developers are trying

1409.679

to like scramble to get all their bugs

1411.28

fixed and everything just goes haywire

1413.6

for a couple of days and it's hard to

1417.44

keep moving forward through that. Now,

1420

that's not, you know, obviously it's the

1421.36

end of a sprint, so it's not every part

1422.88

of a sprint, but I think there

1424.08

definitely should be some times, whether

1426.32

it's waterfall, whether it's agile,

1428.64

however you approach it. And no matter

1431.2

the size of your team, that you have

1432.64

some hours that are just like, we're

1434.48

going to go get work done. Now, it may

1437.12

be that you're, you know, the lead of a

1439.12

team and you've got to deal with a lot

1440.32

of other teams and you've got to go be

1441.76

busy all the time. That's fine. Make

1443.919

sure that if you do so, you're not

1445.2

dragging your developers into

1446.559

everything. make sure that you can, you

1448.96

know, that's part of what your job is is

1450.799

to deflect from them so that they can go

1453.84

get their job done. You're going to go,

1455.76

you know, listen to all the people you

1456.96

need to listen to, get the stuff,

1458.24

communicate it back to them, and do that

1460.32

in a way that is efficient instead of

1461.919

them having to sit there with you. Now,

1464.24

you can do stuff, and this is something

1466

we've done. You can do death by

1468.4

recordings is you can record everything

1469.919

and tell people, "Here you go. Let's go

1472.08

to it. Uh, go listen to the recording

1473.919

and you can grab whatever you want."

1475.44

Don't do that to your teams,

1476.72

particularly if you're like a, you know,

1478

a lead and you've got developers, things

1479.76

like that. Should distill that out. Give

1482

them the bullet points that they need to

1483.6

know and then move on. Don't make them

1485.039

sit through that for a while.

1487.52

A pro note is if you have to sit through

1490.4

it, kick the speed up to like 1.5 or

1492.799

two, however fast you can do stuff, and

1494.72

you can always pause as you go through

1496.08

that. Trust me, it makes very long

1498.799

recordings a lot faster to go through,

1501.279

and it will allow you to like jump

1502.64

through to stuff. You can also use AI. A

1504.48

lot of times it will give you summaries

1505.84

and synopsis and you can take those and

1507.919

maybe go figure out where in the

1509.679

recording if you need to actually get

1511.279

specifics. Uh but also it allows you to

1514

get an outline a lot of times. So there

1516.24

are a lot of ways there are a lot of

1518.88

things that as a team grows that are

1521.12

small but then they become very big very

1523.36

quickly because you add more people and

1525.52

so the little problems become bigger as

1528.159

you go. And so I think that's something

1529.44

you have to watch out for and it's one

1531.36

of the things that it talks about as far

1532.72

as principles of scale. But we're not

1534.559

going to get into that because we are

1536.559

bumping up against our time. It's like,

1539.12

you know, ready for a commercial break

1540.72

or something like that. So we've got to

1542.24

wrap this one up. We will come back next

1544.559

episode and we are going to continue

1545.76

this because we're getting a lot out of

1547.36

this as well. I hope you guys are. As

1549.36

always, shoot us an info at developure

1551.6

email. You can send us an email at

1553.76

infodelvelopeneur.com.

1555.36

I'm sorry I mixed all that up. didn't

1557.6

come out quite right. It was one of

1558.799

those like word scrambles.

1561.12

Send us an email. Let us know what your

1563.44

thoughts are. What are some of your

1564.559

recommendations? What are some things

1565.679

that you'd like to see us talk about? Uh

1568.08

maybe some things that we want to throw

1569.279

at AI as we get further into this future

1571.52

episodes, future seasons. Uh if you want

1574.64

to if if you're an interviewer and you

1576.4

want to talk to us or if you know

1577.84

somebody you would like us to interview,

1579.6

we are open to that as well because hey,

1581.919

we're agile just like that. Just just

1584.48

because we can be. That being said, I

1587.279

want to just thank you again for your

1588.88

time. Go out there and have yourself a

1590.559

great day, a great week, and we will

1592.64

talk to you next time.

1596.64

So, let's see. Bonus stuff. Oh, it even

1599.76

has bonus content ideas. So, I'm going

1601.2

to get that. Actually, I have two ideas

1603.52

that I didn't get to in the podcast.

1607.2

Cool.

1608.48

one which started coming to mind when we

1611.52

were talking about larger teams and it

1613.12

totally went out the door as he went

1614.72

through those four bullet points is

1617.6

crossrain your team. Make sure that you

1620.4

cycle your developers on different

1623.279

features of your program. If you just

1625.2

have one person working on database and

1627.12

one person working on UI, if that UI

1629.36

person quits, who's going to support

1631.039

your UI?

1633.44

Just make sure you're always rotating

1635.76

your developers across different

1637.12

features. Even if they're not skilled in

1639.6

UI and they're better at backend, still

1641.44

put them in UI. Give them smaller tasks

1644.159

or give them a larger task, but give

1646.159

them more time to work on the task and

1647.84

maybe pair programming with the other

1649.84

developer. That is very crucial to make

1651.919

sure that your team is healthy and you

1653.919

have the coverage in case someone wants

1655.36

to go on vacation. Um, also it makes

1658.159

sure that everyone on the team can

1660.48

support customer issues or bugs that

1663.36

come in. So you're not relying on one

1665.2

person to always be that firefighting

1666.72

person and have them burn out. Second

1669.279

thing was code reviews.

1673.279

I've been in many, many projects and

1675.84

code reviews can be very contentious.

1679.2

They can be ignored. People just go in

1681.6

and just click done. They don't even

1683.919

review it. You have other people that go

1685.76

in it with such a fine tooth uh pen that

1688.64

people are so frustrated by the time

1690.399

they get the reviews from this person um

1694.08

that it's like go away. Uh but a lot of

1697.36

times

1699.279

and then you have those that are in the

1700.48

middle where they give very good

1702

feedback. They give very detailed um

1704.799

advice like oh hey maybe this is outside

1706.96

of our framework or this is not quite

1709.84

the architecture we want to use. Um,

1712.96

other things could be simply, hey,

1714.799

you're not following the code standards

1716.96

for naming conventions. Make sure that

1718.72

you're following this or you're missing

1720.24

this comment. Or something even more

1723.44

critical. It could be, hey, I don't

1725.44

think this loop is working the way you

1727.039

think it is. You might have a infinite

1729.039

loop or you might want to switch the

1731.039

logic that's not quite right. These are

1733.279

benefits of doing code reviews. Code

1735.919

review is not just hey someone just give

1738.88

me a green check mark on my code saying

1742.08

hey it looks great move on. Code reviews

1745.039

are there one for review so your other

1747.52

teammates know what's changing in the

1749.279

code so if they don't touch that section

1751.52

of code for 6 months they're at least

1753.44

aware of what's going on. Two you catch

1756.32

general uh typos or just logic issues

1759.76

that might just be missed uh just

1762.08

because you're quickly going through it.

1763.52

It may work for your solution for your

1765.679

problem but may break something else

1767.36

just something you don't think about or

1768.72

didn't even know about. And then lastly,

1771.679

uh if you are the

1774.96

uh coder,

1777.279

take the code reviews with a grain of

1779.2

salt. Submit your code, walk away. Do

1781.44

not look at that code review for a day

1783.84

at least or at least a couple hours. If

1785.76

you watch those code reviews as they

1787.44

come in and the comments, you might get

1789.2

frustrated and just get angry. That's

1792.559

not the point of this. And if your

1794.64

reviewers are giving you that type of

1796.32

feedback, you need to come together as a

1798

team and say, "Hey, code reviews are a

1800.159

safe space. This is to work through the

1802.48

problems and make sure the code is

1804.48

right, not how badly can I make myself

1807.6

look better than you because I found a

1809.6

problem in your code."

1812.72

Yeah, there's code reviews are I've seen

1816.08

them done. Well, there's a a wide range

1818.559

of ways they are accomplished. They are

1821.44

done. and they're addressed. They are a

1824.08

great way for cross trainining. I will I

1827.52

want to I guess sort of piggyback off

1830.559

the crossraining idea.

1833.52

This is something that a lot of times we

1836.32

we put people on certain tickets and a

1838.799

particular certain task because they're

1840.88

good at it. That's their area and that

1842.799

is the, you know, a sense the most

1844.799

efficient way to get there. Put the

1846.88

person that that's their strength on it

1848.799

so they can get it done. The problem is

1852.32

what happens if there are too many uh

1855.44

things of tasks of that nature that have

1857.6

to be done because now they become a

1858.88

backlog or what happens if they leave or

1861.36

they're hit by a bus or you know there's

1864.799

a lot of different things that can go on

1866.32

that can change the the balance of the

1869.2

team and the team that you started out

1871.279

with where everybody had the right

1872.64

amount of work to do and all that kind

1873.919

of stuff. it was do going well and now

1877.039

suddenly the balance changes and things

1879.76

go off the rails. I think I like to

1882.159

relate it back to I'll go to a sport

1883.919

like a nice little sports analogy way

1886

back in the day.

1888.24

One of these things that we did as a

1890

hockey team is early in the year you'd

1892.32

make sure that people played different

1893.679

positions. You would play them in roles

1896.48

that they wouldn't normally have gotten

1897.919

because maybe they're not that good or

1899.679

maybe they're really good and they

1900.799

wouldn't normally have to do it. And it

1903.76

could cost you like early in the se

1905.6

there could be games that you they were

1907.36

close they needed to be or that you lost

1909.039

that you could have won. But fast

1911.76

forward to the end of a season and now

1913.84

you've got a everybody has come up.

1916.64

You've got people that can cover for

1918.08

each other. And so if you have an

1919.279

injury, if you have somebody gets sick,

1920.559

if you have somebody's just tired, you

1922.96

can last longer. You now have a team and

1926.399

not just a bunch of individuals. And it

1929.279

makes a world of difference. And that is

1931.6

included in solving problems because if

1934.08

you've got your database guy always does

1936.24

database and your front-end guy always

1937.76

does front end and your designer always

1940.08

does design and you know your JavaScript

1942.159

person always does JavaScript, you're

1944

going to have an imbalance. You're not

1946.159

going to be able to have the idea of

1947.6

like all hands on deck, everybody just

1949.279

jump in and start grabbing tickets and

1950.88

get stuff done because people aren't

1952.799

going to be able to. And this is a hard

1955.12

lesson to learn sometimes because

1956.559

there's stuff that people will grab

1958.96

things, you know, they'll work on things

1960.24

that yes, they're going to do it a

1962.32

little faster than somebody else, but

1963.84

somebody else could do it. And so maybe

1966.159

somebody else should do it so that

1968.159

you're expanding that knowledge that you

1970.159

do have a team that you're developing,

1972.159

bringing everybody up instead of just

1974

letting everybody get better within

1975.519

their specific silo. Uh before we jump

1978.24

out, I do want to go ahead. I teased

1980.48

that they have this. One of the other

1981.84

things was principles at scale was one

1983.6

of the things that AI threw at us and I

1985.44

just want to go through these because

1986.88

you know real quick because there are

1988

some good ones. Feedback loops shorten

1990.399

them code customer production

1994

any kind of feedback loop the sooner you

1996.24

can get the message the information back

1998.08

the better. Automation we talk about

2000.24

this build pipelines that scale with

2002

you. Whatever it is, however you do it,

2005.039

make sure that as you get further along

2006.799

that you are still not having to spend

2008.64

too much time doing your builds and you

2011.36

know getting doing to anything that's

2012.96

not writing code, verifying code,

2015.519

knowledge sharing, wikis, code comments,

2017.76

brown bags, we talked about this is same

2020

thing as a crossing. Make sure that as

2021.919

many people on the teams as possible

2023.84

know as much as they can about what's

2025.44

going on. Yes, it is sometimes

2026.799

timeconuming. Yes, it is sometimes very

2029.12

frustrating, but it will pay off in the

2031.519

long run. I promise you measurable

2034.72

improvement. This is something that is

2037.279

really a struggle for a lot of teams

2038.88

particularly smaller ones is using like

2040.399

dorometrics or delivery KPIs or

2042.64

something like that. Have some way to

2045.44

measure what you're doing. Now it is

2047.36

very difficult. I know that there are u

2049.919

you know you could use points and

2051.2

velocities and things like that that

2052.72

that happen a lot in agile and those

2055.04

things are you know squishy as you start

2057.919

out and as you get further along in a

2059.359

team you can at least evaluate those uh

2062.399

estimation I think from a developer

2064.159

point of view is one of the most

2065.52

important things to do is make your

2066.8

developers estimate everything they

2069.04

stink and do and then hold them to it

2070.96

and by hold them to it I mean just when

2072.56

they get done say how did that work out

2074.56

for you help them to understand what

2077.28

their particular estimation

2079.76

style is, whether they need to take

2081.44

their estimate and multiply it by 10 or

2083.839

whether they, you know, overestimate,

2085.839

which no developer ever does. Um, you

2089.2

that's going to help everybody get

2090.96

better because you're going to be more

2092.159

realistic about what you can cover and

2094.159

how fast you can cover that. That being

2096.96

said, we are I'm done covering this.

2099.44

This is as far as I can cover it. We

2101.04

can't cover anymore. So, we are going to

2103.119

call it an episode. Call it a night as

2105.04

it were. We will be back. We are just

2107.359

getting started in the season. Uh loving

2109.76

this so far. We'll see. AI has like

2111.76

gotten a little cooler towards us this

2113.359

time. So, we'll see how it goes as we go

2115.599

into the uh the remaining episodes and

2118.32

uh we'll just see where we go from

2119.359

there. We may break it up with a couple

2120.8

of uh interviews along the way as well.

2122.4

We're still looking at that. Uh

2124.16

definitely some fun ones that are out

2125.359

there. We'll see how it goes. As always,

2127.92

love to hear your feedback. Any way that

2129.76

you hear us, whether it's wherever

2131.04

you're listening to podcasts, if you're

2132.96

out there on YouTube, which you're

2134.24

watching us right now, you're probably

2135.44

on YouTube, leave us a comment, leave us

2137.359

some feedback. You can, you know, thumbs

2139.359

up, rate us, whatever it is. But really,

2141.359

it's the comments that we really want to

2142.88

have. We want to have that feedback.

2144.24

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

2146.079

Help us out. Help us help you, all of us

2148.8

build a better podcast for building

2150.24

better developers. Go out there and have

2152.64

yourself a good one. And we will talk to

2154.4

you next time.

2157.59

[Music]