Soft Skills Engineering - Episode 84: Shy Developers and Outsourced Architecture
Episode Date: November 23, 2017This week Jamison and Dave answer these questions: I work with a very shy and anxious remote developer. How do I work effectively with them? Our manager is outsourcing the core architecture of o...ur next products to an offshore team. How do I tell him I think this is a bad idea?
Transcript
Discussion (0)
It takes more than great recursive descent parsing skills to be a great engineer.
This is Soft Skills Engineering, Episode 84.
I'm your host, Dave Smith.
I'm your host, Jameson Dance.
Soft Skills Engineering is a weekly advice show for software developers about non-technical topics.
What motivated the recursive descent parsing thing?
I have no idea.
It just came to my mind.
It just takes more than that.
It does.
I mean, it's kind of a baseline, I guess.
Have you thought about all the times that recursive descent parsing failed you
in your quest to make your team work more effectively?
I realized I was always using recursive ascent parsers, which was totally wrong.
It just keeps adding more and more parentheses.
Well, maybe it'll work someday.
We just need bigger machines.
It's parentheses all the way up.
I think if we get a big enough machine, it'll work.
Would you like to read our first question today?
I would love to.
This is from an anonymous listener.
Hi, Dave and Jameson.
Thank you for sharing your insights.
I love your show.
We love our show too.
Thank you.
That was very egotistical of you.
I'm just confident in you, Dave.
Oh.
I work on a team of four remote developers,
all of whom are productive, kind, and humble.
One of my teammates is very shy and anxious.
They almost always join meetings with their camera off,
rarely speak up in discussions and give very sparse feedback in code review i've always accepted this
is just the way they are however i found it harder and harder to empathize with them and have been
frustrated by what feels like a one-way relationship am i wrong in expecting them to contribute in ways
that they are apparently not comfortable with if so how do i manage these expectations if not how
do i encourage this person to put themselves out there thanks for any wisdom and hilarity you can
provide uh those are high bars well they said any yeah none is technically any also
have you considered that you are part of a sophisticated turing test experiment
your co-worker is a chatbot is that what you're saying yes with a very quiet chatbot yes with
limited audio capability i haven't looked deeply into chatbots have has anyone just tried to make
one that's very shy probably i know they usually talk a lot yeah i was gonna say no and it's pretty
easy to tell yeah probably not actually now that i think of it a shy chatbot would get like no
engagement yeah but maybe it passed the turing test so we're building a new customer service
chatbot and we're thinking it ignores you yeah we're gonna go with this shy model
it's called dev noel have you tried surprising them by going to their house and appearing behind
them in the middle of a call hello i'm just here to get to know you better
like when you have the hiccups and you want someone to surprise you maybe it's like that
you're shy you just haven't been shocked out of your shyness that's right it's just
that's a temporary state they're just waiting for someone to scare them yep i know when i feel
anxious what i really need is someone to deliver a just a bone chilling amount of fear to me and
then that helps me overcome the anxiety wow i feel so relieved now yeah well it's like a sneeze that
you have coming on and then you just get it out of your system just need a good fright
well now that we've had a good hearty laugh at this person's expense
have you been in a situation like this dave yeah i um i feel like many teams have at least one shy
engineer who has a hard time either vocalizing themselves well in in a group setting especially
in a group setting you know it's the person you always have to say hey could you speak a little
louder sure but i don't think i've had one who is universally quiet in all communication modes
like here we're talking code reviews which i assume are written uh meetings which are
interpretive dance yeah yeah sure yeah um they're not written typically they'll be you know quiet
in one mode and vocal in another mode so this sounds like universally quiet you know I don't
offer code reviews I don't speak in meetings and I don't even turn on my camera I don't think I've
had anyone quite that extreme yeah I mean often if people are anxious in social situations text
is better for them sure and then remote could help yeah so I have worked on a team with lots
of remote people and i've been in this situation especially when you're in a meeting and you're
trying to get feedback from people and you just feel like there's just nothing coming yeah it's
just you talking to yourself yep and i at least begin to feel like they all think i'm an idiot
and that's why they're not talking because they're just so disgusted with me i won't even i won't
even honor this guy with a response yeah yeah or if you're trying to solve a problem it just feels
like it's all on you and you're just talking to yourself with a crowd of people listening in and
yeah it's not a fun situation so i can can understand why this doesn't feel great one thing
that we did to try and help with this was we we banned people from turning their cameras off in
meetings this i mean you need to be careful not to make this feel heavy-handed and authoritarian
because it kind of is heavy-handed yeah a little bit but the purpose of it was to help make sure
people feel engaged and remote work is easy to disengage right from easier than in person yeah
if you're in a meeting it's a little more obvious if you're just totally spaced out not paying
attention but if your camera's off you turn your microphone off and then you just pull up
mind sweeper and just sweep some minds for an hour don't say anything and people are like oh i guess
they're just shy like nope saving the world saving the world for minds yeah uh yeah so it's not i
mean it's not just like distractions like that but but seeing people's faces helps promote connection
and that's an avenue for signal you see their emotional reactions to what you're saying and
you can get a little more insight into how people think and how people feel you're opening a channel
yeah it's very helpful for remote stuff so maybe don't say we ban cam we ban you from turning your
camera off but you that might be a thing you approach uh talk about how important cameras are
and especially for remote work and remote teams for sure sounds good that's one way to back into
the problem i was going to propose a slightly more direct approach okay where you confront the person
maybe stamp your feet and you know shake violently and ask them why they're so freaking
quiet all the time like like yell at them yeah exactly you're just so shy and i hate it
but but seriously i i do think that um if i were in a situation like this and i had dealt with it
for a long time and i could see that it was harmful to them and their participation in the
team i probably would approach them and i would say something very non-threatening like hey i i've
noticed that you seem to participate a little bit less than some of the other team members in some
of these dialogues we've had um you know is everything okay like are you know how is that
what's going on um yeah and just see how they respond and maybe they'll if they trust you and
you do this in a non-threatening way maybe they will confide in you that there actually is a real
issue with that they have that makes it difficult for them to do that that's one possible outcome
or they might just say oh i didn't even realize i was doing that i'm just really comfortable
letting other people take the lead on these things and i didn't really see a need to insert myself
and yeah you know those are two very totally viable outcomes that could happen and i think
that's a conversation i would probably have in this situation the question asker mentioned unmet
expectations well they didn't say unmet but they mentioned expectations a few times
and i think that's the crux of the issue is you have expectations they might not understand those
expectations and you don't know what their expectations are so yeah i think if you just
talk about those openly you can determine if those are correct and if those are expectations
you both share and are okay working with the bad outcome is for you to feel like you feel now where
you expect them to behave in a certain way they don't know that they don't behave that way you
get frustrated um and that's very common that happens all the time but they might like dave
said they might have no idea so if you lay out your expectations clearly and especially if you
if you make it clear that you want them to contribute more because you value their input
you said that yes they're shy and anxious but they're also productive and there's probably
more they can contribute to code and architecture and helping other people on the team
Yeah, that's a really good point. I've actually, now that you mentioned it, I've had two co-workers who I've worked with who were super productive, quality engineers, but in social situations with more than two or three engineers in the room, they would be very quiet.
and they would just sit back and play a very passive role and both of those people i gave
the feedback to in like their we had regular feedback in my last company and so i could say
you know here's something i would recommend you improve you have good ideas but you need to make
people aware of them by either participating more actively in these discussions or by verbalizing
them in text form and email or whatever but i want to hear more of your ideas so that you can
contribute and we can all improve and i think when people hear that that you think they have
valuable things to contribute it gives them license to actually make you know to participate
even if it might have been uncomfortable for them yeah if if they're anxious or shy or nervous about
looking dumb um that might help if you tell them you think they have good ideas i've actually been
in similar situations where there's someone on my team who's brilliant and they were also kind of
shy and reserved and and we had to tell them we want to hear what you say because you're usually
right so so speak up if you think you have a good idea and they actually improved a lot and it was
i mean they were great to work with before and it was even better to work with them after no that's
awesome that's a cool story one more comment on expectations the last thing you can do if you're
not comfortable with the things we've suggested so far which about half of what we've suggested
that i hope you're not very comfortable with is uh back on the on the thought of expectations is
you could recalibrate your own expectations and if this person has no other issues with their work
then maybe it's no big deal maybe this is the way they participate and it's just fine and you can
say hey i can accept them for what they are and i heard i heard here in the comment let's see
it's getting harder to empathize with them so i'd like to just zero in on that for just a minute
I think maybe you need to try to form more of a multidimensional relationship with this person that extends beyond just the immediate work that you're doing right now.
Try to get to know them, figure out what their interests are, and maybe they come out of their shell and have a whole other side that you've never met simply because you've never been on a topic that really gets them going, you know?
Yeah, that makes sense.
This is one of the benefits of the much maligned team building exercises that teams can do.
And I think it's really good for a team every six months to a year to do some kind of outing
where you go out and do an activity together.
It could be as simple as bowling, but it's something that will force the team to get
to know each other outside of the single dimension of software engineering.
And it makes empathy much more easy and accessible when you know that this,
when you recognize this person as a multifaceted human being like yourself who has complexity and
needs outside of work and i think that may be one thing that's lacking here yeah that makes sense
good advice dave oh thank goodness i'm so glad you said that
have we answered this question i think so shall i read the next one yes this comes from an anonymous
listener as well it says i am the only outspoken developer working in a flat organization of 25
developers our new manager is trying to make our code bases and future work consistent one of these
goals is to create a generalized architecture to use across all the apps however we as the employees
do not get to define this architecture it is being offshored to a team in india that our manager has
worked with in the past his reasoning for doing this is to get it done quickly and leave the mid
to senior level developers free to do other things but this means the core to all of our
future apps cannot be determined by us and it kind of wrecks my morale ultimately i'm feeling
burnt by my manager and not trusted despite him referring to me as a good developer it feels like
it's a loyalty first mentality with my manager where my life will go wonderful if i just say
yes sir to everything but this is not how i operate uh it giggled a lot to myself while
you're reading this it's just so bizarre working in a flat organization with a manager and junior
and senior developers where the manager decides what we do wait a minute this is a flat has plenty
of problems uh those are not usually problems associated with flat oh man organizations though
good observation yeah this is weird yeah it's so bizarre usually usually anarchy is like the
the mode yeah it's usually chaos and and no expectations and hard to figure out what
decisions are and how to make them sounds like a lot of decisions have been made for you and
you can't question them which doesn't feel very flat to me this is only flat in one way which is
we're saving money on middle management yeah it's flat in that you have no support
oh this is weird okay yeah what do you think about your manager
outsourcing the next generation architecture for your software uh it sounds bonkers this is
yeah this is bizarre this is really weird i i mean to leave the mid-senior level developers
free to do other things what what are they doing closing tickets with the rest of you
yeah they're they're actually really efficient at fixing bugs so we need
we need the mid-senior developers all in on bug fixes while this outsourced team
creates the foundation of our technology of the next round of bugs you'll be fixing
yeah this i i hope there's some detail that's missing here because this sounds just
so wrong i don't think outsourcing is inherently bad i've never heard of a team that outsources
the core of their technology though unless it's the only team member like if if all the engineering
is outsourced that's one thing but if you already have an established team you have 25 developers
yeah well especially since this looks like it's a new outsourcing relationship where it had come
from a previous engagement with this manager someone he'd worked with before it's like i'm
gonna bring those that team back in yeah maybe they did really good work with him last time
which is fair enough but maybe that's he plans to replace you i mean it could get more in affairs
maybe there's some kickbacks going on right oh gosh maybe he gets money from this team for
funneling business to them geez but only architecture work yeah where he gets more
money for architecture work and less money for well-defined tasks and bug fixing yeah that's
That's like 90% a joke.
I don't, I only a little bit suspect that.
Okay.
So I have a counter proposal for you.
Go to your manager and say, we as flat organization of developers have decided to outsource management
to this great team in India that used to manage.
Oh yeah.
That's amazing.
Hmm.
Hmm.
I mean, what do you do in it?
Honestly, it sounds like garbage.
and and pro-tip is always an option pro-tip do not go to your manager and say this sounds like
garbage just leave him a recording of this episode on his desk where we accuse him of
felony fraud and tell him his idea sounds like garbage um we're we're great you best not do that
either yeah okay okay what yeah what do you do besides quit because quitting is the easy obvious
like sure that would solve some problems right um what do you do as as an employee in this air
quotes flat not actually flat but not in the way that flat organizations aren't actually flat way
um wow i would go to this manager and ask what is going on what is your motivation here
how can i best contribute in this new world of flat plus outsourcing yeah we can call this core
sourcing
well my project got core sourced so i'm stuck in the flat org
but yeah i would i would go to the manager and say what's the motivation here what's the long game
where do you see our team in 12 months you know where do you see this uh india team in 12 months
what's the outcome you're hoping for what you know why did you what was the great experience
you had with them in the past and does that actually translate here surely before this
decision was made because there's money on the line there had to be some kind of approval from
someone so this idea was pitched at some point to some leader in your company and that leader
was aligned and somehow this got green lit so that means that there's some kind of paper trail
probably they could at least explain his rationale there's probably a slide deck or something
somewhere you could at least find but remember it's flat oh crap so it could be it could be like
your co-worker that you're sitting next to who's the leader that approved it
the junior dev that was just hired send out an email to your teammates be like hey who approved
this yeah and they'll go like oh crap i thought i didn't realize i was the only approver
his reasoning for doing this is to get it done quickly and leave mid and senior level developers
free to do other things so that that reasoning is one i've heard a lot for outsourcing it's very
rarely applied to core architecture but i have heard that tactic of we just really need to get
this thing done we need our team on other stuff as a motivation for outsourcing i just don't
understand what what other stuff they're doing that's more valuable than the future of your
platform i feel like i feel like we had a caller who um wrote in with a similar concern i don't
know maybe a year ago or so who said that uh like the next generation products being developed by
this outsource team oh yeah by contractors right but it wasn't the uh like it wasn't like an
architecture or a code standard it was more like the next gen product and um yeah we're being left
here to maintain the old one and maybe this is a precursor to that maybe maybe your product is
yeah maybe your product is on fire and they know that um they need you to keep the lights on and
fix bugs and put out fires and meanwhile they want to develop the next generation and so they
can't afford to take you off the firefighting so in come the contractors sure i can see why this
would wreck morale because it's new no matter what it is it's new exciting stuff that you don't get
to work on that someone who isn't part of your group gets to work on right someone from the
outside uh so it could feel like you're not trusted i can see that yeah me too how does the
rest of your team feel about this it sounds like you are definitely bothered by it but does anyone
else care do they not worry about it i mean bad decisions happen all the time i guess so
it's not weird that someone made this decision that seems bad to us but it does seem weird that
no one seems to care that much about it yeah you're the only one maybe they just don't appreciate the
gravity like you do yeah or maybe you have an inflated sense of anxiety like i do
you get paranoid whenever a decision is made by management on any subject
yeah what they didn't outsource our architecture to the team overseas oh no we're doomed
the flat thing really makes it tricky because normally the way you decide stuff in flat
organizations is consensus it's not actually flat though so if you go around and talk to all your
co-workers and you organize a mob and then have pitchforks and get all upset then then i don't
think that will go well because that's not how this decision was made i thought when you said
if you organize a mob then you just created a hierarchical management structure where you're
in charge oh yeah that's true you've replaced your manager you you've anointed yourself middle
management over the mob pirates have a word for that as well a mutiny that's right oh you're right
yeah punishable by death by the way well that's true i think the core thing of deciding what to
do is how willing are you to push back on your manager and and how willing are you to leave
if they don't change because you you could kind of organize opposition to it and make it a big
thing and bring a lot of uh in a way that makes them not feel defensive bring a lot of data that
that shows hey this is a bad idea everyone will be sad you'll lose employees they could fire you
they could do nothing they could change their mind it it is going to be a lot of work i guess i'm just
wondering i mean is there is there any other outcome besides trying to convince the manager
not to do this with with i don't know i whatever it is it begins with a conversation with this
manager i think and you might just be uh confused you might not have all the complete story about
what's actually happening you know yeah i think i'm more willing than you are to slap the mutiny
button let's do this took away our free startup water mutiny insta mutiny there's a startup idea
it's like meetup.com for mutinies okay
organize internal rebellions at your company for only 29.95 a month per rebellion yeah
yeah so i think you're talking to the manager ideas is good i don't see it changing just the
way this question was worded i feel like this seems like a pretty done deal that the manager
seems pretty excited about and maybe i mean we're filtering that through a lot of lenses
but but i don't see you saying why are you doing this resulting in the manager
having an epiphany and saying this wrecks my team's morale and and it makes them sad and it
might be better to go slower but have the team own it or whatever the trade-off would be but i well
i guess you said the other outcome is you understand some context you didn't
yeah i don't feel like i have anything useful to say here okay that's what i'm realizing after
rambling about this question a lot all right except the pitchfork thing that was pretty useful
yeah i mean that's that's generally useful anytime anything doesn't go my way i reach for the
pitchforks the first thing i reach for yeah i have a lot of pitchforks
all right well should we call that one answered put on your i mean i stabbed it with a pitchfork
yeah that's my go-to solution put on your mutiny hat and grab your pitchfork
all the tires of my cars are all flat because every time there's a problem with my car i just
stab with pitchforks it hasn't worked yet but maybe next time it will
i just need to stab some air into the tires
okay good luck i'm sure you'll solve this problem absolutely one way or the other oh yeah
this will not be unsolved for long yeah if your morale is wrecked yep that's true uh yeah usually
i just stab my morale with the pitchfork it gets better until it re-inflates
okay um we got a lot of questions oh thank you for that it was like quadruple volume this week
we are overwhelmed inundated even and we want quadruple that next time that's right keep them
coming hockey stick growth yep so keep them coming yeah thank you so much for those questions if
people want to send in questions dave what can they do go over to our website at softskills.audio
and click on Ask a Question.
Also, on that same website,
you can see every episode we've ever published.
You can stream them right on the website.
And we added a comment feature,
which I had forgotten about for a while,
and I just went back and perused a bunch of comments.
There's some very interesting content there
where people have added extra points that we forgot
or corrected us on things.
It's good stuff.
So if you have a correction or a note
or something you want to add to a discussion,
go hit us up there at the bottom of each episode page.
You can put whatever comment you want.
Within reason.
Yes.
there are limits you probably can't like paste the text of i don't know the brother's car
into the comment box you could try it would be too long you can test discusses front-end
validation algorithms all right i think that means we're done we will catch you next week see ya
