
about the importance of getting shit
done as a developer as a developer you
should care a lot about your craft but
you should care a little bit more about
the end product that you’re building a
viewer of fun fun function viremia put
it very succinctly caring more about the
artifact than the construct there are
two aspects that that we’re going to
talk about today and the first one is
don’t use quality as an excuse to
procrastinate however on the flip side
don’t use shipping as an excuse to do
things that are wrong or sloppy that is
what we are going to talk about today I
and npj and you are watching fun fun
function this episode is part of a
series on the top eight developer habits
chosen by you you can find these full
playlist here if you want to watch it
from the beginning I want to stress and
I mentioned this in the last episode but
it’s important so I want to stress it
again that this series these top eight
habits they are not a checklist I asked
people on Twitter to say what they
thought were critical habits who traits
for a programmer like not a 10x
programmer or senior super programming
just to function as a programmer and
this these top 10 or the candidates so
it’s not this is an aggregate of what
everybody said there’s so there’s no
actual person saying that oh you should
have these eight habits to be like in
order to function as a programmer that’s
not what it is this is just like the top
list of what people thought oh wow
I want this series to be about the
basics a lot of material out there is
poke
around finding these unicorn 10x
programmers how how can you become 10
times more effective than others like
the average developer and I think that
worldview is just like that’s a really
great way of becoming miserable to think
like that there are a lot of people out
there a lot of newspapers a lot of blog
articles and bla people that want not
necessarily one parade either by
accident or malice paint the word
average as a bad word if your average
then you’re bad you should be a top
performer that is such a horrible like I
think that way as well because that
means touted with this craft for many
many years but it’s just a horrible way
to think because if say you’re in the
roof with 100 people and you are average
that means that you are better than 50
of the people there getting to that
point probably took years and years and
years of work and as the person that is
ranked 50 in this room of developers or
whatever you can probably do a great
deal of good things with your skill set
being an average developer is fantastic
if you get to that level you you should
be really proud of yourself because
you’ve worked really hard to get to that
point and you can do a lot of good stuff
don’t compare yourself to others and
especially not like and some kind of
weird ideal unicorn 10x developer that
probably doesn’t even exist the only
person that you should be comparing
yourself to is your former self that is
the only person that you need to
consistently beat if you’re feeding your
former self you’re doing good anyway
that’s not at all what we were supposed
to talk about sorry for digressing so
why is it important to be focused on
getting shit done well at its essence
programming is not about coding it is
about helping people so when we think
about work we need to remember that work
is not some weird place
we go to get money because work is
essentially servitude and that’s
normally used in a negative sense the
actually the the definition if I look it
up is the state of being a slave or
completely subject to someone more
powerful and that sounds bad but the way
I view it it is about putting somebody
on a pedestal but for me it is I serve
you
you are my audience I put you on a
pedestal and I am now your servant you
could do it in a negative sense and like
that I that I am a slave to you because
I do have to put these things up every
week whenever I miss a video actually my
viewership plummets and I have these red
arrows in YouTube analytics for weeks
and weeks but you could also view it
very positively in the sense that I am
here and I have this big audience that
listens to me which allows me to if I
think think things through when
broadcast something that is that can be
valuable to the people watching I could
do a very very big amount of good
perhaps you don’t like the word
servitude but call it what you want but
I am referring to providing another
person with something that they need and
this is fundamental living in a society
my favorite song by Bob Dylan is gotta
serve somebody and I listen to that from
time to time to remind myself when I get
caught up in my my own needs and wants a
little bit too much and focusing a
little bit too much on myself to
remember that if I focus on the needs of
others that will fill a great need in me
because as a human being you feel good
if you help your fellow human it’s just
how we are wired we’re pack animals but
it’s still easy to forget it and if we
this is not just in the workplace it’s
everywhere like if you if you’re a
friend and you start instead of focusing
on being a good friend you start
focusing on what your friends are should
be doing for you then you kind of stop
being a good friend when you’re an
employee in many workplaces I’ve fallen
into the trap of starting to feel like a
victim or is often bad place I’ve gone
to in many workplaces instead of
remembering that I I was hired there to
do a job and fundamentally also to
improve the lives of the customers that
that use the product of the company or I
could restrain myself and focus on being
a good co-worker and helping my my
fellow employees my colleagues to grow
or I could focus on making my boss look
good like making them feel feel better
about themselves or making their job
easier and on the flip side as a manager
if you start to forget that you get
frustrated frustrated with because
you’re your subordinates are not giving
to you what you need like they are not
doing their job you and you start
forgetting that you are the manager you
are there to support them you are there
to make their jobs easier and facilitate
that the team works then you start
losing your way and this something just
happened to individuals it happens to
businesses as well sometimes the
business forgets that it came from a
position where it’s successful it’s a
working business because it at one point
provided customers with something that
they needed but sometimes a company uses
its way and start just focusing on the
business instead like oh we need to
survive as a business we need to make
money as the business we need to grow we
need to survive we need to oh my god
these these customers are doing the
wrong things they’re pirating saying
and oh my god we need to we need to sue
these customers so that they knew no
their place or oh my god this new
competitor it’s it’s providing this new
service that it’s much better than our
service we need to find a way to subvert
them and if that happens you as a
business if you lose sight of your core
your servitude like everything else will
just crumble because everything is based
on that I think you can even extrapolate
this to governments you can see when a
government stops being focused on the
needs of their citizens primarily and
start instead starts focusing on that
the government needs to be strong in
itself and we need to the government
needs to survive then everything just
turns to shit
becomes horrible to be a citizen and it
becomes poisonous to be be in the
government and very important to come
back to servitude
I think programming it’s not about
coding it’s about helping people but
that’s why it’s important to get shaped
done but what I mean specifically with
getting shit done that’s kind of it’s
kind of vague
so like viremia said it’s about caring
more about the artifact than the
construct and in practice I think that
there are two components to that and the
first one is don’t use quality as an
excuse to procrastinate procrastination
for programmers can come in many forms I
think that there’s even an episode about
that if they’re in somewhere it could be
writing an elaborate framework or a
library it could be a restructuring in
some interesting way you start doing
this if you’re into object-oriented
programming you you it’s a warning sign
if you see an abstract Factory in there
we’re print if you are into functional
programming you can do this as well but
then you start going into pro phungster
optics and stuff like that many
languages have elaborate static type
systems and that is also over using them
it’s also a fantastic way of
procrastinating thinking about types and
how to structure types on how to inherit
or compose them and thinking about how
oh how they’re named type systems are
particularly dangerous for me for it so
I just spent like a day thinking about
the name of one thing I’m not saying
that all framework writing or type
thinking is it’s procrastination but I’m
saying that you can use them to do
activities that feel like work they feel
like work but you’re not actually making
any progress towards the end product
you’re not actually making the life
directly better for the end user
you’re not actually fixing bugs you’re
not actually making software faster
you’re not actually adding any features
but it feels like you’re working it’s
kind of empty productivity calories but
why do we do that why – that occur why
do we procrastinate my theory is that we
procrastinate cook pro-pro crack
procrastinate
it’s a tricky word to say we
procrastinate because we don’t want to
do something we have a task at work and
we just don’t want to do it so you just
reach for me let’s just I could just
write a library instead or I just just
start renaming things because you start
so why don’t we want to do them and well
I think it’s mostly because we don’t
agree with something we feel like hah
well I’m tasked to do this thing but I
don’t really feel that it is the best
use of my time unusually when you feel
like that it’s because you’d really
don’t understand why somebody would want
you to do this why do they think that
this is the most important thing that
you could do
why does people up the chain of command
or whatever why why is the base how can
they think this is important but if you
think about it do you do you actually do
you actually think that the people that
task you with this or dumb or sinister
or lazy maybe they are but it’s more
likely that they have tried to do their
best with the information that they had
and from the position that they’re in
and the things that they are trying to
do so if you’re feeling unmotivated the
first thing that you should be doing is
asking why I’m trying to understand why
am I doing this task maybe go into your
boss and yeah can you please explain the
reasons for this to me like why are we
doing this I’m really I’m more
interested in the holistic perspective
behind this and your realities so that I
can do a better job and if you’re lucky
you’re that person can give you a good
description of what things are and that
will give you a better sense of
connectedness and make you feel better
about the task and sometimes it might
actually challenge that person to well I
haven’t really thought about that
perhaps hm hopefully that person could
go and then ask the person that gave
them the task and like figure out hash
out the unclarity of things and that
might result in the team getting a much
better understanding about how their
work fits into the the entire picture or
maybe that doesn’t work maybe the person
they says that what you should not
question these things you should just go
do it and then you have to go back to
your desk and think about why am I still
doing this if I don’t understand why am
I still doing this if if I can just go
somewhere else and work somewhere else
and then you maybe maybe that results in
you
making a call to a recruiter and
applying for another job and then you
ask yourself why well why I myself work
well I need to get money in before I
find my new job or maybe you can’t do
that because during a place where you
don’t have that kind of you’re not that
attractive on the job market so then you
think about why am i doing that well I’m
doing it to improve my skills and save
money for some online courses so that I
can improve and so that I can get a
better job than this when you’re feeling
unmotivated and we start pro calc pro
crafting Pro crust
my that word is so hard procrastinating
when she start doing the P word
then ask yourself why until you are
motivated
I didn’t episode on behold asking why
thing it’s called mission clarity you
should check that out if you’re into
that we’re also going to explore that a
bit more later in the series because one
of the habits is understanding context
which is basically that the second part
and the flipside of this thing is don’t
use shipping as an excuse to do things
that are wrong or sloppy so the first
part they’re building the wrong thing
let’s talk about that what do I mean by
that I’m talking about actually what we
talked about earlier where you’re tasked
with something your pressure to do
something it’s on the board and there’s
a deadline for it something that you
that is just wrong I remember one
project that I had at a workplace where
we were supposed to do this thing that I
not a product that was supposed to
behave in a certain way and it wasn’t
what’s not a bad idea per se it well
when I first heard about it sounded like
like a good idea but as we started
working with it we discovered two things
first of all it users didn’t really like
it once or any-any one we nor real users
when we started showing it to users they
yes they just didn’t like it just didn’t
make sense
it made a sense of an idea level but
when in practice you just started seeing
the flaws with him and secondly it was
horribly expensive to build it was was
just so technically complicated to get
it to mesh with the existing system it
was yes it was not one of those things
where you had to do a little hack it was
like you had to do this ludicrously
complicated thing that would take months
and months and months even though it was
one of the things that from the exterior
Oh worried us going to add this flag
users didn’t like it and it was really
expensive and as a team discovered this
we went back up in in the organization
and we tried asking what why are we
doing this this is not good for these
reasons and because of how the
organization works at the time we didn’t
really were not really able to get this
up the chain it was just the thing is
stuck in the organization is it still to
this day hard for me to verbalize how
this work the organization did doesn’t
work like that anymore much due to the
learnings of this project and how badly
it badly had went but the point is that
our organization built the wrong thing
we were good employees we shipped it but
it was the wrong thing and I regret to
this day that we didn’t put more
pressure back up in order to prevent
this mistake from being done and this
resulted in really bad things first of
all it made
the team feel powerless and we also lost
our sense of purpose because now
suddenly we were we didn’t think that
what we were doing was well connected to
what we were trying to achieve so we
couldn’t we couldn’t feel a purpose
because we didn’t believe in that
that our the thing that we were doing
was genuinely connected to what we were
trying to achieve so we lost our sense
of connectedness and we know from
research in in self-determination theory
that you often hear we’re talking about
that connectedness is extremely
important for energy and motivation a
team that doesn’t feel connected will
yes they will just perform horribly
because they are they are feeling very
bad and have low energy so how do you
prevent this well you come it comes back
to the fact that you need to ask why
when you need to push the envelope on
keeping your managers accountable and
also yourself accountable that you you
don’t just accept things that are said
you also need to spend time to
understand them in the story that I
talked about before we actually we
actually fail in this ah I don’t know if
we could have succeeded if we push
harder and we’re more firm in our belief
that this was the wrong thing to do or
if it was just impossible to do that but
in the in the end we had a post-mortem
on this and we talked about this like
this project did not fare well because
of these reasons and this is how we
should do it better next time so even if
you even if you don’t succeed in asking
why the first time perhaps you can then
use that failure as a way to drive the
why asking and the search of why and the
search of understanding and mission
clarity again you should watch that
episode so what were we talking about
don’t use shipping as an excuse to do
things that are
or sloppy let’s talk about being sloppy
what do I mean when I say being sloppy
more specifically I am referring to
taking on irresponsible amounts of tech
debt
all right so tech that I talked about
tech debt before in this episode you
might want to check that out if you are
interested in the subject detect that
some tech debt is fine to have thank you
in order to ship you have to sometimes
do some hacks and in order to get things
out door and you can fix those hacks
next week that’s fine the distinction is
taking on irresponsible amounts of
Tector for instance a hack that you make
to ship something it might be like you
you save an hour now because your ship
time is you need to ship this Friday and
we were at the end of our deadline and
we need to cut corners that is a hack so
it will cost you more time the line it’s
tacked up so you’re probably gonna have
to spend two hours next week to to
clicking it up but that’s fine because
next week you have allocated time to
clean things up and and you do it your
discipline you have that however an
irresponsible behavior would be to if
you’re in the same situation you you
figure out that oh I can do this
shortcut it will save it we say in our
work but it will it will probably take
ten hours to clean up because it’s very
messy and also next week we don’t really
have time to clean anything else so next
week it’s probably going to be deferred
perhaps next week but then I’m on
vacation so then somebody else will have
to clean that up
but I won’t did practice so they will
start late because they
pressured with some other thing and they
start building things on top of your
hack so there’s a hack on top of the
hack so then you have this thing of
exploding complexity that eventually
turns into this thing that would take
hundreds of hours to to untangle and
that is clearly it’s irresponsible but
it’d be somewhere in between those
things
the innocuous hack that was just too
like the productive programmer yeah this
is good enough where God we have to get
out the door and somewhere along that
gray area it turned into this
irresponsible programmer that is a
horrible detriment to their team because
they’re just duct taping things
everywhere that is a poisonous
programmer that is a program and that
takes a get shit done – I wouldn’t say
far it just they take it very way –
short term you have to take
responsibility for getting shit done
today and you have to get take
responsibility to maintain your
capability to get shit done next month
and be like next year as well why is
this so important because it will hurt
you it simply hurts your work
environment you are it’s kind of like
not doing the dishes or not cleaning up
your apartment eventually you will start
getting home and everything is just it’s
a pigsty
and you will start feeling horrible and
the people that live with you will start
resenting you and that’s the next part
the it will hurt your colleagues other
people are working in that same codebase
and if you if you make these
irresponsible trade-offs you you are
hurting their work environment as well
it will hurt your manager and this is
more sinister because at least your
colleagues have the opportunity to see
what you are doing because they
understand code and they understand
commit log but your manager or the
person or the project product owner that
person that is responsible for the
project they had no idea what you’re
doing they have no idea that you are
using the equivalent of expensive credit
card debt to pay for something on their
behalf they don’t know that what you are
doing is going to cost them dearly down
the line in in a very slow project that
that cannot move the way that they need
in order to to deliver on their their
mission apparently it will hurt the
organization that you work for the
organization will become slower and
slower up to a point where it might not
be able to keep up with its competitors
and it might eventually die as a
consequence so how do you avoid being
sloppy I mentioned this before but I
think it’s important to stress that it’s
your responsibility to prevent this
because only you see it if you have a
product owner or a customer or a manager
that is perhaps not from a tech
background perhaps they there have a
sales background or a marketing
background or something that they are
good at that yah but they are not quite
so experienced in how software software
process works they might not have yet
internalized the concept of tech debt
and if you’re in that situation it’s
kind of you need to make them aware it’s
absolutely crucial for for their well
being for their delivery needs it’s up
to you as a developer to help them to
not shoot themselves in the foot because
they cannot see the code they cannot see
tech that they are blind to that because
they’re not in the project and a code
base like you are there is a chance that
you might not be able to convince them
there are organizations like that they
really are unfortunately but you should
at least try and you should try to the
utmost of your ability and if you can
then well get theirs linked in but make
sure you don’t hit LinkedIn until you’ve
really tried so when it comes to these
things when it comes to deliver
me you should be focused on getting shit
done but you when you need to be focused
on getting shit done today and
maintaining your capability of getting
shit done next month so getting shit
done it has two parts like anyone can
get shit done today if you cut corners
but a good engineer thinks not only
about getting things done today they
also think about maintaining your
capability to get shit done tomorrow and
next month next quarter basically you
need to be a responsible adult with your
customer or product owner or manager you
need to be realistic and honest about
what it is that what what it is that you
can do you need to be clear that yeah we
can do this we just need to cut a little
corner or you can say it’s a valid thing
to say that if we do this we are cutting
so many corners in the system that it’s
absolutely not worth it we can do it but
it will be so bad for our delivery
capacity down the line that I really
recommend against it so in summary
getting shit done it’s about caring more
about the artifact than the construct
more specifically don’t use quality as
an excuse to procrastinate but on the
flip side
don’t use shipping as an excuse to do
things that are wrong or sloppy and in
order to pull it off I think that you
should constantly ask why and act
responsibly finally on the note of
getting shit done I would like to give
you two book tips one is the 7 Habits of
Highly Effective People this is a
classic I know a lot of you have already
read it and you’re probably sick of
hearing about it maybe but it is so good
this this book what it took me through
some really rough times
to be honest I’ve linked it in the
episode ascription this wants to the now
habit
it’s about basically overcoming
procrastination and it can be really
overwhelming and hard to deal with and
this book really helped me I recommend
it through much it also links in the
description and that is if you have just
watched an episode of fun fun function I
release these every Monday morning Oh
800 GMT if you don’t want to wait until
next Monday you can watch this episode
that the machine learning Neal Dwarfs
that Google’s have selected for your
brainwash I am mpj until next Monday morning thank you