Soft Skills Engineering - Episode 40: Office Visibility and New Tech
Episode Date: December 21, 2016In this episode, Dave and Jamison answer these questions: How can I encourage my team to be more visible in the office? How do I learn new technologies without going through a noob phase? ...
Transcript
Discussion (0)
It takes more than great code to be a great software engineer.
This is Soft Skills Engineering, episode 40.
I am your host and your artisanal corndog chef, Jameson Dance.
I am your other host and artisanal corndog consumer, Dave Smith.
Dave was telling me all about the corndogs he was eating before the show.
And because I love him, I just wanted to make him the best corndog ever.
I've switched career paths.
corndog i'm starting from the bottom i'm just making this i'm making the sticks that the
corndogs go on each stick is carefully crafted with a little pocket you can you can bite into
that quality um this is not a show about corndogs it's a show where we take your questions on all
the non-technical aspects of software development uh and sometimes we take comments from listeners
where they tell us all the stuff we got wrong including and we have oh you you teed that up so
well but i'll tee it up again all the stuff we got wrong including a comment today um actually
this is a comment agreeing with us which is a nice treat um much like a corndog
oh the gift that keeps on giving so this comes from an anonymous listener who says
regarding the discussion of engineering licenses in episode 34 i made the move to software
development from civil engineering your bar exam analogy is fairly accurate to become a professional
engineer you have to take the eight hour fundamentals of engineering test which sounds
like just an incredibly fun thing it's got it's got the word in the title fun you can't spell
fundamentals without fun yeah uh and work for five years under the supervision of a professional
engineer then take another eight hour test to get your stamp for simple engineers it's pretty much
required if you want to advance in your career i could see that concept being useful for software
developers in certain sectors for example i certify this software accurately measures auto
emissions and doesn't just make stuff up when you plug in the tester especially for legal issues
involving software failure thank you that was a nice comment and i am personally quite glad that
i haven't had to take an eight hour test and then work for five years under the supervision of a
professional software developer and then take another test yeah i mean maybe you know more
stuff though yeah it would be like reverse a linked list in place in c yeah you're a professional
software developer that does sound like the kind of thing that would be on that test if it was a
software thing but yeah thanks for the comment yes that's really good insight and i love hearing
man that's one of the great things about software being uh not easy to get into but people come to
it from all different careers is you get a lot of different perspectives it's really cool all
right shall i read our first question please do uh this is from a listener named and i am going
to pronounce this right davraham lincoln that i that is what he wrote he gave he did give a
pronunciation guide yeah and it's in all caps so i know that i know that it's right yeah uh he
davraham lincoln says first i have to say your podcast is awesome i've listened to every episode
and now have a goal to find a job with a quality ball pit
and Jameson swimming in it,
that second one will be automatic.
If you build it, I will swim.
Okay.
Dave Abraham Lincoln writes,
what's expected as far as visibility in the office goes?
He says, I work on a small team of six developers
and our manager lives in a different time zone.
Anyone on the team can easily, quote,
work from home, air quotes, he wrote.
and the current dev lead is hardly hardly ever in the office because of
quote quote meetings double air quotes because of meetings we usually accomplish the things we
set out to do each iteration and the flexibility to work from home is super nice though i feel we
could accomplish more if only we were all in the same place at the same time any suggestions on
how to talk to my team without sounding like a pretentious watchdog the pretentious watchdogs
are the worst kind uh yeah this is this is an interesting question it it feels like at the
root of the question is another question which is i i suspect my team is slacking off um how do i
address that and and the solution that davraham lincoln has come up with is to encourage people
to be in the office more and then that way they can they can kind of keep tabs on each other and
make sure they're working well is that kind of what you're getting from the question too yeah
but i think i think this one has a pretty easy answer and i think we've actually talked about
this before which is install spy cameras in their homes while they're sleeping and then you can just
keep tabs on exactly what they're doing and then you don't even have to wonder that's called that's
called data-driven productivity it sounds so much less nefarious you just say i want to make
engineering decisions based on data and the data is what browser tabs you have open
and a live video stream of your the whole day
you just get a message in slack it's like clean your room your room is so messy
your bed has not been made in weeks i think if you're worried about a productivity issue
that it would be better to address it directly rather than kind of like passive aggressively
say hey maybe if we all work together we'd get more done instead of working from home
because for two reasons one um if if people are actually slacking off and you're telling them like
hey can you just work more instead of slack off then they're gonna be kind of unlikely to
love that idea and want to do it uh like can you can you can you not have all this freedom
uh to to get your stuff done whenever you want and also goof off all day and and the other thing
is um i just think it in potentially tricky issues like this it's better to be a little
more direct maybe this is just my personal preference showing through but wait if you're
worried about productivity talk about that i think so who are you and what have you done
with jameson first of all listen because i'm telling other people what to do not what i would
do i think you just suggested confronting someone directly about a concern you have with them which
no you can do i mean they all work remote so you can't confront them directly it'd have to be over
slack and then you can put in like all the emojis and like i think everybody's slacking off at home
instead of working party parrot to kind of take the edge off and then you can close your laptop
and avoid it for a little while yeah then you then you disappear and let things work themselves out
and don't experience all the emotion in real time okay maybe this remote work business has its
advantages you got to be really good at the emojis i either i'm growing as a person or i've
found a way to have this feeling and feel internally consistent because i do think if
you're worried about productivity talking about productivity is more effective than than talking
about taking away the fun things i think um sometimes when it comes to these productivity
questions, there could be something inherent in this culture that might be really hard to root
out. And the reason I say that is because we didn't read this to you, but one of the fields
we have on our Google form is how big is your company? And this listener wrote in that it is
a large institution. And sometimes large institutions have a certain, let's say,
reputation for slightly less aggressive productivity of their engineers. And I'll
just tell you a story where i saw this play out once i interviewed for an engineering job at a
large health insurance broker company no not broker clearinghouse that's what they were
and um very big company thousands and thousands of engineers and when i asked the engineers what
their favorite part about the job was i'm not kidding you the lead engineer said that he liked
it because it wasn't really that demanding and he could just kind of basically skirt by
and uh you know like that's probably true at a lot of places but it's not usually something
you say in the interview you know like um maybe you're just practicing honesty yeah well i agree
i actually really appreciated that because at the time that's really not what i was looking for
yeah but but i realized like this is a company where productivity is not super high value you
know yeah and maybe that's what's happening move a little slower yeah this this could be
a cultural mismatch too if um i mean there are companies that really strongly value remote work
and and even if they have a central office everyone's kind of working remotely even if
they're at the office and there are companies where everyone has to come into the office every
day and there are different trade-offs with each approach i think some of it is personal preference
and some people are just happier coming into work every day with with colleagues at kawali we had a
work from home day once a week and half my team just didn't do it because they're like i i'm not
happy when i work from home i don't get as much done so it's i mean like you can't make me
just go home and work from home so they just come into the office it was actually really nice for
them because no one else was in the office it was super productive and so one thing i just noticed
about the question that i want to focus on for a minute is that the team lead lives in a different
time zone and i get the impression that most of the rest of the team is expected to be in the office
but that they work from home occasionally or more occasion more frequently than this listener would
expect and the manager may not actually be aware of just how little they're getting done
so now if that's the case the question is do you tattle on your co-workers
so if the current lead dev is hardly ever in the office because of meetings
so there are two issues one is the manager is remote the other one is the currently dev is not
around a lot and the the three sets of quotation marks around the word meetings
leads me to believe there's some skepticism about uh the the value of what this person's
doing when they're not around so who would you you're saying you would tell the remote manager
you have concerns about kind of productivity issues of the team i don't know man i don't
know if i would that's really hard remember how i said i don't like to go over people's head
yeah is that what you were about to say well two things yeah it feels like it could be on
the edge of going over someone's head but also isn't that what a manager is for like it's not
it's not your job to solve every problem on the team by yourself as just a regular old team member
is it your job to tell the manager when there's a problem i think if you believe there's a problem
then it's perfectly fine to discuss it with them okay we talked about one-on-ones last week i
believe and this seems like a thing that could come up in a one-on-one just say i'm worried our
team isn't getting as much done uh some of it i think maybe because of our remote or work from
home habits what do you think and then yeah i i think uh the more like inspector gadget sleuthing
you do on your own teammates the worse it is in this situation that feels like a weird relationship
but even though i don't think that's a super healthy thing for a manager to do it's like
more healthy to have them do it than than you yeah yeah so maybe in this case you couch it as
a question and you go to them your manager and you say what do you think about our productivity
you think we're at maximum productivity or what do you think i mean when you ask a question like
that like no i i think it's i mean obviously you're expressing concern um but sometimes when
when i've asked questions like that in the past my manager has surprised me at just how tuned
into the problem they already were and rather than just coming to them with a litany of all
the things you think are wrong you give them an opening and see if they already are have come to
that conclusion and then you can sit back and talk about solutions instead of you know being
a tattletale yeah that's how that's how i like to do it but that is a little bit indirect and
it's not everybody's style just get all the telepresence robots together in the same room
and just have it out only i mean you can go in the office sometimes so
theoretically you could arm your telepresence robot with like a squirt gun or something
to short circuit the other telepresence robots yeah or at least obscure their cameras a little
bit yep well this is a tough situation and uh before the show jameson and i were saying i think
we've answered all the easy ones now and all the questions that come in are really hard and there's
like subtlety and um a lot of like risk for from that could result from doing the wrong thing i
think so yeah this definitely is in that category so good luck and it seems tough yeah i i think
dave your instinct of not wanting to tattle on people is a really good one and no matter what
you do that's a thing it sounds like daverham lincoln is already concerned about that he
doesn't want to sound like a pretentious watchdog yeah i think there is room on a team for someone
to say hey i think we can step it up a little bit and if you can do that without it feeling like a
power play of some kind i think if you can do it in the spirit of encouragement and like belief in
the team then it could come across with the right intention yep totally agree all right question
answered question answered awesome uh you know what i want to do before we talk about this next
question what what do you want to do i want to talk about our lovely sponsor dev mountain yes
they are lovely yeah and just describe the beauty of their logo and web design uh it's
its lines are clean and elegant yes they are and also sleek and if you can't judge if you can't
judge a dev boot camp by the sleek lines of their logo what can you judge them by really that's so
true i mean that's how i make my judgments about basically everything i i've turned into one of
those people that buys the expensive pasta because the package looks better so there's some truth to
that dev mountain does coding boot camps they have campuses in salt lake and provo in utah
they offer free housing so if you're coming from out of state that's a huge benefit you don't have
to find a place to live and that can be a pretty large expense and they do part-time and full-time
they can do kind of like after work programs if you have a job and don't have the ability to
dedicate full-time or they do straight up full-time stuff they do ios they do ux and ui and they do a
web development course and i've actually made an effort to interact more with boot camp graduates
and it's been amazing like it's a pretty interesting group of people from a very
diverse background and and they just bring a lot of excitement and different perspectives
on the field yeah i agree i agree it's really cool if you're interested in getting into the
software development or if you're interested in kind of changing your skill set from within
software it's one of those tracks then you can go to softskills.audio slash dev mountain
and it'll take you over to their website.
All right.
Thanks, Dev Mountain.
All right, Jameson, you want to read our next question?
I do.
How to, well, that's not all the way English.
How do I learn new technologies
without going through a noob phase?
This is from a listener named Christopher.
How do I become an employable expert
in newer in-demand and more fun technologies
without feeling like I'm starting all over
or giving up my status as a senior developer
and strong salary?
P.S. Love the show.
love you too christopher thank you and we love you back this is a great question because this
is kind of an ever evolving field so this problem will come up over and over again unless you
pick a thing and stick with it forever which has different like trade-offs yeah this kind of goes
back to the specialist versus generalist discussion we had i don't know months ago um yeah yeah kind
so my first reaction when reading this question was that it's very focused on the tech and kind
of internally focused on uh what i want to do and what is fun and cool and there's some correlation
of that with salary and position but i think the strongest salaries and titles come from
business stuff not technical things unfortunately or fortunately i guess depending on how you feel
about it so if you if you're really concerned about status and salary and and those things
the closer you are to being able to tell a business i did this and made you this amount
of dollars the more that comes so and to some extent these concerns are at odds like i want
a lot of money i want to work with the hottest newest technology the business to most yeah the
business doesn't care about the technology they care about the money you will make them
yeah it's a means to an end yeah so i guess that's an answer in some way if you can point
to how using this newer in-demand technology will help make them more money then you can kind of
make a case for using it at your current job and then that's a great way to learn stuff yes that's
i guess that's the classic advice for learning new technology you kind of experiment with it
in small pieces at work like you build some internal app in the new cool back-end framework
or use it smally that's not a word i think it is now mr smally gosh use it in tiny pieces
over time and it proves itself out and you learn it over time too that's i feel like that's the
most established path maybe yeah and then of course the other the other way is just to change
jobs like you're saying which i've done several times in my career and yeah you you've changed
jobs to to work in new tech huh oh yeah like when i got out of college i'll just give you a quick
rundown but got out of college worked in java for a year and a half changed jobs worked in c++
for a number of years changed jobs worked in python and javascript and every time i did that
there was no pay cut because I didn't already know the technology. I was hired into a position
where the hiring people knew that I didn't, I wasn't already a master of the technologies they
were using. They were looking at me for my aptitude, not because I brought the correct
laundry list of skills to their company. Yeah, that's maybe a better way to say what I was
trying to say before, that if you can prove you just have really solid technical skills
and especially applied to business problems then the technology doesn't matter as much
yeah um i would i would gladly hire someone who's done a lot of ruby on rails to work in
node assuming they don't have like an allergic reaction to javascript
um if they've demonstrated they've built successful products or solved good technical problems yeah
the tools you use to build the things you build are a lot less important than the things you build
and uh however you know having said that companies have hired me for my aptitude and not because i
have the right skills on my resume i do believe there are plenty of companies who will only hire
you if you have the right skills on your resume yeah but are those the same subset of companies
that will be hiring for the cool new in-demand technologies um i look at elm right now is
pretty getting pretty high up there on the hype cycle and a lot of the postings i see about elm
explicitly say we're willing to teach you elm because it's so new and it's not a thing you can
just hire experts for anyway so so they're explicitly hiring for ability to learn elm not
expertise in elm already and i think that's true for a lot of other um really new technologies
i think that there's a set of companies especially agencies who are in the business of cranking out
uh rapid uh rapid iteration cycle products for companies like cranking out a campaign website
for some something you know and i think in those cases they really want you to have the skills and
the tools they're already using because they don't they don't have time on a three-month project to
have you spend a month ramping up you know yeah that's the impression i get i haven't worked for
one of those companies but that's an impression i have not either i i think one more wrinkle is
if a technology is sufficiently new the bar for expertise is pretty low that's a good point
because the pool of people that work in it is small and guaranteed there's always someone in
there who's been there way longer than you and is an expert already but if you if you look at
the population sizes of as a whole of like java compared to elixir or something there are elixir
experts and people with established elixir code bases and consultancies and stuff but it's still
way easier to just jump in write a few blog posts and be like the top 10 percent elixir person
because the world yeah big fish little pond yeah this happens a lot in front-end javascript stuff
because it moves so fast that you just see these people kind of pop up all the time that that
they're not like famous don't have a background or a pedigree of established projects but they
just do cool stuff that's new and and then it doesn't matter they don't have to have a long
track record because it's it's new and it's cool the other thing i want to comment on in this
question is that he says how do i become an expert without feeling like i'm starting all over or
giving up my status as a senior developer and i think that your status as a senior developer is
achieved precisely by your ability to learn new skills quickly in other words if you're really a
senior developer the uh notion of having to learn a new skill shouldn't be something that shuts you
down for months while you come up to speed on it like you should be really good at learning new
technologies yeah i i think it's like skill trees you see in games where you can invest a lot of
points in one part of the skill tree and i think there are some really senior engineers that have
put all their points in like expert product stuff expertise in a in a stack it seems like it happens
a lot with rails where they're just rails experts and and move like lightning to crank out business
value from rails um but i think you you could put more points in learning and keeping up to date
with new technology as well and that's like a different kind of senior i guess so in other words
you are leveling up your ability to quickly ramp up on new technology or are you saying yeah yeah
yeah okay not not the new technology itself but the ability to to rapidly learn i mean you have
to learn rapidly no matter what but yeah there are some people that just say i rails is my thing
and i will use rails to solve all these problems i encounter right and and i will get so good at
solving these problems and then there are some people that are like my thing is the problem
and also applying new technologies to it and i'll i'll get good at solving problems and applying new
technologies to these problems and i think it's pretty obvious which one of those things will
work over the long term better do you think so yeah i mean rails has a shelf life right
it it does it's pretty long yeah it's done pretty good i gotta admit
and i think there are there are long careers to be made still in rails but at some point
you'll have to jump off maybe i'll be dead by then maybe in which case hopefully it wasn't
the thing you jumped off that killed you yeah killed by rails he loved it too much so if i
would ask this listener if you feel like you have a senior position right now i would ask if it's
because of tenure at your particular job doing your particular thing with your particular technology
or if it's because you have a demonstrated track record of ramping up quickly because those are
two very different things. And I think sometimes people think of themselves as senior, because in
the scope of the work they do, they're the expert, like they've been around the longest, they know
all the quirks of the code base. And that makes them senior, but only in the context of the team
that you're on. And if you were to take that person and pluck them out of that team, and put
them on a different team, suddenly, they're not that senior. Whereas if you're the kind of person
who's invested in your ability to learn quickly, then you can pluck a person out of a team and put
them on any team and they can ramp up to a productive senior level contribution pretty
quickly. Yeah. Yeah. That makes sense. I mean, you've, you've gone through this transition
very recently. Do you, I'm going to ask you to potentially toot your own horn, but do you feel
like you've been able to contribute a lot of value at your new job, even though it's a totally
different tech stack and code base? Well, I wouldn't say a lot of value yet. Someday you'll
be a senior developer day yes i long for that day um i i would say that at my new job i've been able
to contribute by um by leveraging my experience designing systems that uh like interconnected
systems as opposed to having uh experience with a particular technology um very much so because
my current role is very much in that spirit of interfacing with other teams and figuring out
what the right APIs are and the right data flow and the right ownership models and things like
that. I mean, it's, it's very much not, you know, in the trenches writing code at this point in
time. And, and yeah, I think, I think I have been able to contribute in that way. But if I only came
to this job with like a one programming language experience that i just had super mastery level on
um i probably wouldn't have been that uh useful you know interesting i think i don't know yeah
this is a an entirely different topic that i'd love to explore sometime but there there are
different categories of developer knowledge and and they all have different half lives
and the the kind of architecture stuff you're talking about i think has a much longer half
yeah yeah yeah the the api of this like oauth library in a specific in a specific language
sure sure but you need to know that stuff still so although you got to figure out how to invest
your time i don't want to drag on too much on this point but a lot of the knowledge that i
bring actually came from my knowledge or came from my experience with a specific hosting technology
and that's been super directly applicable to my new job so maybe maybe i'm overstating
my generic experience a little bit here yeah maybe probably probably probably you don't even
work at that place that you're talking about and you're just overstating everything except
the fact that you're eating corn dogs a few minutes ago that's the only true thing i've said
today so i want to i want to go back to um the question here a little bit which i think we've
kind of danced around this one and not really talked right to it but which is boots on the
ground how do i ramp up quick on a new technology and i would say that the best way to ramp up on a
new technology is to build something complete in that technology as fast as possible and by fast i
mean don't get hung up on one aspect of it try to build the complete product as quickly as possible
so that you bump into the technology's edge like the rough edges and the stuff put in maybe the
gray areas where it doesn't help you as much as early in the process as possible that way you can
get a nice breadth first feel for what this technology does for you and uh also you reduce
the risk of having an unknown unknown bite you you know halfway into this big project
yeah this is in the one of the genres of things i say is like advice to myself this is the thing
i struggle with where i do a depth first search of the technology instead of breadth first but
if you can just accept like i'm probably doing this in a stupid way but at least it works
that can get you pretty far in in getting things done in a new technology and
getting things done is the best way to learn and even if you go depth first you're still
going to do it wrong right yeah so that's my advice that's great advice dave thank you for
your wisdom one more thing as long as i'm barfing wisdom all over the microphone uh yeah so am i now
i have a pet project at home that i use for the purpose of experimenting with new technologies
and what's nice about it i may have talked about this before but what's nice about it is that
it's a small project i fully understand the domain and all the use cases and when i implement it in
a new technology i don't have to sit down and ask myself like product related questions or user
experience questions or big design questions like i already know how it needs to be built now i just
have to figure out how to make this new technology build it and um as a result of that i can focus on
learning the technology and not have to waste time doing like user experience design this is
your sprinklers thing yeah you knew it yeah oh which i just had to retire because we're moving
out of that house and so i had to put in the old sprinkler system because there's no way
that the new people in my house could ever figure out this monstrosity that i'm living in the house
you get to maintain this this c python whatever frankenstein stack code base it is and you have
full control over all of your sprinklers if you can't cross compile this ftdi driver to run your
sprinklers you have no business watering my lawn i believe that counts as a breach of contract
yeah you gotta keep their deposit well the good news is now you can do it in your new place
I'm sure the landlord would love you rewiring all the lights
to control them from your little microcontroller.
There you go.
That's all I got.
That's great advice.
Thank you.
Question answered.
Question so answered.
If people want to get more of this amazing wisdom, where can they go, Dave?
Well, you should check out softskills.audio.
Join us there.
People have been starting to leave comments on each episode.
Oh, really?
I should read those.
jameson you're so you're so obtuse yep is that the right word i don't know isn't that a triangle
it's the fat triangle okay it was well yeah i could buy that it is the holidays
um go hit up soft skills.audio participate in these comments there's some cool stuff
we love dissenting opinions because um jameson and i the more we do this show the more we realize
just how limited of a worldview we have and we love it when people come on and share their
experience and it's just radically different from ours so that's super great so hop on there
softskills.audio click on any episode and you can leave comments at the bottom
also you can follow us on twitter at soft skills eng and that's a great way to submit questions
our direct messaging inbox is open to everyone also on our website if you want to submit a
question with more detail we have a google form you can fill out and it'll ask you some cool
questions about yourself, including your favorite number. Just kidding. That's not actually on
here. It's hard coded as 42. I mean, if it's your favorite number, it's not hard coded. It just is
your favorite number. All right. Thank you for listening. We will talk to you next week. Bye-bye.
