Soft Skills Engineering - Episode 3: What to look for in a dev team
Episode Date: March 21, 2016In episode 3, Jamison and Dave answer two questions: What should I look for in a dev team? I don’t get enough done at work. I work on a small team that has aggressive plans for de...veloping its product, but I don’t feel like I get enough work done or move fast enough for the company.
Transcript
Discussion (0)
Welcome to episode 3 of Soft Skills Engineering, a podcast with me, Dave Smith, and I'm Jameson Dance.
And we're here to give you some wisdom or at least wisecracks about all the everything else in software development, not technical stuff, the softer side of software development.
One could say we put the soft in software development, right?
One could say, yeah.
One could be wrong, but one could say it.
One could actually only talk like this from now on
and one will always use one
every time one has the opportunity
and then one will appear smart to everyone.
One's wisdom overflows.
One, the floating spherical cube of destiny
demands tribute.
Pay tribute to one.
By soft skills, we just really meant
how to get your coworkers to pay you tribute.
Yep.
A listener last week named Matt Ryan
has shared some feedback with us on one of the ideas we had and it was about the topic of
influencing your team without being the team lead and he said that in this context I think the
question had to do with an idea air quotes that might be to do something differently on the team
which can often be interpreted as we are currently doing it wrong and therefore sound like criticism
rather than a suggestion for a different way to approach things expressing the idea to your lead
directly meaning we talked about doing this privately right gives them a chance to have a
meaningful discussion without worrying about the team losing confidence in their leadership or
dealing with the team dynamic where it appears that open criticism of the leadership itself is okay
which is probably not what the person with the idea intended but can often happen if brought
up in the wrong context so we appreciate that man that's good feedback i think that that's
that's definitely true you can often come across as criticizing when really you're just proposing
a new idea without necessarily criticizing the existing stuff yeah that happens a lot with code
too where you'll pull up in some file and just like oh my gosh this is so horrible oh what kind
of monster could have written that and you can you can improve stuff without like tearing down
the person who built it earlier so definitely definitely seems like that kind of idea thanks
matt for your comments and if you would like to give us a comment be sure to tweet us at
soft skills eng where you can find all of our old episodes as well as communicate with us
your hosts your humble hosts except for one one one is not humble
the unhumble one all right so on to episode three okay jameson what is our first question for today
uh here it is so this one's pretty short it's what should i look for in an employer or dev team
all right this is short but i think the answer could be really long
well i mean you only have to list a few different brands of free candy
you're good uh yeah candy bars or or like genres of candy is that a thing
you could go with like your yeah your or your hard candies you got your wonka brand
uh that's pretty much all i look for how about
i actually look for employers that do not provide candy because that means that they're not trying
to get you fat and and unhealthy um no this is a really good question this like so many other
things comes down to personal values and i think it's worth um you sitting down and thinking of
what your values are because there's there's kind of a spectrum yeah uh and you can make trade-offs
along the spectrum if if you're really interested in money um then you'll probably have to trade
that off for some things maybe location or the problem domain or or control over the project or
something like that uh if you're more interested in career growth or working with specific people
i don't know there's just lots of trade-offs i think i can talk about what i look for personally
Um, the, the things that are very important to me in a workplace are, um, I would say
kind and, and smart people is the number one thing.
People that are smart and can teach me things, but that will, uh, be easy to get along with
and that I can have good relationships with.
Um, and, and not everyone values that as equally.
Some people value being challenged more and kind of having, having more conflict to produce
good ideas.
And I've found that I just don't work well in that way.
You don't like just tons of conflicts and fighting?
Well, physical fighting is okay.
Like if you just put on the sumo suit and just battle it out to determine who gets to pick the front end architecture, that's fine.
No, I mean, I would say I value more collaborative environments over more aggressive competitive environments.
I think most engineers are in your camp.
Really? Because that's not what comes up in all the hiring posts I see.
it's all about like are you the ninja rock star champion godlike commander of the universe who
can slay crush everything like who wrote those though uh some somebody someone in the marketing
well somebody that works at that company right and that influences the culture uh well they may
influence yeah i don't know i mean you're right i i do i hate those write-ups yeah in my experience
like i'll see one of those billboards like are you an amazing ninja you know and then you go
into the place and it's like these three unassuming software developers who are just like
mild-mannered and you know i'm like wait these aren't ninjas well yeah rock stars that's uh
once they get on stage they are these are their alter egos is what you're saying yes yes uh yeah
so so kind of the collaborative and and um and i guess environment focused on on learning and
growth that's probably my number one thing that i look for and then the rest is just i think there
are lots of signals that yeah a company values engineering and and will not be kind of a slave
driver or just a kind of bad place to work for so this is a tricky balance because you don't you
probably don't want to work for a company where the engineers are on this pedestal and everyone
else kind of resents them because they get treated special yeah but you do want to work somewhere
that understands that software is is different from an assembly line and you can't just like
make people work longer hours or yell at them to work faster things like that so some idea of
software processes some some technical understanding they don't have to all be technical
people but but just that the culture is is open to technical people doing good work yeah so i have a
on this topic, I like to go super broad and then really narrow and specific afterward. My broad
top three big things are, and they actually come from my current boss, who's very wise and
experienced. His name is Lauren Larson. And he says three things. Number one, you'll be able to
learn, which I think is on your list too, Jameson. Number two, you're passionate about what the
company does, their mission. And number three, you'll be able to be on the cutting edge, changing
the world in some way i don't want to just work for like a me too shop that just does you know
what someone else has already done well we're just going to do it again and try to take a slice of
that pie you know um so those are i i think my top three when my boss vocalized those for me i was
like yes that's what i've been thinking for the last 10 years but i've never really said it out
loud like that sure um and then after i dig in on those three big things those are usually pretty
obvious by the way um the much much more subtle and hard to figure out stuff is basically all
comes down to one question which is how much dysfunction will this company have and every
company has a certain amount of dysfunction in my experience and it's just a matter of figuring out
is it a tolerable dysfunction will you be able to influence the dysfunction to make it better
or is it just awful right and i've got like a bazillion questions i asked to do that but
So that's a really good point. Uh, I think a lot of people maybe suffer from grass is greener
syndrome where they know very clearly what's wrong at the place they work and they imagine
a place that doesn't have those problems and they forget that they're trading those problems for
some other set of problems. So yeah. Can you talk a little bit about how you dig into the,
the kinds of dysfunction that's there? Yeah. So one of the best ways to identify
dysfunction is to talk to people in different roles at the company and ask them the same
question and see if their answers align. So I usually talk to three different types of people,
call them personas. One is obviously you'll meet the other software engineers who will be your
peers. You'll meet their leadership, like maybe technical leads or maybe their managers, maybe
like director level people. And then you'll, if you're lucky, you'll get to meet company leadership,
like executives, VPs, depending on the size of the company, it could be like a lower level
manager, like a department manager. And I like to ask them some of the same questions.
And the top one I ask is, how do you know what to work on each day? If that's what I asked the
engineers. And I asked the management, how does your team know what to work on each day? And I
love hearing the disparity between those things. And like if the manager describes a process or
methodology that just totally does not agree with what the engineers say then you know you've got
some pretty serious dysfunction oh we follow the the seventh seal of the agile scrum band
uh minor chord methodology to the letter we're very good at this and then the engineer's like
i don't know i just kind of like google search our internal wiki or something i work on whatever
the support team tells me is the most pressing fire at the moment uh well it depends on whether
marketing or sales is tapping me on the shoulder that day exactly that's a good evidence of
dysfunction now if you get a pretty consistent answer here and and that if they both also
identify where their processes are weak in the same ways that's an excellent sign that your
management and your engineers are all on the same page and they're working on fixing things and
improving things. That's a huge point. We've been doing a lot of interviews lately. And several
times candidates will ask, what's the worst part about working here? Or what's something that you
need to improve? And I feel like I try and answer that really honestly. And I think that's a good
way. I mean, if they say there's nothing, then you know they're lying. Or just clueless. Yeah,
that's true. Or maybe they just don't care. But that can be a good window. Maybe they came from
a really crappy job and they're like yeah great well i mean i haven't been on fire yet so things
are relatively okay all right and then if and so have you ever been at a at a place like doing an
interview and you ask what's the worst part about working here and they just give some like really
awful embarrassing answer uh you know i haven't and that could be because maybe i've screened
places that i interview at or it could be because i'm just easily deceived and they're like uh
this guy, he'll just believe some fake answer I give him. But yeah, I think just asking that
question, you'll get some information. It might not be what they tell you. You might get other
information than what they say, but you'll get some idea. When I was on the answering end of
that question for several years at my last company, I noticed that the interviewers would
start settling into a routine because we started to expect that question. And so we, you never want
to share the stuff that makes you really uncomfortable because a lot of times it's
personal um so i've actually found that question to be not super effective really really disclosing
yeah bad stuff um because like especially if it's a panel interview if there's like three or four
people and you ask them what do you not like about it oh then they don't they don't really
want to say well it's actually the guy sitting right next to me that i hate you know like he's
the bad part of this company we don't do panel interviews so i i can freely bad mouth everybody
that's great that's great no i well i i can talk about some of the things that so i i love the
place i work and i i would recommend it to i think they do a lot of things right um we are a small
team that's still growing and kind of figuring out how to deal with chaos well though so i think
most of the most of the weaknesses are around some lack of process or some kind of holes in
our communication. Um, but I, I feel like I answered that question pretty honestly. I don't
know. Yeah, that's cool. So, um, another question I like to ask, not because there's a right answer,
but because it always turns into some really interesting discussion is do you write unit
tests? And I asked this to the engineers. Um, Oh, and this is another great one to ask the
leadership like do your engineers write unit tests anyway um and basically i try not to make
any conclusion on whether they say yes or no about the quality of the team but it turns into good it
can turn into really good conversation like um you can talk about their philosophy on unit testing
like see how much they've thought about it you can figure out how expert they are with their tools
you know am i going to learn from this team or am i going to be the one that's going to be like well
do you even know what a unit test is you know yeah you can also maybe find out how um i'd say
dogmatic they are because unit tests can be one of those things where exactly you you can just
be frothing at the mouth in love with them you can hate them uh and and i personally i don't
get along super well with with really dogmatic teams i like i tend towards the more pragmatic
end um not that unit tests are bad but just that yeah if if the idea or if the attitudes towards
technology choices are are like there's one right way to do it and anyone that doesn't do this is
wrong then yeah that that might not work for me when i'm talking to a team and they say um we've
chosen to do x with unit tests and we have the following data points to back up this decision
i get really excited sure even if the answer is we've chosen to not write unit tests at all
yeah and here are our reasons that's great even though personally i enjoy writing unit tests and
i find them to be beneficial for me i would be happy to work on a team that has strong evidence
for why they do it the way they do it yeah yeah that's a good point yeah i guess you're looking
for for evidence that they've thought deeply about stuff so um i've got like a dozen other
questions and i'll just i'll probably leave a note on our twitter page about uh this article
that i wrote on the topic that's got like a whole bunch of questions it's like a laundry list you
can print out and bring with you to a job interview to look for a lot of this stuff so
it's a really long topic i could literally talk about this for hours
and you will right now for the next few hours just kidding i hope you have a long commute
i think that's a signal that we're gonna leave some of that to to readers to pick up later and
move on to the next question right i think so okay do you want to do you want to read this one dave
Yes.
Oh, so today is a day of short questions.
So today's question, the second question is also very short.
Stated simply, I don't get enough done at work.
Oh, and there's a follow-on.
Yeah, there's a little more description.
Yeah, let me read that again.
I don't get enough done at work.
I work on a small team that has some aggressive plans for building a product.
This product is very important to the company, but it is also large in scope.
I feel like I'm never getting enough done at work.
How can I be more efficient and productive with my time?
well have you considered typing faster like that's what maybe take a maybe change or change
editors every couple days to find the editor that makes you the most productive yeah or devorek
keyboard yeah i've heard devorek can help you a lot i've heard that um getting one of those
keyboards that's like curved and three hundred dollars i think those are also important
oh and if that doesn't work there are other keyboards you can try as well that might help
you go faster uh before you i know james and you have some great answers to this but i gotta say
that when james and i were talking about this question earlier this morning i uh i said i don't
have a problem with this and then i spent the morning thinking about my life oh my gosh i'm
so much denial i have all these problems um i was like i don't have any experience with this
so not true that sounds like the kind of thing that mere humans struggle with once you've ascended to
the dave plane of existence you leave that that petty stuff behind one does not suffer
one always gets more done at work than one plans uh yeah this is this is a big one i say that about
every question i'm gonna stop saying that that's forbidden they're all um i think the fact that
you're asking this reflects that you have a desire to improve which is cool yeah um congratulations
for me i think that there can be uh maybe two main ways to divide up maybe performance or
efficiency issues and one is like a motivation problem and one is a more tactical problem so i
it's tactical or strategic maybe all right uh the strategic stuff is like burnout or feeling
overwhelmed or a lack of direction or things like that or boredom like i'm not challenged yeah
yeah to me there's definitely a sweet spot of where something is challenging and will will make
you grow and you'll have to stretch to get it done but it's not overwhelming like there's no way you
could comprehend ever accomplishing this and and if you stray too far to the boring end or to the
overwhelming end of that it can be hard to be productive um so if if you're bored uh just
throw in a new framework and spice it up a little bit no if you're bored you can you can do things
to find more motivation um if you are overwhelmed then you probably need to talk to somebody about
maybe getting some technical direction or finding ways to break the scope down a little bit or
i actually think in both those cases you could talk to someone um if you're bored your boss
needs to be the person to know that like hey i'm not being challenged can you give me something
harder more challenging what if the boss is like cool do this in half the time then and then
i got an idea do your same job in less time yeah why don't you just work faster that's challenging
right i would i would hopefully not respond that way but i do think though that you owe it to your
leadership to let them know like you're not getting your full potential out of me and i could do i
could be doing more if you gave me a more challenging assignment yeah and hopefully
they'll know that doesn't just mean accelerate your current pace and now you're challenged
that's challenging but not always in the best way yeah um but the the like burnout and overwhelming
thing though i i definitely feel like if you work for a good team that you'll have lots of people
willing to help you with that definitely um i guess you can it can be worrying you can feel
like you're admitting weakness where yes you're you're revealing that you're not as competent as
people think you are or something but i think that's uh i think people respond pretty well to
to those like human moments when when you're not if you do it when like the day before the deadline
like uh this actually turned out to be hard and i didn't do anything because i was stressed out
then people probably won't respond very well yeah you do need to nip this in the bud quickly you
certainly don't want to let it sit for too long yeah but if if you know that you're going to
struggle with this and just ask for help i think people will respond pretty well to that they can
they can also be a little dismissive because it's like you know it's like we'll just do it you know
and i've seen that go down and then that can can generate like a shame spiral where you're like
well i tried talking to them and it didn't work and you know yeah so that can be hard um i have
seen that happen but i think generally though you're right people are supportive and want to
be helpful yeah um so that's kind of the strategic level like get your motivation worked out and then
the tactical level is like how much time are you spending in meetings are you being distracted by
the environment you work in an open office plan and you just hear the conversation and like go
over towards where it is all the time do you yak shave a lot do you like tweak your linting rules
and then go update the whole code base to match the new rules or something like that
not that i would ever do that or ever have do you have aggressive calendar slack and email
notification settings that are constantly popping up oh yeah do you have to make that number go down
yep yeah do you do you have personal interactions like do you have facebook and other things
you know open all the time that you're constantly checking on like do you have muscle memory i would
say that takes you to social media or your youtube channel or whatever it is you know yeah and i would
say put in place aggressive barriers to keep that stuff out of your face when you're supposed to be
focused and productive some of this stuff makes me feel so bad that we're so spoiled like if you
were working in a factory and you're like let me just take half an hour out to check my facebook
it nope fired right yep but but we're like oh i'm feeling a little down at work today i just need to
recharge and then you like go play super smash brothers for four hours or something i don't know
yeah we are yes we live in just the golden age of privilege it is incredible yeah uh but don't
don't go play super smash brothers for four hours because that probably is not a good use of your
time unless you're the developer building super smash brothers yeah that's true in which case
It'd probably be hard to be pretty productive.
Actually, no, I want to, hmm, hmm, hmm.
I want to push back on the thing I just said.
Because there's the whole idea of like the shower epiphany, right?
Where doing something else besides just sitting and staring at your computer
can often help solve a tricky problem that you're stuck on.
I have found that for me, playing video games just turns my brain off completely,
including the subconscious part that's supposed to be stimulated.
Okay.
I'm sure for some people that works fine.
So it only happens in the shower.
yeah literally go take a shower okay which is why you have a cubicle slash shower so i have a funny
story about this not okay not about showers when i first got out of college for the first seven or
eight years actually out of college i was working in programming jobs where i literally was required
to track my time to the six minute interval and we had to put in like a time sheet tenths of an
hour yes one-tenth of an hour okay that's why six every day we had to fill out the sheet to say what
projects did you work on how many hours did you work on it and it was the kind of job where you
you had to hit this certain number is 40 hours of time every week it's because we were contractors
and so we were all very cognizant of the time we were spending on things that were not like
obviously billable work and i as a result of those seven or eight years in this practice i
got pretty good at not being distracted at work like i was pretty much focused because i like i
had this countdown going and i thought to myself as soon as i hit 40 i can go home you know like
i'm out of here um and uh and so i left early on fridays a lot and stuff like that but anyway
i think that really helped like being able to track that and so i hated it i absolutely hated
tracking my time like that but i think at the same time it developed a sense of work when you're at
work play when you're not at work in my own mind if if you have never tracked where each minute
goes in the workday you should try it at least once because it is revelatory it is and i've got
this tool called rescue time i was just gonna say rescue are you a user of rescue time i have used
it and and then i stopped because it made me feel bad depressing yeah well i've been using it for
two a couple years now and what it does is it it runs on your mac and it tracks your windows like
what application is in the forefront and the window title so if you're like on a web page it
knows what page you're on uh if you're like using a terminal it knows you're doing that and you can
categorize how your time is spent and i was amazed at how many hours i spent every week on my laptop
you know it was a lot and that it doesn't even count time spent on my phone which i also spent
a lot of time doing but the other really insightful thing is it told me like all right you spent like
five hours watching netflix this week like that's ridiculous to me like that for me that was just
like oh my gosh that's so much time yeah but it also tells you like you spent this much time in
vim this much time on your web app that you're building and that all counts as like development
time and that was really cool to keep track of so yeah i highly recommend it yep um so so that's
kind of the broad level what are you focusing on what are you spending your time on and then there
might be one more level to that which is uh how how important are the things you're focusing your
time on because you can be in vim all day and yep get a lot of stuff done and have it not be useful
at all for the product absolutely um so how do you deal with that problem to make sure so say
you're working hard you're not really distracted you're motivated uh how do you make sure that
you're you're working on the the things that will push the product forward the most
or whatever your your development goal is
i don't do that i just do linter stuff okay
chief linting officer my code base is literally nothing more than
es lint rc files just a bunch of examples of violations
oh man this really gets to the crux of it though your question this is really hard to answer and
for me and my teams an effective daily stand-up meeting is how i do that because i found that
talking to the rest of the team and reminding each other about what we're supposed to be working on
and what's most important that is uh how i do it i've never been able to really do it on my own
um and keep track of it and i've never been in a place where i've needed to like in a freelance
job or like you know self-employed yeah i uh
I think that makes a lot of sense where I guess it depends on your ability to,
to honestly say what kinds of things you've been spending your time on.
Yeah.
Maybe just the feeling though,
like what did I do yesterday?
Oh,
I did.
And then you like shudder a little bit.
Cause you realize that you didn't get anything useful done.
Maybe that's the thing you need to respond to rather than telling the team
team.
i got nothing done i don't know i don't know either but i i know every tracker that i've
used like to-do trackers and rescue time and stuff like that i've never really um
i've never really had one that says keep help me keep track of my to-do list and also help me mark
like the importance level of the things i need to do yeah which i think would be really cool
A thing that I started doing a few months ago was keeping like a developer diary, where it's where I write down just those random technical things that you learn, like, oh, here's how you do this weird thing in SAS that I had to Google. But it's also it turned it's turned into a way to plan out my day. Or when I start up my workday, I pull up in the diary, type in here's the stuff I want to get done. And then I type in all my notes and stuff. And then at the end of the day, I look back at it and look at what I got done.
and sometimes there's a legitimate reason like oh there's a fire in prod or this new feature
request came up but that's that's really helpful um to for me to try and keep myself on track when
i do that well one of the things that some of my team members have done is they'll send me like a
weekly email just as their manager they'll say hey i want to send you a weekly email and just say
some of my accomplishments and um that gives them a chance to reflect like you're saying
and be accountable too because they'll say things like next week i want to achieve x you know and
they'll write that down out loud and uh i'll read it and respond every week like hey great job you
know i saw this and that and have you looked into this and i try to be engaged with them so that
they feel like it's a dialogue and that they're actually being accountable instead of just like
doing almost like rubber ducky status reports you know like you've heard of rubber ducky debugging
um i think that i think that can be pretty helpful too but again it's deeply personal
yeah like different people will have very different styles that work for them yeah but the
it seems like the broad messages are um take care of your your motivation make sure that you're not
wasting time and then have some way of checking up on your progress i guess on things that you
want to accomplish is that a good way to summarize it do you think i think so i think so cool and i
wanted to go back just a little bit to the tactical thing um because i have had a friend of
mine you know he was really struggling with this this has been a couple years and he said you know
what am i doing wrong i just can't get anything done i'm constantly working on like non-work stuff
at work and i said well tell me about your environment and and sure enough he had all
these like alerts set up to be notified when things happen in his personal life messages
from friends from family and uh you know even just like open source projects that he was
participating in those notifications were coming in in real time um and so basically he showed up
at work and surrounded himself with non-work distractions and then spent the whole day
being distracted and then at the end of the day feeling frustrated with himself and so
his solution i think was really tactical it was look just shut all that stuff down and have a
clear separation of personal and work at least for a good chunk of the day if not the whole day while
you're at work and then set aside time to make to make those things happen so you don't you know
because that's important to a lot of people and they they want to participate in that maybe it's
lunch hour maybe it's evenings maybe it's mornings um but his solution i think was really
tactical and i think we could all do with that it's nice to just once in a while step back and
say all right what's all the crap that's getting in my face every day yeah you know yeah cool
well we have answered the question oh yeah now you will get enough done at work yeah having just
listened to this episode you will be fine but do not listen to this episode at work instead of
getting stuff done you've only fallen further behind oh no great well i think that about wraps
up the episode where can people find out more about our show they can follow the twitter account
at soft skills eng um that's where we'll post announcements about the show we'll have links
on there to all the different places where you can listen uh you've clearly found it already
somehow but congratulations yeah you have arrived if you want to find it in a different way then
check out check out there and then if you have questions that you want us to answer on the show
you can uh you can send them to us there we'll actually we'll open up the dm so anyone can dm
us if you don't want it to be public yeah absolutely um and then we'll we'll make sure
to respect your privacy and not shout your name out loud to our literally millions of listeners
literally millions times 10 to the negative seventh power yes we uh now we should take
the next 30 minutes uh for our sponsors oh wait oh wait we don't have any sponsors shout out to uh
my parents sponsoring my life but the powder mcbiscuits a few years yeah great i i think
that means we're done all right we'll catch you next week thank you bye everyone see ya
