Press "Enter" to skip to content

Top 8 developer habits: Getting shit done – Fun Fun Function


a warning today’s video is going to be

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

Please follow and like us: