📺 Develpreneur YouTube Episode

Video + transcript

Code Consistency for Better Software

2025-09-09 •Youtube

Detailed Notes

Code consistency is more than formatting — it’s the key to building clean, scalable, and collaborative software. In this episode of Building Better Developers with AI, Rob Broadhead and Michael Meloche revisit why consistency matters, how AI tools can help, and practical steps for adopting standards that stick.

What you’ll learn: • The hidden cost of inconsistent code • How code consistency improves quality and teamwork • Tools to enforce standards across teams • Common myths about coding standards • A simple developer challenge to get started

👉 Like, share, and subscribe for more insights on building better developers and better software.

*Follow-us on:*

* [email protected] * https://develpreneur.com/ * https://www.youtube.com/@develpreneur * https://facebook.com/Develpreneur * https://x.com/develpreneur * https://www.linkedin.com/company/develpreneur/

Transcript Text
[Music]
Go.
Recording in progress and we are good.
May I have to look. This thing's like a
little bit bright in my eyes. I'm trying
to if I want to do this or if I want to
be like
Let's see.
I don't know if this is going to be any
better.
Um, see if we crank it down a tad.
Yeah, you're kind of deal with what I'm
doing. I had to turn a lamp on because I
got a shadow on one side.
>> Yeah, that's sort of where I'm at is
I've got like
me. Okay,
I'll get back here a little bit and
let's see. So, went and dug through uh
our free Slack thing has got like our
big old posts disappeared so I had to go
back but I found it found where the
episodes were and all that kind of
stuff. We are doing coding standards
understanding their importance in
software development and I decided to go
back to chat GPT this time just mostly
because I decided to go back to chat
GPT. So,
um I guess we're just going to dive in.
We'll just like take off with this
sucker. And so, we'll do our little ths.
Uno.
Hello and welcome back. We are
continuing our season. We're getting
near the end, but we are still
continuing forward and we are talking
about couple seasons back we went
through a lot of u goals and and
suggestions for developers and now we're
doing it with AI. We're throwing it out
to chatbt asking it what it thinks and
we're having some pretty good
conversations along the way. Who are we?
Well, we are the developer podcast. We
are building better developers is also
known as I happen to be Rob Broadhead,
one of the founders of developer. Also
founder of RB Consulting where we are
we are a organization that helps you do
technology better. Um, our goal is to
step in, explain, help you explain what
your business is, make sure we go
through your processes, things of that
nature, and then we're going to help you
find a, you know, craft a road map
basically is find a way to take you from
where you are to where you want to be.
And we're going to use technology to get
there because once you have your
processes defined and nailed down, then
you can do things like simplify,
automate, innovate, integrate. You can
do all these things that allow you to
change those processes around in a way
that they become uh faster to, you know,
faster to get done, more efficient, and
then of course that allows you more time
to work on your business and also make
your customers very happy, which makes
everybody happy. Good thing, bad thing.
Uh good thing is is I've got a new, for
those who haven't seen it, I've got a
new little mic that I'm testing out. The
bad thing is is that my setting that my
setup that I'm working on as a uh mobile
person and being able to just do this
anywhere, haven't completely got it
nailed down yet because Zoom has some
stuff that it doesn't like to do, which
is one of the things we use for our
recording. And uh I'm going to have to
work on that and figure out or I may
just have to load some crap onto my
phone so that I can be very uh phone
ccentric. uh but someone who is not
phone ccentric although he is out in the
middle of nowhere doing this. Michael go
ahead and introduce yourself.
>> Hey everyone, my name is Michael
Malashsh. I'm one of the co-founders of
Building Better Developers, also known
as Developer. I'm also the owner and
founder of Envision QA where we help
businesses run better by making sure
that their software works the way it's
supposed to. Whether you're managing
customers, selling online, you know,
running a clinic, we make sure that your
software is reliable. Uh it runs
efficiently and is easy to use. We do
that by helping you um you know, improve
your customer experience, uh more
focused on growth and remove those
headaches that might be in your
software. And we do that by starting by
getting to know your business. We kind
of get in the trenches with you. We
spend time really getting invested,
understanding your business,
understanding your processes, and try to
figure out what your goal is. What is
your why? What is it that you're trying
to do? And then from there, we recommend
the right solution, whether it's
building a custom tool, fixing what's
broken, or automating your testing. End
of the day, we help you prepare for a
smoother launch or better uh improvement
with your customers. Ultimately, our
goal is to take care of the tech behind
the scenes so you can focus on your
business and not worry about your
software. Let the software do its thing.
You take care and focus on your business
and making money and making your
customers happy. If you want to learn
more, check us out at envisionqa.com.
Good thing, bad thing. So, we are
recording this today on September 4th,
and today is the launch of Hollow Night
2, Silk Road. And if you've been
watching the news, it launched at 10:00
today and it pretty much took down every
single game shop out there. So, I have
not been able to download it yet because
the stores are unreliable. So, that's
the bad thing. The good thing is once it
is reliable and I can get the software,
I'm going to be able to play some new
Hollow Knight 2 Silk Road hopefully
tonight.
Well, good. I am not going to be playing
that because I didn't even play Hollow
Night one. So, that's one of those
things. I'm behind the times, but I'm
not behind the times on this topic. So,
this time around, we're going to talk
about coding. The original topic's title
was coding standards, understanding
their importance in software
development. And we went back to chat
GPT this time. This is actually chat
GPT5 uh that we're working on. I think
we early on we had a couple that were
4.5. We're now doing a little playing
around with five, just seeing how AI
evolves. And uh this one starts out with
the episode flow. It's giving us a
little flow of it. Hook one to two
minutes. Start with a relatable story.
It loves to start with a relatable
story. Uh, imagine you inherit a
project, open the code, and every file
looks different. Indentation, naming,
even how errors are handled. How much
time would you waste just trying to
understand the style before you even get
to the logic? Connected to the audience.
Developers who want to grow their
careers must not only write good code,
but write code that's understandable and
maintainable. Before we even jump into
the next section, I want to I want to
say that I've actually found AI is
really useful in these kinds of
situations. If you sort of once you
spend a little bit of time looking at
the code, u I have found some ways that
you can you can get AI some of these
tools to say, hey, this is how I want it
to be structured. These are some of my
standards. And it can actually give you
a pretty good starting drop point on
becoming consistent because trust me,
you you don't want to leave the mess.
You want to clean the the code up that
you're touching. That's just bonus
material. Moving on. Defining coding
standards. Three to four minutes.
Explain what coding standards are. A set
of agreed upon conventions for style,
formatting, and structure. Examples:
naming conventions. Camel case versus
snake case. File organization.
commenting documentation pro p practices
and learning how to speak English
properly and error handling patterns.
Now I think the
these things can get like some people
can feel like this is a little too much
red tape. It's too much administrative
stuff. Things like that. There's there's
complaints because developers are like
darn it I gotta go make my code align
with whatever the standards are.
>> That's all fine and Danny. I know
everybody wants to be all creative and
do code their way, but when push comes
to shove and you're trying to look
through code and figure out what it's
doing, if there's not a consistency to
it, then it's going to be harder to
read. I like error handling patterns in
particular. That's like one that drives
me nuts when it's inconsistent and it
has c it causes problems like you would
not believe when you get into like
production and things like that. So if
you're the person that's like, "Oh, I'm
just going to like print something out
to the console versus somebody that's
using, you know, log forj or whatever
that version, whatever the main logger
is for your language or the person
that's always shoving it out to messages
that show up on your, you know, flow
through and then show up on the
interface or they get kicked back into
some database table and get logged
there." Actually, all of those things
are fine, but pick one. be consistent
because it is really difficult when one
section of code does one and another se
section of code does something else and
then they don't always sync up because
now they're doing it different ways and
then the and even the messaging
early early on when I was a developer
one of the things one of the couple of
the apps actually I worked with is they
had every single message laid out there
was like a clued file of some sort an
ini file or whatever it happened to be
whatever format it was and like every
single message in the system lived
there. A lot of times there's errors. So
you'd have an error code like a number
and then you'd have a message and a
number and a message. It seems a little
old school and stuff like that, but it
is actually really darn effective
because then it's like always use the
number. Always grab that thing. You can
use a lookup table in a database.
There's a lot of different things you
can do, but messaging and notifications
in particular, it is so critical to be
consistent. And it's even more so to do
the notifications and messaging that the
users see because if they're looking all
over the place and they're not seeing it
right and sometimes it shows up and
sticks around and sometimes you have to
hit okay and sometimes it disappears
after 3 seconds and sometimes it has an
alert noise and sometimes it doesn't.
People don't know what the heck's going
on and they're just going to say it's
broken. I think I saw something but I'm
not sure what I saw. They're going to
ignore it. They're not going to give you
useful feedback of it.
I'm going to step off of my soap box
now, but that I think is one of the
areas that we overlook way too often and
we need to make sure that we cover that
like in code reviews and things like
that. Michael, time for you to step up
on that soap box.
>> So, right off the bat, file
organization. It annoys me if and I want
go into an organization and they've got
code that is not organized because you
know most programming languages have
some type of file structure organization
that you need to follow and if you're
not following that having new developers
come onto a project can be extremely
difficult. The other problem is if you
don't have an agreed upon file
organization, if you have things like
containerization or things like that
where you have specific paths for
things, if you have your project one way
and someone else has it another way, if
you try to deploy to these containers,
you're going to have to do custom
configurations for where are the files
located, where are you deploying them,
you know, what is the path where a file
is, you know, is it source, you know, if
you're doing Java, you got simple Maven,
so you have standards that you have to
follow to build a project. If you have a
straight up just plain old Java
application, you don't necessarily have
a standard. You can do whatever you want
for package naming structures and things
like that. And that can be extremely
difficult if you aren't all in
agreement. The other thing is commenting
and documentation practices. So many
companies don't aren't really good at
commenting or documenting their code.
They either have it external to the code
or they have it a little bit in the code
but it's not wellmaintained. They may
have read me files. At the end of the
day, get used to writing documented
code. And by that I mean literally write
in plain English. Write your code in a
way that if you read the statement, you
should almost be able to read and know
what exactly your code is doing. It
doesn't have to be 100% pure English,
you know, because those could get long,
but you can abbreviate enough or camelc
case things enough that you can
understand what the code is doing just
by reading the code. And then you don't
need all these explicit or explicit uh
additional documentation or comments in
your code. But still, if you add
something that has a specific meaning
and it's not clear, document it. Add a
line comment. Six months from now,
you're not going to remember what that
is. And it's not like I know some people
struggle. So like well it's all this
complicated stuff that I'm doing. It's
like then break it down. So it should be
steps of like I do X and then I do Y and
then I do Z and then those can be
function call. So yeah maybe within
those old functions or those methods
you've got you know five or 10 lines of
code that do something. But it should be
like a nice unit of work and then you
can just describe what it is. You don't
have to get super detailed down to each
line, but as long as those groupings
have something, then you're off and
running and you should have something
that's going to be far more readable and
you will thank yourself in the future
along with everybody that touches your
code. So, moving along, why they matter.
Uh, we've already started on these a
little bit. Uh, it says spend 6 to8
minutes on this. Let's see how this
goes. Team communication standards are
like a shared language. Reduce cognitive
load. Developers don't have to decipher
stylistic quirks. Maintainability,
easier debugging and onboarding new team
members. Avoid tribal knowledge locked
in a single dev style. Quality and
consistency. Consistency improves
readability. Tools, llinters,
formatterers. Enforce quality
automatically. Professionalism and
growth. Employers expect clean,
consistent code. Following standards
makes you stand out as someone who
understands the bigger picture of
software engineering, not just coding.
I'm going to go right basically right to
that last one
because I think that's one of the things
is that as a coder and that's I see this
so often. There's so many projects I've
picked up that that's the that's the
problem is the person that did it or
maybe it's a couple people that did it.
Uh sometimes it's like a chain of people
that did it but they were all individual
developers. You can look at it and see
that it was written by different people.
I have been in situations where it's
like it was horrible. It was like it was
not only written by different people,
but they used completely different
libraries. They had a completely
different approach. And so you have this
big nasty bloated code that covers all
of these, you know, five different ways
people were doing things and you're
never really sure which works. It's
almost impossible to pull something out
because you're like, well, if I
eliminate that, I'm not sure what I
break and what I don't. And it just
becomes a complete nightmare.
Part of being a developer, of moving
into being a better developer, is being
able to do so in a a not sitting up in
your ivory tower approach is doing it in
a way that you are now much more a man
of the people or of that kind of thing.
It's you're part of the team that you're
saying, "Hey, we're going to do this
together and it's going to look like it
was done by a team or a single person."
And it's just like if you hear somebody
that you hear a band and everybody's
playing different songs and different
styles, it could be a jam session and it
could be really cool, but it's probably
not because even a jam session there's
still there is a there is standards
within that. You're not going to hear a
jam session that is like a waltz,
somebody rapping, somebody playing jazz,
somebody else doing hard rock, somebody
else doing soft rock. you know, there
will be different instruments and
they're doing their own little thing,
but there is some sort of cohesiveness
to us. That's the same thing we want. We
don't want to be just a bunch of random
people making noise. We want to actually
come together as a band, we'll call it,
or as a, you know, as a group and build
something that has that cohesive feel to
it. It is so so much easier to maintain
something like that. It is easier to
find bugs with something like that. It
is easier to scale something like that.
So that is where you become a
professional developer versus somebody
that can just write code is when you can
do it and do it within a a team aspect
and follow some of those standards
instead of just doing your own thing.
Once again, I'm just stepping on soap
boxes today. So I'm going to get back
off and let's see what your where do you
want to go with this one? Oh, my soap
box is going to be the uh combination of
the tools and clean and consistent code
because one of the biggest problems I
have in almost any software shop I work
in is when you hire on new people or you
combine teams or your teams grow from
one or two people. If you are not
enforcing llinters and formatterers and
having good you know source repositories
and you are essentially managing how you
want your code committed, how you want
it formatted. If you do not use these
llinters and formatterers and everyone
has a different IDE and they're writing
code however they want. When you go to
commit to your code repository, it's
going to tell you that every single line
in the file has changed when you change
one line. And it gets increasingly
difficult over time to manage code
review know what the hell is really
going on with the code per revision
really if you are not using a llinter
today start Google has a whole library
out there for just about every IDE it's
a good one to just start with um because
if you go with that one regardless if
you got visual code intelligj
um you know python whatever They have a
llinter for everything and it works with
just about every single IDE on the
market. So you can pretty much say,
"Hey, go if we're going to stick with
Google, go grab the one for your
language, install it in your tool and
stick with it."
Even if you say are using Java and you
have like Eclipse and Intelligj and
Visual Code, even if you use the default
liners that come with those idees, each
one could be slightly different causing
problems. So just pick one, pick a
particular format and apply it to
everything. So don't rely on the
individual tools. And then lastly, just
make sure you document this in a wiki or
you know your basically your uh coding
standards so that everyone is on the
same page and when you bring new people
on, make sure that that is one of the
first things you do when you onboard
them.
I will just follow up on that because I
I did not mention this before, but I
think it it very much dubtales what you
said is the whole idea of when you
commit stuff in and it does a
comparison, it's going to say
everything's changed. What's worse is
when you're having to actually merge
stuff because one, you're not going to
see the changes, but more importantly,
if you don't have a standard style and
approach, then you're not it's it is
that much harder to merge code because
you're looking at stuff, you're going,
"Well, I I'm not sure if this works. I'm
not sure if this fits here and that fits
there." And particularly then if you
start to merge code that is different
styles, you can have all sorts of issues
with it. And I have I'm just speaking
from experience. I have cussed at many a
person sometimes myself even in doing
some of these things where it's like
okay we've got to like let's get it
straight and using things like llinters
and that are static code analysis those
tools are worth their weight in gold to
help make sure that you get that stuff
in place and just and you spend the time
set up the hooks to make sure that when
people are committing that those things
are going through there code reviews
that kind of stuff make sure that those
things are happening it will make a
difference and you will thank yourself.
Uh common obje objections and
counterpoints 3 to four minutes on this
one. Uh standards killed creativity.
Creativity should go into solving
problems not inventing new brace styles.
Uh it slows us down initially maybe but
in the long run it saves time for the
whole team. Every project is different.
Yes, but standards should evolve with
context. Think of them as living
guidelines.
um
having written in the last year or two
numerous standards and guideline
documents um and actually a lot of times
they different organization different
team sizes and stuff like that but there
is definitely a a common thread through
them and one of the things that is I
think that we haven't touched on yet is
that uh standards can help us write
better code that can help us write stuff
that is more efficient that is easier to
tune that takes advantage of uh the
language, the environment and things
like that. If we stick to these
standards, it not only makes our code
tighter, but then it allows us to it it
has us work within a a structure that
then other people have a better idea of
what to expect from code they're not
even looking at. There's certain things
that you're going to expect. For
example, an API. If every endpoint on
the API is written by a different
developer in a different way, then
you're going to get all kinds of
weirdness. You're going to get some that
want JSON and some that don't and some
want XML and some don't and some kick
out an error code and some don't and
some have six different messages and one
has it all in one big text that you have
to parse.
These things are I'm I'm I'm taking it
to the extreme a little in that example.
However,
it's not that different from what we're
dealing with. I I have worked in now
last few years in particular several
projects where we have not enforced
stuff enough early on and that we've
brought things in. We've merged some
stuff. If you start bringing AI into the
picture, it's not going to be standard
compliant 99% of the time. And then what
ends up happening is you have to like
look at stuff and goes,
"What the hell is this? What why is this
done this right? And then you have to go
clean it up and you have to say, "Okay,
let's go make it look like this other
stuff." Uh you will also run into all
kinds of problems if you're not doing
this. If you're in one of these uh
evolving environments, which is almost
everybody now cuz you may have Java that
is now, you know, it's not standard. Uh
you're doing something that's been, you
know, was 18 versions back and it's like
no, nobody should do that anymore. Uh
Python is like that. They're constantly
evolving their stuff. React, like all of
these things. Ruby, they've got all
these libraries and all these tools and
you're going to end up in your own
little version matching hell if you're
not paying attention and making sure
that the standards are also being
updated and work with whatever your your
tool set and environment is. Thoughts on
this one?
>> So, I'm going to go with every project
is different. Yes, but standards should
evolve with content. So I have talked
about kitchen sinks all over the place
and have talked about you even mentioned
you know you need to make sure you
refactor you refine your code break out
those large methods you know if every
project is different yes however
even if you have different languages if
you are writing something with specific
functionality and you objectify it
correctly be it a like a message Q or a
database your services layers you have
different layers to software, different
ways of doing things. If you define your
standards correctly and you break out
your files and the individual uh
implementations of everything correctly,
then you should actually have a code
library that you can pull from for all
your projects. Everything should be
standardized across the board. So like
one project talks to my SQL. Well, you
could should be able to take that one
piece of code and put it into another.
you should not have to duplicate. Or
better yet, you should be able to put
that into a uh package and include that
package into your next project and then
you essentially have your shared library
that's used in multiple places.
Sometimes that's good, sometimes that's
bad because you could have extensions of
that, but you should be extending the
code, not modifying the original code.
If the original piece works, extend it
if you need additional functionality.
That way, you always have your core
component. And then with that, you know,
it it slows us down.
It doesn't. At the beginning, it does
because you got to get everyone on the
same page. But very quickly, you're
going to find that defining standards
saves the day because 6 months from now,
if you guys are all on the same page,
everything is being coded the exact way.
When you come in to another an old
project to fix something, you should
know where to go. You should not spend a
whole lot of time hunting and pecking.
What is a spaghetti code? Because you
followed your standards.
>> I have nothing to contribute on that
one. We're gonna continue on uh
partially from time and stuff like that
because this one actually gets into some
I'm going to it's a funnel area. How to
implement standard 6 to 8 minutes.
>> Uh it says start small. Pick a winter
formatter. We've beat this to death. Uh
adopt a widely accepted standard first
like PEP 8 for Python, PSR for PHP,
Google Java style. uh automate
enforcement with pre-commit hooks, CI/CD
integration as we've mentioned, review
and code reviews, encourage don't
police, we had episodes on that one. Uh
document standards in a contributing MD
file.
As I'm going through this and looking at
these now, one uh the standards I was
talking about that I've done every
single time I started with whatever a
industry standard. So I've done several
Python standards and I went right to
Pepe. Uh actually use Google standards
for several things. I've used Google.
They've got stuff for Java, for CSS, for
HTML, for PHP. I think I can't remember
where all I got them, but all of those
are out there and they really give you a
good start and it's you should be doing
it anyways. That's part of being a
better developer is doing the stuff that
is industry standard is the industry
norms. If you're a doctor and you're
following industry, you know, standards,
you're probably doing pretty good. If
you're just out there doing crazy stuff,
you're probably killing people or
something like that that you shouldn't.
We're not likely to do it to that level.
But those are things to think about.
What I'm reminded in all this is back in
the day uh many many many many years ago
when there was this thing that everybody
was a big part of in some way, form or
fashion that was called sharewware. And
there were all of these sites where you
could go download software and do all
this stuff. And a lot of these sites had
standards for what you needed to include
with your product if you were going to
post it on their site. If you go like
America Online just died not too long
ago. They were one that did that. They
had um and I can't remember what it was,
but it was things like you had to have a
read me. You had to have some sort of
like disclaimer. You had to have an
ownership thing. You had to have like
all these little things. And all these
documents
felt like um you know red tape or
something like that. But they are very
they're very good about allowing
somebody that gets this thing that
downloads this thing to be able to
understand where it came from, who to
contact if they need help, what is the
licensing around it, like what can they
do with it, uh what should they expect
from it, all that kind of stuff. And we
I think got away from that too much. And
I'm now seeing it again where like most
tools, most IDs, they're going to if
they create a project, they're going to
build you empty files for all of this
stuff that you should be filling out. So
like the simplest thing is is when you
next create your, you know, Java project
out of the STS tool, look at the stuff
that's there and like fill in the
blanks. Don't cuz it is mindboggling
when you've got something that doesn't
have documentation but you've got a
readme file that basically says give
information for this application. This
is what it should look like. These are
the pieces of information. Like it walks
you through it. It shouldn't take any
time at all and then it doesn't exist.
Uh I'm not even going to let you talk
this time because we've we're starting
to run out of time and I know we can
keep going. So the rest of you guys get
to listen. If you come back, check us
out on the YouTube channel. You'll get
to hear more from Michael. I'm sure he's
chomping at the bit to give you some
bonus material. But we are running out
of time. So we're going to go ahead and
do our obligatory. Send us an email at
[email protected].
Let us know what you think, where we
you'd like to see us go. If you have
questions, I had a great question the
other day that came through uh social
media or something like that. really
interesting uh topic that I think we're
going to have to look at at some point
and figure out how to switch some of
these uh our point of view I guess
around a little bit and um these things
are what make us help you better. They
they make us a better tool for you. So
definitely send us your information,
your your questions, your your feedback.
Uh you check us out on developer.com.
You can leave feedback anywhere there.
You can leave it wherever you wherever
the fine stores that you find podcast
out on the developer channel on YouTube
out in X we are at developer I think
there's a Facebook page out there that's
the developer Facebook book page I
forget all the places but we're there
all the things as they say as always I
appreciate the time that you've given us
and we're going to give you some back so
go out there and have yourself a great
day a great week and we will talk to you
next time.
So, I teased it. Time for the big bonus
material. Where do you want? Um, let me
read the next. I'll read the last bit
and then I'm going to dive into that.
That gives you just a little bit more to
think about. Uh, the last thing was just
called to action. Encourage listeners to
audit their own codebase and adopt one
improvement this week. Wow, that sounds
like something we did for a season or
two. Plug tools, resources, style
guides, formatterers, llinter docs. The
uh, tie back to the developer brand.
Building better developers means
learning to build better code bases, not
just better features. That's a nice
little tagline. Uh, extra add-ons. Guest
angle. Invite a senior architect to
share war stories about ugly versus
beautiful projects. Check. We did that.
Mini challenge encourage listeners to
pick a file, run it through a llinter,
and compare before and after. That's a
neat little challenge. All right, your
turn. Where are you going to add your
value first?
>> All right, so since we ran out of time,
the one I'm going to tackle first is the
automation. Automate enforcement with
pre-commit hooks, CI/CD and integration.
You know, we have talked about
automation, automation, automation,
automate all the time. This is a key
piece to saving your sanity when dealing
with coding standards. If you have any
type of code repository, also check for
llinters. You could automate all these
things within your continuous
integration, your pipeline. do it early,
define it, and then tweak it as needed.
But really, if you define it and stick
with it at the beginning, you have ba
basically set yourself up that everyone
has to do it and no one can kind of
slide through the uh the cracks.
Following that, it is also good to
define testing standards within your
source guide because if you also say
that for every piece of code you write,
you need a certain amount of tests,
tests can also help you enforce your
code integrity as well as your coding
standards. If you're not following your
standards, chances are your tests are
going to be failing or your tests are
going to start looking very clunky and
weird. And if that is the case, then you
know that you're not following your
standards correctly.
>> I think I'll just briefly follow up on
that because I think that is a um
very often there's like people have
their unit test and there's just things
this do and they just like okay yeah
we're going to add some tests to it if
they if they're good enough to add
tests. But if you divi find within that
like certain things that you want out of
your test for example that you need to
have a unit test that verifies every
possible outcome of your of your
function or method you know success if
there's multiple failure codes and
things like that. If you include with it
things like it has to be a matching
failure code. There's some things like
that that you can do that will enforce
your standards from the from the get-go.
And it is, as Michael said, it is so
much easier to do that from the start
and just make that a part of it. Yes, it
it can be a pain. And when you want to
eject it and say, "Nope, it's it's taken
too much time later on." You're like,
"Ah, we could have saved time, but
you're better off not falling into that
trap and instead doing it right from the
start." And if you do have to somehow
you scramble or whatever, fine. There's
a little bit of pieces you didn't get
done, but at least you got most of it
done. And I guarantee you, you will
thank yourself. and we will thank you if
you give us any kind of feedback because
we love that kind of stuff. Uh but for
now, we're going to give you some time
back and we're going to let you get back
to your day. So, thank you so much for
hanging out. We're not done yet. We got
another episode coming up soon as you
click on our stuff and depending on
where it is may already be out there. We
may be way ahead of you, but if not, you
may just like take a nice little deep
breath, relax, and we'll be back soon.
No worries. Have a great day everybody.
[Music]
Transcript Segments
1.35

[Music]

27.199

Go.

28.88

Recording in progress and we are good.

33.36

May I have to look. This thing's like a

35.12

little bit bright in my eyes. I'm trying

37.28

to if I want to do this or if I want to

38.96

be like

40.32

Let's see.

44.32

I don't know if this is going to be any

45.6

better.

47.92

Um, see if we crank it down a tad.

52.239

Yeah, you're kind of deal with what I'm

53.76

doing. I had to turn a lamp on because I

55.28

got a shadow on one side.

57.52

>> Yeah, that's sort of where I'm at is

59.039

I've got like

65.519

me. Okay,

67.92

I'll get back here a little bit and

70.64

let's see. So, went and dug through uh

73.6

our free Slack thing has got like our

76.32

big old posts disappeared so I had to go

78.799

back but I found it found where the

80.479

episodes were and all that kind of

81.68

stuff. We are doing coding standards

84.479

understanding their importance in

86

software development and I decided to go

88.08

back to chat GPT this time just mostly

90.159

because I decided to go back to chat

92.159

GPT. So,

96.159

um I guess we're just going to dive in.

98

We'll just like take off with this

99.84

sucker. And so, we'll do our little ths.

103.04

Uno.

104.56

Hello and welcome back. We are

106.799

continuing our season. We're getting

108.479

near the end, but we are still

110.079

continuing forward and we are talking

112.479

about couple seasons back we went

114.64

through a lot of u goals and and

117.04

suggestions for developers and now we're

118.799

doing it with AI. We're throwing it out

120.88

to chatbt asking it what it thinks and

123.2

we're having some pretty good

124.159

conversations along the way. Who are we?

127.28

Well, we are the developer podcast. We

129.679

are building better developers is also

131.44

known as I happen to be Rob Broadhead,

134.16

one of the founders of developer. Also

137.2

founder of RB Consulting where we are

140.879

we are a organization that helps you do

144.319

technology better. Um, our goal is to

148.16

step in, explain, help you explain what

151.36

your business is, make sure we go

152.64

through your processes, things of that

154.239

nature, and then we're going to help you

156.8

find a, you know, craft a road map

158.8

basically is find a way to take you from

160.8

where you are to where you want to be.

162.72

And we're going to use technology to get

164.16

there because once you have your

166.08

processes defined and nailed down, then

168.8

you can do things like simplify,

170.959

automate, innovate, integrate. You can

173.44

do all these things that allow you to

174.8

change those processes around in a way

177.12

that they become uh faster to, you know,

179.519

faster to get done, more efficient, and

181.519

then of course that allows you more time

183.04

to work on your business and also make

185.84

your customers very happy, which makes

188.159

everybody happy. Good thing, bad thing.

191.519

Uh good thing is is I've got a new, for

193.68

those who haven't seen it, I've got a

194.8

new little mic that I'm testing out. The

197.599

bad thing is is that my setting that my

200.08

setup that I'm working on as a uh mobile

203.04

person and being able to just do this

204.72

anywhere, haven't completely got it

206.8

nailed down yet because Zoom has some

208.879

stuff that it doesn't like to do, which

210.48

is one of the things we use for our

212.08

recording. And uh I'm going to have to

214.239

work on that and figure out or I may

216.08

just have to load some crap onto my

217.599

phone so that I can be very uh phone

220.4

ccentric. uh but someone who is not

223.36

phone ccentric although he is out in the

225.04

middle of nowhere doing this. Michael go

227.28

ahead and introduce yourself.

229.04

>> Hey everyone, my name is Michael

230.319

Malashsh. I'm one of the co-founders of

231.599

Building Better Developers, also known

233.04

as Developer. I'm also the owner and

235.28

founder of Envision QA where we help

237.36

businesses run better by making sure

239.68

that their software works the way it's

241.76

supposed to. Whether you're managing

243.599

customers, selling online, you know,

246

running a clinic, we make sure that your

248.08

software is reliable. Uh it runs

250.08

efficiently and is easy to use. We do

253.36

that by helping you um you know, improve

256.72

your customer experience, uh more

259.199

focused on growth and remove those

261.12

headaches that might be in your

262.16

software. And we do that by starting by

264.32

getting to know your business. We kind

266.32

of get in the trenches with you. We

268.88

spend time really getting invested,

271.04

understanding your business,

272.56

understanding your processes, and try to

274.639

figure out what your goal is. What is

276.32

your why? What is it that you're trying

277.84

to do? And then from there, we recommend

280.24

the right solution, whether it's

281.6

building a custom tool, fixing what's

283.919

broken, or automating your testing. End

286.72

of the day, we help you prepare for a

288.8

smoother launch or better uh improvement

291.28

with your customers. Ultimately, our

293.759

goal is to take care of the tech behind

295.44

the scenes so you can focus on your

297.04

business and not worry about your

298.639

software. Let the software do its thing.

301.04

You take care and focus on your business

302.8

and making money and making your

304.479

customers happy. If you want to learn

306.32

more, check us out at envisionqa.com.

309.36

Good thing, bad thing. So, we are

311.44

recording this today on September 4th,

314.24

and today is the launch of Hollow Night

316.56

2, Silk Road. And if you've been

319.36

watching the news, it launched at 10:00

321.36

today and it pretty much took down every

323.28

single game shop out there. So, I have

326.4

not been able to download it yet because

328.16

the stores are unreliable. So, that's

330.24

the bad thing. The good thing is once it

332.639

is reliable and I can get the software,

335.039

I'm going to be able to play some new

336.56

Hollow Knight 2 Silk Road hopefully

338.479

tonight.

340.24

Well, good. I am not going to be playing

342.639

that because I didn't even play Hollow

345.199

Night one. So, that's one of those

346.24

things. I'm behind the times, but I'm

349.039

not behind the times on this topic. So,

351.84

this time around, we're going to talk

352.96

about coding. The original topic's title

355.52

was coding standards, understanding

358

their importance in software

359.759

development. And we went back to chat

362

GPT this time. This is actually chat

363.84

GPT5 uh that we're working on. I think

366.319

we early on we had a couple that were

368

4.5. We're now doing a little playing

370.16

around with five, just seeing how AI

371.759

evolves. And uh this one starts out with

374.24

the episode flow. It's giving us a

376.56

little flow of it. Hook one to two

378.4

minutes. Start with a relatable story.

380.4

It loves to start with a relatable

382

story. Uh, imagine you inherit a

384.319

project, open the code, and every file

386.16

looks different. Indentation, naming,

388.08

even how errors are handled. How much

390.08

time would you waste just trying to

391.36

understand the style before you even get

393.039

to the logic? Connected to the audience.

396.16

Developers who want to grow their

397.36

careers must not only write good code,

398.8

but write code that's understandable and

400.8

maintainable. Before we even jump into

403.36

the next section, I want to I want to

405.36

say that I've actually found AI is

408.08

really useful in these kinds of

410

situations. If you sort of once you

411.919

spend a little bit of time looking at

414.08

the code, u I have found some ways that

416.639

you can you can get AI some of these

418.4

tools to say, hey, this is how I want it

421.28

to be structured. These are some of my

422.88

standards. And it can actually give you

425.12

a pretty good starting drop point on

428.319

becoming consistent because trust me,

430.88

you you don't want to leave the mess.

432.72

You want to clean the the code up that

434.4

you're touching. That's just bonus

436.16

material. Moving on. Defining coding

438

standards. Three to four minutes.

439.199

Explain what coding standards are. A set

440.88

of agreed upon conventions for style,

442.72

formatting, and structure. Examples:

444.72

naming conventions. Camel case versus

446.56

snake case. File organization.

448.72

commenting documentation pro p practices

452.16

and learning how to speak English

453.52

properly and error handling patterns.

457.12

Now I think the

460.319

these things can get like some people

462.16

can feel like this is a little too much

463.36

red tape. It's too much administrative

465.12

stuff. Things like that. There's there's

466.96

complaints because developers are like

468.4

darn it I gotta go make my code align

470.8

with whatever the standards are.

473.52

>> That's all fine and Danny. I know

474.879

everybody wants to be all creative and

476.479

do code their way, but when push comes

478.879

to shove and you're trying to look

479.919

through code and figure out what it's

481.759

doing, if there's not a consistency to

484.4

it, then it's going to be harder to

486.16

read. I like error handling patterns in

489.12

particular. That's like one that drives

491.84

me nuts when it's inconsistent and it

494.72

has c it causes problems like you would

497.039

not believe when you get into like

498.479

production and things like that. So if

500.4

you're the person that's like, "Oh, I'm

501.84

just going to like print something out

502.879

to the console versus somebody that's

504.479

using, you know, log forj or whatever

506.96

that version, whatever the main logger

509.44

is for your language or the person

511.84

that's always shoving it out to messages

513.519

that show up on your, you know, flow

515.44

through and then show up on the

516.64

interface or they get kicked back into

518.959

some database table and get logged

520.719

there." Actually, all of those things

523.279

are fine, but pick one. be consistent

526.8

because it is really difficult when one

529.519

section of code does one and another se

531.6

section of code does something else and

533.04

then they don't always sync up because

534.56

now they're doing it different ways and

537.2

then the and even the messaging

540.399

early early on when I was a developer

542.399

one of the things one of the couple of

543.839

the apps actually I worked with is they

545.44

had every single message laid out there

547.68

was like a clued file of some sort an

550.72

ini file or whatever it happened to be

552.64

whatever format it was and like every

554.24

single message in the system lived

556.64

there. A lot of times there's errors. So

558.56

you'd have an error code like a number

560

and then you'd have a message and a

561.519

number and a message. It seems a little

565.44

old school and stuff like that, but it

567.44

is actually really darn effective

569.04

because then it's like always use the

570.56

number. Always grab that thing. You can

572.48

use a lookup table in a database.

574.16

There's a lot of different things you

575.279

can do, but messaging and notifications

579.36

in particular, it is so critical to be

582.32

consistent. And it's even more so to do

585.279

the notifications and messaging that the

587.04

users see because if they're looking all

589.36

over the place and they're not seeing it

590.72

right and sometimes it shows up and

592.24

sticks around and sometimes you have to

593.519

hit okay and sometimes it disappears

595.36

after 3 seconds and sometimes it has an

597.2

alert noise and sometimes it doesn't.

599.44

People don't know what the heck's going

600.72

on and they're just going to say it's

602.48

broken. I think I saw something but I'm

604.8

not sure what I saw. They're going to

605.92

ignore it. They're not going to give you

607.2

useful feedback of it.

610.24

I'm going to step off of my soap box

612.72

now, but that I think is one of the

614.24

areas that we overlook way too often and

616.56

we need to make sure that we cover that

618.72

like in code reviews and things like

620.24

that. Michael, time for you to step up

622.32

on that soap box.

625.04

>> So, right off the bat, file

627.2

organization. It annoys me if and I want

631.6

go into an organization and they've got

633.279

code that is not organized because you

636.32

know most programming languages have

638.16

some type of file structure organization

641.839

that you need to follow and if you're

643.76

not following that having new developers

645.839

come onto a project can be extremely

647.76

difficult. The other problem is if you

649.839

don't have an agreed upon file

651.12

organization, if you have things like

653.92

containerization or things like that

655.68

where you have specific paths for

657.68

things, if you have your project one way

660.24

and someone else has it another way, if

662.24

you try to deploy to these containers,

664

you're going to have to do custom

665.519

configurations for where are the files

668

located, where are you deploying them,

669.92

you know, what is the path where a file

672.24

is, you know, is it source, you know, if

674.399

you're doing Java, you got simple Maven,

676.32

so you have standards that you have to

677.92

follow to build a project. If you have a

680.64

straight up just plain old Java

682.079

application, you don't necessarily have

684.079

a standard. You can do whatever you want

685.6

for package naming structures and things

687.519

like that. And that can be extremely

689.68

difficult if you aren't all in

691.839

agreement. The other thing is commenting

694.56

and documentation practices. So many

697.6

companies don't aren't really good at

700.32

commenting or documenting their code.

702

They either have it external to the code

704.079

or they have it a little bit in the code

706.48

but it's not wellmaintained. They may

708.24

have read me files. At the end of the

711.04

day, get used to writing documented

714.48

code. And by that I mean literally write

717.36

in plain English. Write your code in a

719.6

way that if you read the statement, you

721.839

should almost be able to read and know

723.839

what exactly your code is doing. It

725.92

doesn't have to be 100% pure English,

728.959

you know, because those could get long,

730.24

but you can abbreviate enough or camelc

732.48

case things enough that you can

734.16

understand what the code is doing just

736.56

by reading the code. And then you don't

738.72

need all these explicit or explicit uh

741.36

additional documentation or comments in

743.76

your code. But still, if you add

746.079

something that has a specific meaning

747.92

and it's not clear, document it. Add a

750.8

line comment. Six months from now,

752.16

you're not going to remember what that

753.519

is. And it's not like I know some people

757.2

struggle. So like well it's all this

758.56

complicated stuff that I'm doing. It's

760

like then break it down. So it should be

762.16

steps of like I do X and then I do Y and

764.48

then I do Z and then those can be

767.12

function call. So yeah maybe within

768.639

those old functions or those methods

770.399

you've got you know five or 10 lines of

772.48

code that do something. But it should be

774.48

like a nice unit of work and then you

777.12

can just describe what it is. You don't

778.48

have to get super detailed down to each

780.56

line, but as long as those groupings

782.56

have something, then you're off and

784.48

running and you should have something

785.6

that's going to be far more readable and

787.68

you will thank yourself in the future

789.36

along with everybody that touches your

791.279

code. So, moving along, why they matter.

794.079

Uh, we've already started on these a

795.519

little bit. Uh, it says spend 6 to8

797.92

minutes on this. Let's see how this

799.12

goes. Team communication standards are

800.8

like a shared language. Reduce cognitive

803.12

load. Developers don't have to decipher

805.2

stylistic quirks. Maintainability,

807.839

easier debugging and onboarding new team

809.92

members. Avoid tribal knowledge locked

812.16

in a single dev style. Quality and

814.959

consistency. Consistency improves

816.8

readability. Tools, llinters,

818.8

formatterers. Enforce quality

820.399

automatically. Professionalism and

822.48

growth. Employers expect clean,

824.16

consistent code. Following standards

826.56

makes you stand out as someone who

827.92

understands the bigger picture of

829.279

software engineering, not just coding.

832.16

I'm going to go right basically right to

834

that last one

835.92

because I think that's one of the things

837.36

is that as a coder and that's I see this

842.079

so often. There's so many projects I've

843.68

picked up that that's the that's the

846

problem is the person that did it or

847.76

maybe it's a couple people that did it.

849.68

Uh sometimes it's like a chain of people

851.279

that did it but they were all individual

853.44

developers. You can look at it and see

856.8

that it was written by different people.

859.36

I have been in situations where it's

860.959

like it was horrible. It was like it was

863.519

not only written by different people,

864.639

but they used completely different

866

libraries. They had a completely

867.36

different approach. And so you have this

869.12

big nasty bloated code that covers all

872

of these, you know, five different ways

873.76

people were doing things and you're

876.16

never really sure which works. It's

877.76

almost impossible to pull something out

879.44

because you're like, well, if I

880.48

eliminate that, I'm not sure what I

882.079

break and what I don't. And it just

884.72

becomes a complete nightmare.

887.199

Part of being a developer, of moving

889.76

into being a better developer, is being

891.6

able to do so in a a not sitting up in

894.48

your ivory tower approach is doing it in

896.48

a way that you are now much more a man

898.88

of the people or of that kind of thing.

900.639

It's you're part of the team that you're

902

saying, "Hey, we're going to do this

903.36

together and it's going to look like it

906.88

was done by a team or a single person."

909.12

And it's just like if you hear somebody

911.36

that you hear a band and everybody's

913.519

playing different songs and different

915.04

styles, it could be a jam session and it

917.92

could be really cool, but it's probably

919.44

not because even a jam session there's

922

still there is a there is standards

925.12

within that. You're not going to hear a

927.04

jam session that is like a waltz,

929.839

somebody rapping, somebody playing jazz,

932.24

somebody else doing hard rock, somebody

933.68

else doing soft rock. you know, there

935.839

will be different instruments and

936.959

they're doing their own little thing,

938.24

but there is some sort of cohesiveness

940.56

to us. That's the same thing we want. We

942.88

don't want to be just a bunch of random

944.8

people making noise. We want to actually

947.12

come together as a band, we'll call it,

949.04

or as a, you know, as a group and build

951.519

something that has that cohesive feel to

953.839

it. It is so so much easier to maintain

957.12

something like that. It is easier to

959.12

find bugs with something like that. It

961.04

is easier to scale something like that.

963.36

So that is where you become a

966.639

professional developer versus somebody

968.48

that can just write code is when you can

970.16

do it and do it within a a team aspect

973.199

and follow some of those standards

974.88

instead of just doing your own thing.

977.68

Once again, I'm just stepping on soap

979.44

boxes today. So I'm going to get back

980.639

off and let's see what your where do you

982.16

want to go with this one? Oh, my soap

985.12

box is going to be the uh combination of

988.16

the tools and clean and consistent code

991.12

because one of the biggest problems I

993.199

have in almost any software shop I work

996.48

in is when you hire on new people or you

999.36

combine teams or your teams grow from

1001.36

one or two people. If you are not

1003.839

enforcing llinters and formatterers and

1006.8

having good you know source repositories

1010

and you are essentially managing how you

1012.88

want your code committed, how you want

1014.56

it formatted. If you do not use these

1017.279

llinters and formatterers and everyone

1019.839

has a different IDE and they're writing

1021.92

code however they want. When you go to

1024

commit to your code repository, it's

1026.959

going to tell you that every single line

1028.4

in the file has changed when you change

1030.72

one line. And it gets increasingly

1034.72

difficult over time to manage code

1037.36

review know what the hell is really

1039.199

going on with the code per revision

1042.16

really if you are not using a llinter

1044.72

today start Google has a whole library

1048.72

out there for just about every IDE it's

1051.36

a good one to just start with um because

1053.84

if you go with that one regardless if

1056

you got visual code intelligj

1058.72

um you know python whatever They have a

1062.08

llinter for everything and it works with

1063.919

just about every single IDE on the

1065.679

market. So you can pretty much say,

1067.039

"Hey, go if we're going to stick with

1069.679

Google, go grab the one for your

1071.039

language, install it in your tool and

1073.76

stick with it."

1075.84

Even if you say are using Java and you

1078.16

have like Eclipse and Intelligj and

1079.84

Visual Code, even if you use the default

1082.08

liners that come with those idees, each

1084.4

one could be slightly different causing

1086.72

problems. So just pick one, pick a

1090.08

particular format and apply it to

1091.84

everything. So don't rely on the

1093.6

individual tools. And then lastly, just

1096.32

make sure you document this in a wiki or

1099.44

you know your basically your uh coding

1103.44

standards so that everyone is on the

1105.36

same page and when you bring new people

1106.799

on, make sure that that is one of the

1108.96

first things you do when you onboard

1110.559

them.

1112.4

I will just follow up on that because I

1114

I did not mention this before, but I

1116

think it it very much dubtales what you

1118.4

said is the whole idea of when you

1121.679

commit stuff in and it does a

1123.12

comparison, it's going to say

1124.96

everything's changed. What's worse is

1127.12

when you're having to actually merge

1128.72

stuff because one, you're not going to

1131.039

see the changes, but more importantly,

1132.4

if you don't have a standard style and

1135.679

approach, then you're not it's it is

1138

that much harder to merge code because

1139.52

you're looking at stuff, you're going,

1140.48

"Well, I I'm not sure if this works. I'm

1142.48

not sure if this fits here and that fits

1144.559

there." And particularly then if you

1146.64

start to merge code that is different

1148.48

styles, you can have all sorts of issues

1151.36

with it. And I have I'm just speaking

1153.52

from experience. I have cussed at many a

1156.32

person sometimes myself even in doing

1158.72

some of these things where it's like

1159.84

okay we've got to like let's get it

1161.84

straight and using things like llinters

1164.4

and that are static code analysis those

1167.44

tools are worth their weight in gold to

1170.64

help make sure that you get that stuff

1172.32

in place and just and you spend the time

1175.6

set up the hooks to make sure that when

1177.6

people are committing that those things

1179.2

are going through there code reviews

1181.12

that kind of stuff make sure that those

1182.88

things are happening it will make a

1184.72

difference and you will thank yourself.

1187.6

Uh common obje objections and

1189.36

counterpoints 3 to four minutes on this

1191.039

one. Uh standards killed creativity.

1193.52

Creativity should go into solving

1194.88

problems not inventing new brace styles.

1197.52

Uh it slows us down initially maybe but

1200.08

in the long run it saves time for the

1201.919

whole team. Every project is different.

1204.32

Yes, but standards should evolve with

1206.16

context. Think of them as living

1208.16

guidelines.

1210.24

um

1211.84

having written in the last year or two

1214.88

numerous standards and guideline

1217.039

documents um and actually a lot of times

1219.44

they different organization different

1221.44

team sizes and stuff like that but there

1223.039

is definitely a a common thread through

1225.36

them and one of the things that is I

1227.2

think that we haven't touched on yet is

1229.84

that uh standards can help us write

1232.96

better code that can help us write stuff

1234.96

that is more efficient that is easier to

1237.6

tune that takes advantage of uh the

1240.64

language, the environment and things

1242.64

like that. If we stick to these

1245.28

standards, it not only makes our code

1247.52

tighter, but then it allows us to it it

1250.64

has us work within a a structure that

1253.12

then other people have a better idea of

1255.52

what to expect from code they're not

1257.28

even looking at. There's certain things

1259.2

that you're going to expect. For

1260.72

example, an API. If every endpoint on

1263.36

the API is written by a different

1265.679

developer in a different way, then

1266.799

you're going to get all kinds of

1267.919

weirdness. You're going to get some that

1269.679

want JSON and some that don't and some

1271.2

want XML and some don't and some kick

1272.96

out an error code and some don't and

1274.64

some have six different messages and one

1276.4

has it all in one big text that you have

1277.84

to parse.

1279.6

These things are I'm I'm I'm taking it

1282.559

to the extreme a little in that example.

1284.4

However,

1286.08

it's not that different from what we're

1287.6

dealing with. I I have worked in now

1290.64

last few years in particular several

1292.559

projects where we have not enforced

1295.84

stuff enough early on and that we've

1297.76

brought things in. We've merged some

1299.2

stuff. If you start bringing AI into the

1301.28

picture, it's not going to be standard

1303.44

compliant 99% of the time. And then what

1306.559

ends up happening is you have to like

1308.08

look at stuff and goes,

1310.48

"What the hell is this? What why is this

1313.2

done this right? And then you have to go

1314.64

clean it up and you have to say, "Okay,

1316.08

let's go make it look like this other

1317.6

stuff." Uh you will also run into all

1319.84

kinds of problems if you're not doing

1321.2

this. If you're in one of these uh

1323.84

evolving environments, which is almost

1325.52

everybody now cuz you may have Java that

1327.919

is now, you know, it's not standard. Uh

1330.08

you're doing something that's been, you

1331.6

know, was 18 versions back and it's like

1333.679

no, nobody should do that anymore. Uh

1335.679

Python is like that. They're constantly

1337.12

evolving their stuff. React, like all of

1339.84

these things. Ruby, they've got all

1341.679

these libraries and all these tools and

1343.52

you're going to end up in your own

1344.96

little version matching hell if you're

1348.08

not paying attention and making sure

1349.52

that the standards are also being

1351.679

updated and work with whatever your your

1354.32

tool set and environment is. Thoughts on

1356.72

this one?

1358.48

>> So, I'm going to go with every project

1360.4

is different. Yes, but standards should

1362.24

evolve with content. So I have talked

1365.44

about kitchen sinks all over the place

1367.6

and have talked about you even mentioned

1370.08

you know you need to make sure you

1371.52

refactor you refine your code break out

1374

those large methods you know if every

1376.08

project is different yes however

1379.84

even if you have different languages if

1381.84

you are writing something with specific

1384.24

functionality and you objectify it

1386.72

correctly be it a like a message Q or a

1389.84

database your services layers you have

1392.72

different layers to software, different

1394.159

ways of doing things. If you define your

1396.08

standards correctly and you break out

1397.679

your files and the individual uh

1400.96

implementations of everything correctly,

1404

then you should actually have a code

1406.24

library that you can pull from for all

1408

your projects. Everything should be

1410.159

standardized across the board. So like

1412.4

one project talks to my SQL. Well, you

1416.4

could should be able to take that one

1418.08

piece of code and put it into another.

1420.08

you should not have to duplicate. Or

1423.2

better yet, you should be able to put

1424.72

that into a uh package and include that

1427.76

package into your next project and then

1429.6

you essentially have your shared library

1431.76

that's used in multiple places.

1433.76

Sometimes that's good, sometimes that's

1435.36

bad because you could have extensions of

1437.44

that, but you should be extending the

1439.76

code, not modifying the original code.

1441.84

If the original piece works, extend it

1444

if you need additional functionality.

1445.44

That way, you always have your core

1446.88

component. And then with that, you know,

1449.2

it it slows us down.

1451.76

It doesn't. At the beginning, it does

1453.679

because you got to get everyone on the

1455.2

same page. But very quickly, you're

1457.12

going to find that defining standards

1460.559

saves the day because 6 months from now,

1463.76

if you guys are all on the same page,

1466.159

everything is being coded the exact way.

1468.32

When you come in to another an old

1470.799

project to fix something, you should

1472.48

know where to go. You should not spend a

1474.24

whole lot of time hunting and pecking.

1476.32

What is a spaghetti code? Because you

1478.24

followed your standards.

1482.48

>> I have nothing to contribute on that

1484.159

one. We're gonna continue on uh

1486.4

partially from time and stuff like that

1488.159

because this one actually gets into some

1489.52

I'm going to it's a funnel area. How to

1492

implement standard 6 to 8 minutes.

1494.24

>> Uh it says start small. Pick a winter

1496.24

formatter. We've beat this to death. Uh

1498.799

adopt a widely accepted standard first

1500.799

like PEP 8 for Python, PSR for PHP,

1503.279

Google Java style. uh automate

1505.36

enforcement with pre-commit hooks, CI/CD

1507.6

integration as we've mentioned, review

1509.039

and code reviews, encourage don't

1510.799

police, we had episodes on that one. Uh

1513.679

document standards in a contributing MD

1515.919

file.

1517.52

As I'm going through this and looking at

1518.96

these now, one uh the standards I was

1521.2

talking about that I've done every

1523.12

single time I started with whatever a

1525.76

industry standard. So I've done several

1527.52

Python standards and I went right to

1528.88

Pepe. Uh actually use Google standards

1531.52

for several things. I've used Google.

1533.2

They've got stuff for Java, for CSS, for

1535.6

HTML, for PHP. I think I can't remember

1538.64

where all I got them, but all of those

1541.039

are out there and they really give you a

1543.279

good start and it's you should be doing

1545.12

it anyways. That's part of being a

1546.64

better developer is doing the stuff that

1549.039

is industry standard is the industry

1551.12

norms. If you're a doctor and you're

1553.52

following industry, you know, standards,

1555.2

you're probably doing pretty good. If

1556.4

you're just out there doing crazy stuff,

1558.159

you're probably killing people or

1559.36

something like that that you shouldn't.

1560.559

We're not likely to do it to that level.

1562.4

But those are things to think about.

1564.48

What I'm reminded in all this is back in

1567.6

the day uh many many many many years ago

1570.559

when there was this thing that everybody

1572.159

was a big part of in some way, form or

1574.08

fashion that was called sharewware. And

1576

there were all of these sites where you

1577.52

could go download software and do all

1579.36

this stuff. And a lot of these sites had

1583.6

standards for what you needed to include

1586.24

with your product if you were going to

1588

post it on their site. If you go like

1589.6

America Online just died not too long

1591.52

ago. They were one that did that. They

1593.76

had um and I can't remember what it was,

1596.08

but it was things like you had to have a

1597.44

read me. You had to have some sort of

1599.6

like disclaimer. You had to have an

1601.279

ownership thing. You had to have like

1602.96

all these little things. And all these

1604.4

documents

1606.24

felt like um you know red tape or

1609.279

something like that. But they are very

1610.799

they're very good about allowing

1613.36

somebody that gets this thing that

1615.2

downloads this thing to be able to

1616.559

understand where it came from, who to

1618.559

contact if they need help, what is the

1620.4

licensing around it, like what can they

1622

do with it, uh what should they expect

1624.159

from it, all that kind of stuff. And we

1627.679

I think got away from that too much. And

1629.6

I'm now seeing it again where like most

1632

tools, most IDs, they're going to if

1633.84

they create a project, they're going to

1635.36

build you empty files for all of this

1638.159

stuff that you should be filling out. So

1640

like the simplest thing is is when you

1641.52

next create your, you know, Java project

1644.559

out of the STS tool, look at the stuff

1647.12

that's there and like fill in the

1648.64

blanks. Don't cuz it is mindboggling

1651.679

when you've got something that doesn't

1653.36

have documentation but you've got a

1654.72

readme file that basically says give

1657.12

information for this application. This

1659.52

is what it should look like. These are

1661.36

the pieces of information. Like it walks

1663.039

you through it. It shouldn't take any

1665.039

time at all and then it doesn't exist.

1669.12

Uh I'm not even going to let you talk

1671.36

this time because we've we're starting

1672.799

to run out of time and I know we can

1675.279

keep going. So the rest of you guys get

1677.36

to listen. If you come back, check us

1679.279

out on the YouTube channel. You'll get

1681.12

to hear more from Michael. I'm sure he's

1683.2

chomping at the bit to give you some

1684.64

bonus material. But we are running out

1687.679

of time. So we're going to go ahead and

1689.2

do our obligatory. Send us an email at

1693.12

Let us know what you think, where we

1694.72

you'd like to see us go. If you have

1696.88

questions, I had a great question the

1698.799

other day that came through uh social

1701.919

media or something like that. really

1704.32

interesting uh topic that I think we're

1706

going to have to look at at some point

1707.279

and figure out how to switch some of

1709.52

these uh our point of view I guess

1711.84

around a little bit and um these things

1715.44

are what make us help you better. They

1717.84

they make us a better tool for you. So

1720.08

definitely send us your information,

1722.32

your your questions, your your feedback.

1724.96

Uh you check us out on developer.com.

1727.36

You can leave feedback anywhere there.

1728.72

You can leave it wherever you wherever

1730.72

the fine stores that you find podcast

1733.12

out on the developer channel on YouTube

1735.679

out in X we are at developer I think

1738.72

there's a Facebook page out there that's

1740.24

the developer Facebook book page I

1742.64

forget all the places but we're there

1744.799

all the things as they say as always I

1747.919

appreciate the time that you've given us

1749.44

and we're going to give you some back so

1750.88

go out there and have yourself a great

1752.08

day a great week and we will talk to you

1755.44

next time.

1757.52

So, I teased it. Time for the big bonus

1760.32

material. Where do you want? Um, let me

1762.32

read the next. I'll read the last bit

1764.559

and then I'm going to dive into that.

1765.76

That gives you just a little bit more to

1767.6

think about. Uh, the last thing was just

1769.279

called to action. Encourage listeners to

1770.88

audit their own codebase and adopt one

1772.88

improvement this week. Wow, that sounds

1774.399

like something we did for a season or

1775.679

two. Plug tools, resources, style

1777.84

guides, formatterers, llinter docs. The

1780.24

uh, tie back to the developer brand.

1781.919

Building better developers means

1783.12

learning to build better code bases, not

1784.96

just better features. That's a nice

1786.32

little tagline. Uh, extra add-ons. Guest

1789.2

angle. Invite a senior architect to

1791.2

share war stories about ugly versus

1792.96

beautiful projects. Check. We did that.

1795.44

Mini challenge encourage listeners to

1797.039

pick a file, run it through a llinter,

1799.039

and compare before and after. That's a

1801.279

neat little challenge. All right, your

1804

turn. Where are you going to add your

1805.36

value first?

1806.96

>> All right, so since we ran out of time,

1809.44

the one I'm going to tackle first is the

1811.919

automation. Automate enforcement with

1814

pre-commit hooks, CI/CD and integration.

1816.799

You know, we have talked about

1817.919

automation, automation, automation,

1819.919

automate all the time. This is a key

1824.159

piece to saving your sanity when dealing

1827.919

with coding standards. If you have any

1830.96

type of code repository, also check for

1833.919

llinters. You could automate all these

1836.64

things within your continuous

1839.52

integration, your pipeline. do it early,

1843.52

define it, and then tweak it as needed.

1845.919

But really, if you define it and stick

1847.84

with it at the beginning, you have ba

1849.44

basically set yourself up that everyone

1851.44

has to do it and no one can kind of

1853.76

slide through the uh the cracks.

1856.88

Following that, it is also good to

1860

define testing standards within your

1862.88

source guide because if you also say

1865.2

that for every piece of code you write,

1867.52

you need a certain amount of tests,

1869.84

tests can also help you enforce your

1872.64

code integrity as well as your coding

1875.36

standards. If you're not following your

1877.279

standards, chances are your tests are

1878.96

going to be failing or your tests are

1880.559

going to start looking very clunky and

1882.32

weird. And if that is the case, then you

1884.64

know that you're not following your

1886.08

standards correctly.

1887.84

>> I think I'll just briefly follow up on

1889.919

that because I think that is a um

1893.52

very often there's like people have

1894.96

their unit test and there's just things

1896.399

this do and they just like okay yeah

1897.84

we're going to add some tests to it if

1899.12

they if they're good enough to add

1900.48

tests. But if you divi find within that

1903.679

like certain things that you want out of

1906

your test for example that you need to

1908.32

have a unit test that verifies every

1910.96

possible outcome of your of your

1913.84

function or method you know success if

1916.559

there's multiple failure codes and

1918.48

things like that. If you include with it

1920

things like it has to be a matching

1922

failure code. There's some things like

1923.44

that that you can do that will enforce

1927.519

your standards from the from the get-go.

1930.32

And it is, as Michael said, it is so

1932.48

much easier to do that from the start

1934.72

and just make that a part of it. Yes, it

1936.88

it can be a pain. And when you want to

1939.12

eject it and say, "Nope, it's it's taken

1941.36

too much time later on." You're like,

1942.72

"Ah, we could have saved time, but

1944.88

you're better off not falling into that

1947.519

trap and instead doing it right from the

1949.279

start." And if you do have to somehow

1951.519

you scramble or whatever, fine. There's

1953.12

a little bit of pieces you didn't get

1954.48

done, but at least you got most of it

1956

done. And I guarantee you, you will

1958.08

thank yourself. and we will thank you if

1961.36

you give us any kind of feedback because

1963.279

we love that kind of stuff. Uh but for

1966.399

now, we're going to give you some time

1968

back and we're going to let you get back

1969.76

to your day. So, thank you so much for

1971.519

hanging out. We're not done yet. We got

1973.679

another episode coming up soon as you

1976.799

click on our stuff and depending on

1978.159

where it is may already be out there. We

1979.84

may be way ahead of you, but if not, you

1982.159

may just like take a nice little deep

1984.799

breath, relax, and we'll be back soon.

1987.519

No worries. Have a great day everybody.

1991.95

[Music]