
watching fun fun function as some of you
might know I often record these episodes
on at last minute
on Sundays because I think I’m a
horrible person and sometimes that
results in me being hungover as I am
today so on a scale from one to five my
energy levels are as a result I mean
we’re just going to do something nice
and nice I’m just going to add some
questions on Twitter Julianna Gomez
asked in light of recent reddit thread
regarding junior developer erasing
entire database on first day when have
you messed up what happened and what did
okay so this post it’s it’s a little
story where a junior developer tells a
story about how he destroyed the
production database on the first day how
his job and I what happened was that he
was going through the set of
instructions for lo his local dev
environment and in those instructions
there were there’s a staff where he
should generate the some fake data you
run a script that generates fake data a
new local database however due to a
mix-up there’s there is the default sort
of is the production credentials and
you’re supposed to in the instructions
to replace those credentials with when
your local database but he didn’t and so
he ran like the test generation script
on the production database when I read
this and I’m saying as I from the
perspective of working in
ah that’s fortifier which is one of the
best software development houses in the
world I don’t claim to be the best
software developer in the world but I
have worked with the best with people
that do the best practices and I read
this I I was thinking of this person has
not done anything wrong at all the
however the company that set this up
certainly had like that this is a
completely messed up onboarding it
should absolutely not be possible to
take out the production database in in
this way that is just ludicrous and then
I continue reading and I see that this
is this is not the only thing that is
wrong in this company because the CTO
fired him over this and the CEO all of
us that he liked apparently legal would
have to be involved due to the severity
of the of the data loss white what like
even if he has just destroyed the
database they should just be able to
restore that from a back up because I
have backups right I mean there’s going
to be some orders lost during the
downtime but they should just be able to
restore this of course we’re just seeing
one part of the story here but I can’t
see how this is not the fault of the CTO
on the development organization like a
junior developer should absolutely not
be able to mess things up this easily
there should be backups in place you
should absolutely not have production
production credentials of any kind even
even hostname in the in the repository I
think that you should even view this as
a lesson that you should have you should
not have these manual steps in your in
your local development setup you should
have to have a script that sets things
up with the docker containers and
everything and what I’m saying here is
also basically what is sad in the
r-right
comments it’s that’s the consensus like
this is just this is not a very good CTO
and not a very healthy organization and
I’m you’re sorry that this person got
stuck with this horrible thing for their
first job I think that the mistake that
this person should learn from this it’s
not really really anything technical I
think that their mistake was not
researching the employer that they
started at enough because this is this
is just not very good this is horrible
but Juliana did not ask me for my
opinion on that Juliana asked me for
when I have messed up and what happened
and what did I learn I’ve done a couple
of interesting screw-ups in my day I’ve
forced pushed the central or posit or II
accidentally and I’ve accidentally sent
out these huge email things that filled
up everyone’s inbox but the the most
interesting mistake that I had was a
couple of years ago when I was involved
in this huge important project that was
it was a company initiative company-wide
initiative and everybody was very antsy
around it the feel it felt like a lot of
things were riding on it it was also
very late it was one of those projects
that had taken ages to a large degree
because it was it was so big on
everybody had an opinion about it and
there’s so many people involved and it
was just very tricky for everyone
involved to get out the door
my motivation levels were ABS they were
pretty low like not horrible but it was
it was taxing this project and it was
one evening when we were close to the
close to the launch of the project was
basically sword a sort of crunch mode
you could you could
and a few weeks prior uh I had I have
committed to speak at an event that was
held at the office
what was that javascript meetup
basically and people so people were
would arrive that evening and I had no
no speech prepared but that was really
no problem because I was done with all
my tasks related to the project like the
segment that I was responsible for I
felt very comfortable with them all the
big issues were closed and it was I felt
good about my my commitment to the
project actually I was I was ahead so I
I sat down and started writing the
script and started rehearsing the
rehearsing to talk instead and this was
a great event it was it was a great
event to be seen at from a recruiting
standpoint and we were encouraged to go
out and speak if if possible because
that’s how you recruit engineers but the
problem was that I was not really I
didn’t really understand how this looked
in when sealing context when everybody
else is behind and working to get
something out and I go away and do
something completely unrelated to the
project that everybody has stressed out
around especially in the product owner
that seems that makes me an asshole and
the PIO basically grabs me doesn’t
physically grab me
geeks don’t do that but he he took me
aside and he really ripped me a new one
it was it was brutal and there I it
turned into a big conflict and manager
was involved and during the coming weeks
I was I it’s always hard to tell how
close you are to getting fired with when
you don’t actually get fired but I think
I was pretty darn close there it was a
very infected period and I
it was it was rough if anyone over the
dark moments or of that period I grabbed
one of my the more senior senior
managers there it was like boss of the
entire business unit and I basically
asked him for the sagely advice on this
on this topic and he told me a story
where there was a there was a crunch
that was occurring in the company as
roughly roughly the same time and he he
was very frustrated that that crunch
crunch occurred partially because it
didn’t agree that there should have been
a crunch in the first place
that was that was bad but what he was
really disturbed about was that a crunch
had occurred when he was elsewhere like
he was in another country and it was not
possible for him to be there on site
because he the way he saw it when a team
does a crunch he like after they have
committed to doing the crunchy he didn’t
agree with the crunch and like studied
excellence should have been there but he
didn’t say that when the team was
committed to doing it because at that
point it was important to support the
team so when a team does a crunch you go
there you should go in and on the
weekend and sit there with the team even
if you as an upper-level manager can’t
do to help because you’ve long lost
your ability to code or or design or
whatever you are that’s the task of the
team but you sit there and you you just
put your two pounds of flesh there so to
speak by you sacrifice your time and you
stand with them you stand with the team
perhaps you go shopping for cinnamon
buns and make coffee for people alike as
that symbolic gesture showing that
I am here I’m standing here with you
that that was very important to them and
the lesson to be learned there is that
it’s important to be aware of of
contacts when working in a team you need
a certain peripheral vision at that time
I I wasn’t really paying much attention
to what was going on on the team I just
looked at the roadmap and I said oh
these I’m going to grab these tasks
reset these tasks and I’m going to make
those my goal that would be a good
working week then I’m going to do them
and then I’m done for the week that’s a
way I saw I saw projects at the time it
was kind of like my subconscious
philosophy that if I performed well like
my task then always good so with 20/20
hindsight I should have been a lot more
sensitive to the situation at hand I
should probably have canceled that
engagement completely or I should have
done it on my own my spare time normally
that kind of thing is perfectly fine to
do on working hours but given this
context it it was not okay instead I
should have just put myself with with
the team and find if there was anything
I could possibly have done to further
even if there wasn’t anything that I
could have done to help it would still
have been a very nice gesture for my
part to to offer and be there for other
members of my team and for the project
and that evening that screw up is
probably the symbol of one of the most
important lessons that I’ve learned as a
software developer and that is this
peripheral to a peripheral thinking it
is constant being context sensitive yeah
that’s
a lesson that I learned from a mistake
and that is it I’m going now going to go
back to being hungover I hope you
enjoyed this tired musing it’s fine
Sunday evening oh and I now true you
have just watched an episode on fun fun
function I release these every Monday
morning always hundred GMT you can
subscribe the hair or if you don’t want
to wait until next Monday you can check
out this episode which the Google
machine learning turtle has selected for
you
I am npj until next Monday morning thank you