Soft Skills Engineering - Episode 72: The Micromanaging CEO and The Only Developer
Episode Date: August 17, 2017Jamison and Dave answer these questions: My CEO is micromanaging the developers. What do I do? I’m about to take a job as the only developer at a company. How do I handle working without techn...ical coworkers?
Transcript
Discussion (0)
It takes more than great code to be a great engineer. This is Soft Skills Engineering, Episode 72. I'm your host, Dave Smith.
I'm your host, Jameson Dance.
Soft Skills Engineering is a weekly advice podcast for software developers and also large...
What is it? What's on your desk?
Large buildings.
I'm looking out the window and I see the Boston skyline.
Oh man, okay.
I can see the John Hancock building.
I've become a mad scientist.
setting up my little shrink the clock tower
yep i actually can see a clock tower from here oh it's beautiful because it's on your desk
no cool uh should we just dive into it let's do it all right i will read the first question
This is from a listener who requested we call them Mr. Big.
Hi, Mr. Big.
You're right, as a question asker.
We call you whatever you want.
Yeah, yeah, as long as it's appropriate.
Hey, guys, love your show.
I work at a pre-series A startup.
See, that's why we called them Mr. Big, as they requested, because they started with flattery.
Yeah.
All right.
I work at a pre-series A startup where it often feels as though there are tons of fires that need putting out regularly.
our ceo is brilliant technically and built the entire company by himself before being forced
into more ceo focused tasks we've now grown to about 15 engineers yet despite this he's
constantly micromanaging our tasks as well as requesting specific implementation details
often he's right but it's very difficult to push back what do you recommend stay the course and
deal with micromanaging quit exclamation mark or speak up pre-series a and 15 engineers what do
they paying you in just stock options that's a great question i didn't think about maybe there's
a bigger problem than micromanaging are you actually getting a paycheck and also we haven't
been paid but the ceo swears he will pay us maybe you should have the ceo he's paying us in
in-depth over-the-shoulder technical mentorship that's right
listen i'm so good at micromanaging it's like money it's like money it's basically money
oh man you can't pay for this stuff
i could give you money but i would be robbing you of the greater value you'd be getting by not taking
money i don't know so i have a hard time empathizing here i love micromanagers who
tell me how to do my job it like takes a huge load off my shoulders think think of all the
decisions you don't have to make yeah i said a while ago that sometimes i feel like a hand
or a brain with hands and in this job you're literally just hands you don't even need a brain
so your brain can do other stuff yeah you could like what oh okay yeah yeah you just like pull up
netflix on your second monitor and just watch it and then like kind of half listen to what
your ceo tells you to do and do it while he's over your shoulder yep this is a blessing of
guys mr big um hmm well i i think it sounds like you're at an inflection point in the growth of
this company which every successful company that's started by technical people probably hits
they all build it themselves and then the company grows and eventually it grows to the size where
they can no longer build it themselves but it's hard sometimes to recognize that when this is
what you've done for the life of the company the ceo i mean like he has micromanaged everything
because back before there were 15 people it wasn't micromanaging it was doing the work right
like that was the same thing yeah um so i i feel like this might have just kind of snuck up on him
suddenly or or the opposite of suddenly snuck up on him slowly yep uh and and it's kind of that like
frog boiling in the pot thing like he might not realize that oh this is bad now at the scale that
we're at because it used to be just what i had to do to get stuff done yep and no longer
yeah get your hand out of the cookie jar buddy
unboil that pot um what other food metaphors could we use ungrate that carrot
i think that's one of them definitely so i think my point in saying that is uh quitting feels
drastic to me because this doesn't feel like i mean every technical company i think has gone
through something like this and can get through it successfully so i don't see this as a fatal
flaw in the company um i mean it's possible some companies do the ones that don't make it
Some of them are killed by this, but I don't think it's insurmountable.
Yeah, usually it's not a micromanaging leadership team that kills your company.
Usually it's having no revenue.
So this is great.
Yeah.
It says here there are a ton of fires that need to be put out regularly, which tells me you've got customers.
So this is good.
No fires, no customers.
so it sounds to me like this company is on track and your ceo is having a hard time letting go
and knowing when and so someone needs to tell the ceo that it's time to hire a technical leader who
who can be trusted to run this team so that the ceo can focus on arguably much more important tasks
yeah i think i've seen this kind of behavior in really capable technical people who um it's likely
that a lot of the times when they dive into micromanage they actually do see things that
are like bad and wrong and they can fix them and correct them and they feel like that's
progress and they don't see the overall harm that it does even if they're right in that specific
instance and they save a little bit of time or debug an issue or whatever that diving in like
that over and over again i think costs your team more than those small um those small tweaks that
you're able to make by micromanaging yep and you might even feel like you're doing your team a
favor by insulating them from some of the quirky stuff that you are familiar with and that you
don't want to have to put them through the pain of becoming familiar with this maybe hacky code
oh like yeah like the ceo wrote the code so he's might be like oh i know how to fix this like
exactly step aside or or look in this file or whatever even more charitably it's like oh yeah
i did this hack uh i don't think you should spend two hours learning about the hack let me just
put the fix in real quick you know it's like he's doing them a favor
um i think sometimes this could be because people are more comfortable doing things they know how to
do already and in some ways it could be the ceo is avoiding doing more ceo things because
he's real good at technical stuff
and maybe he's less good at like presenting
to the board so
it could be an escape for him to
dive into the code so he's sitting at his desk
and he's like I have this powerpoint
presentation that I have to do that's full
of like money and
stupid stuff or
I could go fix this esoteric bug
that Mr. Big has been working on
I'm gonna go jump and I'm gonna go shoulder surf
with him and work on that it's like a hobby
yeah
like an addiction
yeah that's actually a better analogy kick it so that you can go negotiate with that investor who
wants to give you a lot of money but also take control of your company or whatever stressful
stuff is going on that day so it sounds like we are in agreement that this is bad and it needs to
change what what can mr big do to help affect this change i think there's two things first of all mr
big can just wait and do nothing because if the company is successful enough for long enough the
ceo will by necessity be taken away from the code and will have to deal with things like raising
that series a funding that he hasn't raised yet and i guarantee you that those activities will
take all of his time eventually yeah and are arguably more important than fixing that bug
yes yes so much more important um and number two is uh is show your ceo that your engineering team
is competent and capable and do that by solving problems before they even come to the ceo's
knowledge which you might be able to set up a process to where you get bug reports directly
or issues uh and then you can solve them and then tell the ceo what you did and he can be like oh
cool this team's taking care of it it's great it might actually be a relief for him yeah
so mr big says often he is right but it is very difficult to push back um so it sounds like i i
can't tell if push back means pushing back on those specific technical things that the ceo is
bringing up or pushing back on the idea of hey this isn't this isn't the thing you should be
doing right now oh i got the impression that it was the technical things because i'm guessing that
mr big hasn't mustered the courage to sit down with the ceo and say hey you're doing a terrible
job yeah that's don't say those words say different words um i i think you if you tell
the ceo like hey you need to do your job which is raising funding that might be a tough conversation
to to to have if you can instead couch it in terms of like this is what will help the engineering
team more it feels a little bit more like you're talking about things you're responsible for and
like who cares about all the ceo stuff you're doing i'm not i'm not trying to tell you your
job i'm trying to tell you how you can help our team better which feels a little bit different
you could even talk about the company's ability to scale and grow and meet the demanding uh the
growing demand for its services so like you could say look there's only one of you we have a growing
engineering team we have a growing customer base and you won't be able to scale to address all of
these fires and i know it's been normal for you to get involved at when we were at this smaller
scale but as we grow you simply won't be available so we have to develop a process whereby the
engineering team can be self-sufficient in resolving these fires without you yeah i that
feels like the straightforward way of doing it i think what i mean is if you're worried about
the ceo not taking that conversation well because to some extent you're telling him like hey you're
not doing your job well sure which for some people might not go over well um so instead you can say
like the engineering team will be better off make it less about him and more about the team that you
are on and that you help yeah okay i don't know it's it's kind of a subtle difference and it might
not matter yeah in the end on how grumpy yeah in the end the results should be the same which is
he should he should back off yeah i think you mentioned hiring technical leadership right did
you say that early on uh i don't know i can't remember that was a long time ago that was that
was like minutes ago minutes ago well i think you did and i think that might be one leverage point
to use to get the ceo to back off to to find someone that he trusts and and that can help
take a burden off his shoulders and yeah yeah that'll make your lives better too
then you can have someone who's more dedicated to micromanaging yeah exactly a full-time
micromanager more time yeah they'll be better yeah they won't be distracted by all this like
series a nonsense no but seriously there will come a time when your company needs a vp of
engineering or a cto and uh 15 engineers is starting to feel like that time so the good
news is if you hire someone from outside they will not be able to micromanage because they
don't have all the context that the ceo has having not written the system that's true
yeah it's perfect they may still be a micromanager they just won't be able to do it the same way
yeah all right have we answered the question i do have i actually do have one more question um
um so the question is all about the micromanaging ceo but it says here at the startup it often feels
as though there are a ton of fires that need to be put out regularly i don't quite see the
connection between the fires and the micromanaging unless maybe the fires are the thing that the ceo
is helping to micromanage you know maybe it's not like big architectural discussions maybe it's like
oh here's an issue from a customer i'm going to help you fix it yeah that seems like it to me
Maybe they do have some kind of process or workflow, and then the CEO just jumps in because he's been on a call with a customer.
He just parachutes in, and he's like, drop it all.
Work on this thing that I just got yelled at for.
Yeah, exactly.
And that could have a different solution, which is to put in place an issue triaging process that can scale and be highly available even when the CEO is not around.
For example, when he's off getting funding in Sand Creek.
Isn't that the name of the place in California?
Or Sand Hill?
I don't know.
Sand Hill?
I think it's Sand Hill.
Anyway.
Listen, I'm like a VC hillbilly.
I live in Podunk, middle of nowhere, which is by definition anywhere that isn't Silicon Valley.
So I don't know all these fancy words or companies.
Anyways, it could just be that you need that.
And I remember going through that process at my last company where the CEO would literally be, actually, sorry, CTO in this case, would be on phone calls with customers resolving issues.
um and you know he realized really quickly that this process won't scale that we need
a highly available rotation who can manage the intake of new issues coming from customers and
then who can manage the process to resolution reliably and consistently without depending on
its super heroics you know of one person swooping in so so that's almost more of a process thing
yeah uh then and then i'll hire a new person thing but that could be the root of this
micromanaging because he didn't say that the ceo like commandeers architectural discussions and
you know important design decisions and things like that he's talking in the context of putting
out fires so maybe that's all that needs to be solved and the micromanaging will go away
yeah fires are a powerful um a tractor especially if you built the system and know it well i've
worked at places where i built stuff and i moved on and then things explode and it's it's like
impossible for me not to jump in and try and help fix it partially because i know uh what's going on
more and partially because i feel some sense of responsibility and guilt like oh yeah that was me
and then i want to like atone for my mistakes do you also do you also feel like a sense of
curiosity like morbid curiosity like how did they get at the break like that yeah sometimes
yeah okay well question question answered yes 100 yes so good luck mr big
i think with our help you'll soon ascend to become mr gigantic mr xl yes cool do you want
to read our next question yeah sure this comes from an anonymous listener who says
i recently took the age-old soft skills engineering advice and i'm starting a new
job shortly in my new position i will be the sole developer among a group of non-software engineers
sorry when when they wrote sole developer i was thinking like soul music like
that's something else okay yes i am used to having other developers around to discuss and
work out designs with i have also used co-workers as a resource to learn from both discussing new
technologies and techniques with them and from reading and maintaining their code what suggestions
do you have for someone who does not have any other developer co-workers to find good mentors
and examples to learn from or work ideas with hmm hmm i don't know first of all we try not to get
too technical on this show but this question did use two spaces between sentences which is
technically incorrect so just a little hard skill tip for you why is that incorrect james use one
space uh or as dave suggested before the show tabs between sentences in my code why is it
technically in my sentences i use tabs yeah just configure your microsoft word to render the tabs
as spaces as one space and you'll be fine it's technically incorrect because i disagree with
it haven't you learned anything from all your technical discussions got it that's just a word
i use to add weight to my opinions technically technically makes it sound smarter that is
technically incorrect it does sound good it sounds strong yeah it does sounds technically
almost a fact it almost sounds like you know what you're talking about like almost
and i do you can tell by the words i use so what when should this listener do at this new job
i'm thinking get you've heard of rubber ducky debugging right yeah that's where you put like
a little rubber duck on your monitor and you explain your problems yeah to it and then yeah
the act of explaining brings clarity well yeah i just realized i'm being a really bad
podcast host because i'm like dave i get it you don't need to explain it
like oh you're not explaining it for me it's not for you james
this is called rubber ducky explaining anyway i'm technically a good host you're you're the
rubber ducky actually yeah anyway so instead of a rubber ducky get a bunch of cardboard cutouts
of prototypical developers and just put them around your desk and then all the feeling of
being surrounded by intelligent mentoring co-workers will come to you but you won't
have to be by them in real life wait a second are you suggesting that the act of putting cardboard
cutouts that they'll come alive in some fashion like like a toy story thing the cardboard cutouts
that you see in all these stores are actually alive when people aren't looking at them yes
only when you're not looking okay so if you ever come to work they can still comment on your pull
request though exactly what about if you did like a rubber ducky stand up you just had a circle of
ducks and you were in it and you're the scrum master you like yeah and you'd reach around and
like squeak each one to be like i finished all my stuff squeak not blocked yeah no blockers you
could take that pretty far so let's say that they've tried it and uh maybe they got the wrong
cutouts because it didn't work it didn't work okay then what do they do then have you ever been in
this position oh go ahead i was just saying now we go to plan b because obviously plan a was
going to succeed but something went slightly wrong yeah okay it was technically a good plan
i have never been in this situation i have never worked at a company where i was the only developer
yep never have how about you i haven't worked at a company full time i have been on projects where
i'm the only technical person though uh as a freelancer okay wait was this your plan b
nope nope oh i don't have a do you want to talk about it or i don't have a plan the plan b is
we're going to figure out what it is right now exactly so here's okay co-workers are great
it's good to have other people working in the code because you run into different perspectives
and you learn new things even just through explaining stuff to other people but um
you also have this unique opportunity where you get to figure out everything yourself
everything and most of the time that doesn't happen i think i i feel like it's more likely
that people work in teams take this and use it as an opportunity to learn i guess is is what i'm
trying to say there's a lot of value in collaboration but if you don't have that you
might be forced to step outside your comfort zone a little bit if you have not done like
sequel schema design before and you've always worked with people who are really good at that
the good news you get to get good at it now yep um and the way the way you get good at it is by
screwing it up yeah yeah i was gonna say stack overflow but
so that isn't really a specific tactic or a tip but it's more like recognize that there could be
some value in the situation even if it's different from other ones you've worked in
that that it all falls on you which is great because you are the most capable person to
accomplish any technical task and so you get the chance to develop a lot of new skills
without yeah like dave said without um people saving you from your own mistakes and and giving
you like shortcuts to learning stuff which means you might not learn it as much yep but what what
about connecting with other developers is there any way to do that even though they don't work
with you yeah yeah there are many ways uh community is a big thing community is probably my favorite
thing about being a software developer there is twitter as long as you um are good about it it can
be a great place to talk to other developers and learn things uh just don't yell at people on
twitter that makes it a bad place um i mean there's github and open source if you're worried
about not having people look at your code um just try and make a pull request to like
express or some popular project people will look at your code uh but you can also get the
same participation and feedback from other developers i mean yeah there's local user
groups or or distributed ones even there there are all kinds of chat rooms and and i don't know
online communities if there aren't um local groups where you live but these are all great for kind of
exposing you to new technologies and maybe i don't know giving a quick sanity check to some very
broad ideas they won't really help you no it's unlikely that someone from the community will
just like dive in and pair with you on some code or review a pull request for your company or
whatever i don't know that there's a great solution for that no you can still get access to other
developer brains through community yeah yeah i would suspect there are uh legal implications to
sharing your code with you know people outside your company
yeah you could find that out yeah the hardware trying have you ever um yeah have you ever met
with met someone or known anyone who has used a co-working space in this kind of scenario before
no so i know probably i can't think of anybody though i know of a few people i don't know them
personally but i know a few people who have used co-working spaces because they work from home
and so once a week or something they'll go use a co-working space to work from
and there are other developers who work there in that same space but they don't work for your
company and you can use that time to bounce ideas off one another and you know talk about
technologies and other stuff that's cool so it is kind of getting at what the listener is asking
where you can find people to work through ideas with yeah exactly because you're all kind of doing
it for each other instead of you just accosting someone at a meetup and saying like hey i have
this idea for a new single page application architecture come to the whiteboard and then
you scribble one of those crazy uh like mystery diagrams with all the boxes and arrows connecting
everything yeah yeah i've never really seen meetups work well for this i've seen i've probably
been engaged in a few conversations that they're like hey i want to bounce some ideas off you but
it's so hard to share enough context in that limited time you know and people are like i want
to go home i've been i've been here socializing for two hours and i'm exhausted excuse me i did
that yawn out speaking of exhausted what oh it says you're the sole developer among a group of
non-engineer non-software engineers is i mean will your team be able to grow ever will you be able to
hire more developers or is it just going to be you forever because this might just be a temporary
thing either you won't be on the team forever or or your team will only be you forever
um so it might just kind of solve itself by waiting that might be the second soft skills
engineering advice if the first one is quit your job and get a new one the second one is wait
and it will fix itself this problem will disappear in three months and be replaced with all new
problems yeah yeah oh boy that's the least helpful advice ever and yet it is the most helpful advice
yeah i guess it feels the least satisfying to deliver it doesn't make me feel like i'm
handing over wisdom
all right well i mean if you are working by yourself you can use however many spaces you
want between sentences good point one is going to be able to call you out or run a script to
switch it all or introduce a linter that checks for it in your comments yeah i would say don't
don't shortchange yourself this is a cool opportunity to get really deep on everything
you will be the one person who knows the whole system end to end and i know we we already talked
about this aspect but i mean this is going to stretch you in ways that it that you haven't
been stretched before where you whereas in the past you've probably been able to lean on someone
for that one little thing that you never quite understood that weird shell script that ran every
night and did something but you weren't quite clear on what you know that is gone you're it
and yeah i would expect this not to be a permanent state of affairs for you because eventually you're
going to need to learn and grow from others but i would say i take jameson's advice and and uh
relish this opportunity to really go deep on everything and i think that'd be great i think
you can still learn and grow from others at this time you just won't do it in the same way as if
you had co-workers yeah and maybe not the same frequency either yeah and even if you are on a
team um there are times where you might be the most senior person on the team of pretty junior
people and you you definitely learn things from junior people but you might not learn like expert
level architecture skills you might learn how to work better with people but i guess this situation
of uh not having a lot of other people in your code to give you the answers is not unique to to
being the only person on your team yep so figuring out the answers is a good skill to have yep
totally or or not even figuring them out that implies there are answers getting stuff done
without someone telling you this is the right way to do it yep that's that's a better way of saying
that absolutely totally agree all right did we answer it i think we did question has been
answered where can people go if they want to ask a question they can go to softskills.audio
our website i sound like the price is right guy i wish i did actually he's got a great voice
we have a link on the website where you can submit a question please submit your questions
we love reading them and we love answering them and it's also got a button to subscribe if you're
not subscribed already please subscribe in your favorite podcast app and if you're enjoying the
show please leave us a review or just tweet about it if you're not enjoying the show you can still
leave a review we discourage it though because we only want positive feedback here we welcome
all feedback if you have any feedback good or bad we'd love to hear it yep thanks very much
all right we'll catch you next week
