Soft Skills Engineering - Episode 331: Prickly ticket and title downgrade

Episode Date: November 21, 2022

In 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)
Starting point is 00:00:00 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
Starting point is 00:00:56 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
Starting point is 00:01:42 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
Starting point is 00:02:24 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
Starting point is 00:03:18 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
Starting point is 00:03:48 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
Starting point is 00:04:22 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
Starting point is 00:05:07 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
Starting point is 00:05:56 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
Starting point is 00:06:49 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
Starting point is 00:07:49 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
Starting point is 00:08:57 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
Starting point is 00:09:47 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
Starting point is 00:10:40 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
Starting point is 00:11:33 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
Starting point is 00:12:28 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
Starting point is 00:13:20 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
Starting point is 00:14:05 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
Starting point is 00:14:53 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
Starting point is 00:15:30 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
Starting point is 00:16:13 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
Starting point is 00:16:57 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
Starting point is 00:17:49 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
Starting point is 00:18:46 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
Starting point is 00:19:35 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
Starting point is 00:20:18 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
Starting point is 00:21:01 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
Starting point is 00:21:51 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
Starting point is 00:22:44 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
Starting point is 00:23:38 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
Starting point is 00:24:21 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
Starting point is 00:25:05 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
Starting point is 00:26:01 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
Starting point is 00:26:51 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
Starting point is 00:27:40 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
Starting point is 00:28:30 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
Starting point is 00:29:15 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
Starting point is 00:29:49 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
Starting point is 00:30:25 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
Starting point is 00:31:12 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.
Starting point is 00:31:35 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
Starting point is 00:32:24 anyways yeah keep the questions coming we love it and uh thank you for listening

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.