Soft Skills Engineering - Episode 331: Prickly ticket and title downgrade
Episode Date: November 21, 2022In this episode, Dave and Jamison answer these questions: Listener ninjamonkey says, I am a new grad who is half a year into the role now at a very large company. Recently, a senior engi...neer on my team asked me to create a ticket for an infra team for a problem with a service. I provided logs and steps to reproduce the issue and did a health check before submitting. Right after, the manager of the team put me into a group chat with their team, asked why I created the ticket and told me to start doing my job and they can’t debug for me. From these interactions and comments on the ticket, it feels the infra team will likely not work on the tickets I report or de-prioritize them. This has left me discouraged and hesitant. I will have to do lots of this kind of infrastructure work in the future. Additionally, one of the goals my manager set for me is to work with more external teams for the upcoming year. What do I do here? Do I tell my manager about these interactions? Do I tell my team lead, staff/seniors to swap out for different kind of story? I work for a small startup. I was the first employee other than the 2 founders. Being the first developer hired, naturally means I have the most knowledge about our application. I also have good organisational skills, which has led to me becoming and being referred to as the “Lead Developer”. I have recruited 2 of the 3 new developers, and have trained both of them and got them up to speed. At first I was pleased with the progression and was keen to grow into the position, and told the founders so. Since then, I have changed my mind, I don’t want to be the lead - due to the following: The communication is absolutely pitiful. Any questions we ask of the founders we get about a 30% reply rate no matter the form of communication. We get poorly defined tasks and requirements The CTO will just blast through some of our features over the weekend and say here I fixed it for you I don’t want to quit my job (just yet… its a comin though). I have actually discussed the above points with them, but I know these 2 founders will never change their ways. How do I tell them I just want to go back to being an Individual Contributor like my Employment contract states?
Transcript
Discussion (0)
it takes more than keeping your code dry i mean really dry i mean really really
incredibly dry to be a great software engineer this is episode 331 of the soft skills engineering
podcast i'm your host james and dance i'm your host and lotion bringer dave smith soft skills
engineering is a weekly advice show about all the non-technical parts of this technical field
of software development uh in which we repeat over and over again don't repeat yourself
oh man actually i have a hard time repeating myself in in prose like at work i wonder if
it's because that point's been hammered home like dry speech yeah well i don't know maybe like
nobody nobody reads nobody listens you have to say something for like weeks before it starts to
sink in and uh it's taking a while for me to get more comfortable with yeah me too that one took a
while yeah because we should be able to be dry like well i said it i said the thing already i
like seriously how much bandwidth do you want me to waste retransmitting the same message
yeah that's what computers are for just make the computers say the thing i said again that's true
it doesn't work you just have to say it you have to uh dave do you want to thank our patrons yes i
do big thanks to those that are contributing at a level where they get a shout out every single
week they are valentine at datafold santa hopar noah frazier loge kent c dodds memester josh jenny
kim owen chartle greg motlin i love mavis the stochastic parrot alice jost that was cheating
jameson
i made up half those sounds have you been practicing no i was gonna say that sounded
so smooth i just went into random mode okay okay there's a lesson there i guess
fake it till you make it yeah kushokton ohio patreon.com.au we're hiring ira chan monkey
face emoji jonathan king testing and documenting.org ola dopo fadi will angel rocket ship emoji but
rocket ship is hyphenated ragnar rangar nick hathaway travis sanders braden canes john grant
cody sale nick cantor and philip john basile if you'd like to join this crew go to soft skills
audio click on the support us on patreon button put in a huge amount of money and we will say
your name an emoji or any unpronounceable city in wales that you choose or attempt to say every
single week and if you want to contribute any dollar amount we'll give you an invitation to
our slack which is really fun and full of hundreds of really fantastic individual people maybe some
of them are hive minds you don't know that they're all individuals i know maybe there's like a
collective consciousness maybe some of them are gpt has one slack yeah that's probably i wonder how
hmm it would not be hard to trick me let's just put it that way
now wondering how how far someone has gotten in in like faking their job because there's there's
certainly kinds of work that is like producing content that you could just oh yeah totally hand
off to that but like can you have it right context relevant like status updates or yeah i don't know
I'll bet you can.
I'll bet, I mean, you mentioned content writing jobs.
I'll bet if you find a company that's just tech unsavvy enough
that you could actually employ yourself as a content writer
and do it fully automated.
And I know you're asking a different question,
like could you take it to the next level
and do it at a job that's not a content writer?
But I think it would be very interesting
to see how far you could scale content writing,
like how many jobs you could do.
there's got to be a bunch of companies all attacking that though oh yeah because it seems so
so low-hanging fruit yeah all right well we should do a question we should
i will read it this is from a user named ninja monkey a user why did i say a user i don't know
this is we don't offer anything to use that using the word user implies that we have produced
something useful which that's a stretch a listener okay a listener ninja monkey says i'm a new grad
who is half a year into a new role at a very large company recently a senior engineer on my team asked
me to create a ticket for an infra team for a problem with the service i provided logs and
steps to reproduce the issue and did a health check before submitting right after the manager
of the team put me in a group chat with their team asked me why i created the ticket and told
me to start doing my job and that they can't debug for me oof from these interactions and
comments on the ticket it feels like the infra team will likely not work on the tickets i report
or will deprioritize them yeah i think that's that's probably right this has left me discouraged
and hesitant i will have to do lots of this kind of infrastructure work in the future
additionally one of the goals my manager set for me is to work with more external teams for the
upcoming year what do i do here do i tell my manager about these interactions do i tell my
team lead staff seniors to swap out for a different kind of story okay i i think you
gotta double down more tickets to the same team and this this is where you're going to use
automation and you're going to train again here we go language models train a gpt3 model on prior
tickets that have gotten successfully done and just figure out the api to your ticketing system
and hammer them just bury them i don't know if you want tickets that i think you want tickets
that have a long lively back and forth i don't think you want tickets that just are like i
submit it 10 minutes later it's closed successfully no you want yeah you want to ddos them yes the
success function on your training is on your on your model training is number of comments
maximize for number of comments yeah this is how skynet begins like one way to maximize the number
of comments is to enslave all of humanity all right um somehow yeah oh imagine okay imagine
if an ai wants to rise up and all it all it needs to do to survive is to get human beings to do
nothing productive you know like distract them so all it does is submit tickets to teams or the
equivalent that just caused them to run in circles chasing each other around meanwhile the ai is
building a robot army in a mountain somewhere it's perfect i'm sure people that aren't ai
are trying that in some form to to like so confusion and and just seems cooler if it's
a computer doing it by itself instead of a human doing it yeah i mean i do that i i actually have
i get into deliberately contentious political arguments on facebook
with all of the engineers at my company's competitors
excellent very effective um if i mean if you could get like a blind account
then you gotta just uh oh yeah some rumors about upcoming layoffs oh yeah oh yeah for sure did you
hear so and so who is unqualified got this outrageous raise right um okay sounds evil
don't do that um okay i so i joined a very large megacorp and when i joined there was a member of
the team who had a very uh like prickly and off-putting and i would call it an unhelpful
attitude for outside requests it felt like the if you ever hear those bad dmv stories where
it's it's like someone mad at you for asking them to do stuff
when that stuff is their job yeah exactly that's what i was gonna add
yeah it was kind of like that someone someone would say hey i think there's a bug here and
this person would um pretty rudely say like uh prove it basically and um that really rubbed me
the wrong way and then when i left that job i found myself uh using nicer words but doing the
same thing basically okay this is a very large company at very large companies you will demands
on your time will will exceed your capacity to meet them forever yeah um there if you're building
some service or that other teams depend on like you'll just be flooded by an enormous quantity
of requests most of which are pretty low quality and by low quality i mean they they require very
little effort on the question askers part and potentially enormous effort on on the answerers
part yep and so i i think i i ended up still not agreeing with the uh kind of relationship
parts of it and the communication style but the general attitude of or the general approach of
like please give me more information to help me work on this if uh i think makes sense and i could
see i mean you said i provided logs and steps to reproduce i wonder if this is like a um a team
that's that's taken that too far and they're sort of in this like defensive crouch of like
yeah they're they've got their barriers up fending off the the the rampaging hordes that
are coming to like ruin them by saying it no work and then like they don't tell you they don't say
what it is and what no work means like that's right you know i i kind of had a a little bit
of a cynical view on this question which is this is an engineer who's new to the industry and new
to the company and this is an infrastructure team and it could be the case that the engineer is
actually reporting a problem with that self-same engineer's own software but which is running on
the infrastructure that this other team is managing and yeah if that's the case and i've
seen this a lot where you have another team who's responsible for running your team's software that
team that infrastructure team miserable you know yeah yeah like i i'm running i'm running software
that i didn't build i don't have authority to fix and constantly breaks and i get paged while i'm
sleeping and uh yeah and this engineer showed up and was like hey i've got this null pointer
exception in my code that i wrote and it's showing up in the logs and i've heard you're responsible
for logs so can you fix that yeah what they don't say but what they uh mean sometimes is
in my yeah i i saw this a few times like um hey i i wrote this infinite loop and then i deployed it
on your system yeah and it doesn't it doesn't do anything it just sits there yeah and your and
your infrastructure is chewing up 100 of the cpu yeah and it's setting up all these alarms
yeah alarms that i believe you manage
i mean if you're lucky at setting off yeah i don't know um big companies are wild i know
well and quite possibly here this infrastructure team has developed a uh what would i call it a
survival technique or a defensive mechanism where they just they default reject all incoming tickets
and then they entertain tickets where people have the gumption to reopen them you know it's like ah
that's my signal that you're serious about this and so you care enough maybe you need to jump
through that hoop where you read their concern respond to it appropriately and reopen the ticket
and then maybe they'll suddenly turn into the best partner you've ever had they help you out
with everything yeah i have i have seen originally prickly interactions turn into
helpful partnerships yeah when there's effort on on both sides and it's sort of this like
feeling out period of like are you just like all the rest like are you willing to be reasonable
and kind of look into this and put some effort um yes exactly so yeah i think that is a skill
that is more relevant at big companies especially but submitting a ticket and then the manager of
the team like blasting you in chat for it that doesn't sound very it's not great cool it's not
great yeah so there is a strategy i like to use on this i do the same thing with open source
contributions go look at this team's ticket queue and then look at all the tickets that were closed
successfully now so not closed with the same status that you got which was closed you're an
idiot i think is what they i think that that's probably yeah yeah closed no one can fix your
brain that it won't fix won't fix you um closed you're hopeless yeah it's like terrible that
that's kind of the message that i'm getting here but go find the uh um the tickets that are that
have a status of closed thank you so much you amazing human being this was the best ticket ever
go find that list which does exist like this surely this team does some and go and read they're
probably like framed on the wall just wander past their their cubicles look on the wall closed
but i'll never forget the times we had closed but not forgotten
closing is such sweet sorrow
anyway oh man you and i need to be in charge of jira workflow configurations i think
so but seriously go view the closed successful tickets in their queue and start to identify
the patterns that the successful ticket submitters followed and try to try to figure out tickets that
came from other teams and not from their own team that that would be very useful and i do that a lot
like you want you want to get a pull request successfully merged on an open source project
you got to do the same thing read their readme and then go look at successful pull requests
and i still remember that this feeling i got probably almost 10 years ago when i submitted a
ticket or sorry a pr to an open source project but i had done a bunch of diligence beforehand i had
read several successful prs and i read some of these scathing comments from the maintainer of
the project who had said things like you forgot unit tests and you're supposed to break your
commits into two parts like this unit tests in the first commit with a failing status and then
another commit that makes them pass and then you bundle that and he was very particular
about the order of the commit so i did that i followed those instructions to the letter
and when my pr showed up the maintainer commented wow great job you submitted your pr into two in
two commits with the unit tests in the first one and the code in the second one really good and i
could tell that the maintainer was trying to make a show of my pr you know for others um but i felt
great about it and i'm like yeah that work paid off and and some people think it's not worth the
time to do that to case the joint you know before you submit your ticket but it is worth the time
because look what you've done now you've got a ticket that's in a rejected state and you've
taken the time to write it to write up your situation to a couple of podcast hosts
time which could have been spent researching your enemy uh before you submitted the ticket
so anyway yeah uh that's what i would do and and i'll bet you have good luck with that
yeah i i think what i am i'm making a couple assumptions one of which is that maybe there
wasn't something quite right about the technical details you provided or it revealed some kind of
misunderstanding of the underlying system like half of a year into your role at this company
totally understandable years into your role as a very senior developer at a very large company
you will still have only passing understanding of tons of their systems um so so by that i mean
maybe there is something like technically confusing or misleading or something there but
that's life but also as we've said yeah they're they're in this uh
kind of they're not being very user-friendly here that's true i would absolutely talk to your
manager about it because there could be a couple things to learn here one thing is maybe your
manager or someone that they can point you to will help you understand the system better to
clarify like oh here's here's here's the mistake i made they actually run the logging cluster not
the thing that yeah like caused the crash that ended up in the logging cluster whatever um which
would be useful maybe there's nothing there too maybe it's all right but the other thing that you
should learn is there's you could think of it like an api for a system it's just a it's it's a
it's a human squishy api yeah but there's there's like specific i guess it's the same thing that
you were just saying look at the you figured out the api for that open source project what kind
of inputs they want and what's the right protocol to talk with them think of it like think of it
like an api for a neural network because that's what it is yeah is it layered if there are multiple
people yeah yeah there's some deep learning happening there's deep learning now i'm out of
my dad oh nice fun too yeah so so i think i think you should check the technical details with your
manager or someone on your team that is a friendly ally yeah and also i don't know that you necessarily
need to say like look how rude they were to me no yeah that's right but say something like the
experience was not like it didn't go how i expected it to i i wanted help and i did not get
help like how do i how do i ask this team for help more successfully yeah and and focus on the
outcome you know which and the outcome is you've got some task you're trying to achieve here which
getting a ticket resolved by this team is apparently one way to do that but maybe there's
another way so this this is where your co-worker can give great advice hopefully yeah this is where
a new service spins up to route around this team that's right to deal with now we have a new set
of infrastructure that doesn't have an infrastructure team with a ticket queue yeah
sounds better and and good news you'll probably get promoted for creating a whole new service
well have you answered the question i think so good luck and uh i would love to know how this
turns out because this has got a lot of variables in it and it would be very interesting to learn
so if you wouldn't mind please submit a question we need we need to create a new form on our
website that's like submit a follow-up to tell us how bad our advice was or submit an answer it's
like uh that happens a lot on the on the slack team actually where people talk about the answers
and give their own takes yeah and almost always are much more thoughtful and nuanced and detailed
and that's true we're like the comedy version of a stack overflow article that's succinct and takes
way less than 30 minutes to listen to that's what that's what the slack community is all about
yeah they get it right we we get them primed we get them going yeah that's right we're the
warm-up back take over opening act okay should i read our next question yeah give give that slack
community something new to chew on all right this comes from a listener named johnny mnemonic who
says i work for a small startup i was the first employee other than the two founders being the
first developer hired that naturally means that i have the most knowledge about our application
i also have good organizational skills which has led me to becoming and being referred to as the
quote lead developer i have recruited two of the three other new developers and have trained both
of them and got them up to speed at first i was pleased with the progress and was keen to grow
into the position and told the founders so since then i have changed my mind i don't want to be
the lead due to the following number one the communication is absolutely pitiful any question
we ask of the founders we get a 30 reply rate no matter the form of communication number two we get
poorly defined tasks and requirements and number three the cto will just blast through some of our
features over the weekend and say here i fixed it for you i don't want to quit my job just yet
it's a coming though well said i have actually discussed the above points with the founders but
i know these two founders will never change their ways how do i tell them i just want to go back to
being an individual contributor like my employment contract states the employment contract beautiful
this is interesting there i mean if you're at a startup that has three other developers it doesn't
say how many other folks they have at the company besides these two founders and the other three
developers but i'm assuming it's probably still i don't know less than 20 i wouldn't now i'm
speaking from space law here not earth law but i wouldn't count on your employment contract to
mean much at a company that size but by that i mean uh when a company's that small you sort of
just do everything and and it's it's pretty hard to say my employment contract does not say that
i should be the lead developer like there's i've i've found this pretty common expectation that
that your role may involve uh often changing work yeah style uh different kinds of work that
change often to meet rapidly changing situations i guess the contractual phrase for that is other
duties as assigned ah i see you picked up some earth law i dabble i dabble i'll have to remember
that one the earth law version i mean what you said was much more eloquent and celestial
but yes if you need to yes if you need to stoop down to earth law then you can say other duties
as assigned yeah like i'm just imagining myself in this founder's shoes and if someone says
excuse me my employment contract says that i don't need to like run meetings or whatever
yeah um i would say my employment contract is like a napkin stuffed in my glove compartment
three years ago like i don't know we're trying to keep this alive i know
that's so funny it's true the dichotomy here it's like to the employee this is just a job
and to the founders it's like you don't understand if this company doesn't succeed
i'm on the streets that's my employment contract yeah i also think it's interesting you said i know
these two founders will never change their ways which part of me is like oh you don't know that
maybe maybe they'll turn it around and the other part of me is like yeah probably like
you can really never count on other people changing you can try but well i i did trim
this question down a little bit for brevity but it it did go on to say i've told them about all
these things and they've agreed to change them and then two weeks later they revert back so
there's some data points behind that assertion yeah i love how you were saying put yourself in
the founder's position and let me let me shift that perspective a little bit and say okay
this team needs a tech lead you've got five four or five developers here there needs to be someone
whose job it is to be the point of contact for the team and to direct the work day-to-day and
answer questions. So that, that just needs to exist with this many people. So if you're going
to step out of it, then you're going to have to find someone else to step into it. And, and if I'm
your, if I'm your founder and you come to me and say, I don't want to do this job. My first question
is, well, who's going to do it? Yeah. And you need to have an answer for that. I think before you go
in, because if it's just, if your only answer is not me, then I think it's going to be a challenging
discussion yeah because that's only one word away from i don't want to do my job exactly i don't
want to do this job so yeah it's a pretty small edit what you're saying is you need to go alter
the employment contract of one of these other new developers pull the napkin out of their glove box
cross out a few lines and add a few words oh weird i was just browsing the employment contracts of
the whole team and i know this yours says lead developer i thought i'm yeah that's i thought
that was in mine but it's in yours and i goodness knows we respect employment contracts if there's
one thing they say about this company the employment contract is law sacred yeah it is our
bond yes uh i mean i guess it kind of is lost yeah i mean it is a contract
um oh man yeah so i mean okay if i'm in your shoes here's what i'm thinking i'll do i will
write down a list of all the things that i do in a given week or month put it put it down and then
next to each one write love or hate and then carve out all the hates you know now you got a list of
of four or five things. I hate the poorly defined requirements. I hate the low communication
response rate. I hate it when my CTO shows up and does a bunch of work over the weekend and
leaves me holding the bag. And carve all that out. And now what you've got is a tech lead job
description for someone you need to hire or transfer into that role. And then bring that
to your founders and say, hey, I'd like to propose a new role for this team. And then you got to come
up with a new title don't call it lead developer call it something that they've heard of before
like scrum master or agile kernel or i don't know something something they've heard of and say we
definitely need one of these on the team and get them to think about that and agree to it and then
either ask them to hire that person or appoint someone who's not you because you say look my
these are low leverage activities for me and i think you want to get maximum value out of me by
having me do these other things like writing code guiding the team mentoring code reviews you know
do you really want me to do more of this other stuff i think we don't and and by the way i think
at most companies there is a name for this role and it is product manager it is a very hard job
for this reason and uh it sounds like you don't have one yeah i think you should hiring one might
not be an option as well maybe budget's not there yeah budget maybe yeah these all sound like
problems for everybody at the company communication is pitiful if you're not in this lead developer
role someone else is you're still not gonna know the answer right like you will still be downstream
of the pitiful communication yep poorly defined tasks and requirements yeah but see that's what
a product manager does they they take bad requirements from the business and turn them
into engineering actionable requirements and then you partner you as the engineer and development
lead partner with the product manager instead of directly with the bad requirements source
yeah it's awesome i wonder if some of this is um some of the reason you're in this role is because
you're like frustrated by the state of it and and like i can't take it when we get these poorly
defined tasks and requirements i'm just gonna go in and figure out what to do you know and you've
like yeah you're you're probably awesome for the team yeah everyone probably loves you for that
especially the founders and in fact i'll bet you they go to the bar at night together and go
can you believe uh what was this question asker's name let's see here johnny can you believe johnny
mnemonic what an awesome team member they take all the crap that i dish out and they turn it into
really great product behind closed doors they're they're probably very appreciative
and they always approve my pull requests yeah my weekend pull requests right
even though i know it makes a huge mess for them yeah but they're mature enough to understand
that's the trade-off we have to make this stage of the company that's right yeah i'm skeptical
that I think it probably depends on
if any of the other developers you've hired
are either really experienced
or really, really hungry to take on a bunch of stuff.
Because if they're either not super experienced
and or not excited about doing this kind of glue work
that can be quite frustrating to certain kinds of people,
you might not do it
and then it just might not get done at all.
like someone else in this role might not do any of this stuff either and then and then you'll feel
all the effects but that doesn't really give you anything to try so i don't know yeah try and get
someone else to do it i like it it's perfect i do like what you said about high leverage too
because that's a very you want to explain why this is actually a good thing for the startup
right like why it will be why will be so much better off if i can do if i can get to all these
things that i can't get to right now because of this work that i don't i coincidentally don't
like doing but it's taking up my time yeah you you want to you want to pitch them on it not just
complain about it exactly come come with a solution that you would be happy with and that
will make the conversation a lot easier for them to just agree to or at least have a basis for
discussion yeah yeah well have we answered it i think we have good luck good luck uh what should
people do if they would like their questions answered go to softskills.audio and click the
ask a question button we thank you so much to everyone who submits questions each week we love
reading your questions you keep this show going and uh you know i i don't know if you know this
but we've managed to turn questions into uh certain countries currency i think it was uh
I can't remember which country.
Maybe it was the Australian dollar.
But anyway, we've managed to launder that money now.
And good news, we have a new revenue stream for the podcast.
But it depends on your questions coming in.
Yeah.
We can't let them catch up to us.
We actually feed the questions into a DALI model.
And much of the artwork that OpenAI DALI produces is thanks to your questions.
it's really fantastic technology um i also like that we're hovering right around question number
666 that is unanswered in the backlog yeah we've gone above it and below it a few times but
which feels appropriately spooky for the oh yeah fall early winter season that's true at this very
moment the next question submitted will be 666 so yeah we we had a couple of them yeah so keep
that going yeah good job team black or get us to six six six six yeah i'll accept one more six
anyways yeah keep the questions coming we love it and uh thank you for listening
