Soft Skills Engineering - Episode 299: Neophyte estimates and forced framework

Episode Date: April 11, 2022

In this episode, Dave and Jamison answer these questions: I’m a new team leader running a new project and when asked for a delivery date I gave my best guess (noob!). That date is at hand, ...our project is not. I gave a new delivery date and you guessed it, it’s later than the date I said way back when. I presented this new date to my boss, but he wants us to deploy what we have now… even though if we deployed what we have now the business’s cash flow would ignite tearing our collective hopes and dreams asunder. I told him this, in those words, and he said (with a knowing look) “ahhh, you’ve got to play the game, you have a reputation to protect”. I said I’d prefer a reputation of honesty, accuracy and improvement. He said he was talking about his reputation. His other teams consistently miss delivery dates, so I’d guess he has a reputation of missing delivery dates. I’d love to share my more accurate date, but that now feels like going behind his back, but if I don’t go behind his back - I’m going to get stabbed in my front. For now I’ve settled on putting my new date in confluence so I can use it as a shield when the inquisition comes. Dave, Jamison, what would you do and why? A parallel team has sold our VP on their internal framework, and has the VP convinced all other groups in his org should become dependent on it as a multi-app, multi-platform solution. Their framework is very buggy and they are very slow to acknowledge and fix bugs. They claim that due to the overwhelming amount of users/adopters of their framework, they can’t look at bugs, or that other projects take priority. This blocks our development. No one except them wanted to use their product, and somehow they used forced widespread adoption to avoid responsibility for missing their deadlines. This group has magnificent soft skills that have allowed them to evade being accountable for their issues. This team is a darling to the VP, so they are immune to accepting our feedback for the points I listed in the above question. How can we, who are multiple levels removed from this VP, improve our situation? Our group enjoys working together and on our product, so we don’t want to leave. We just want to find a way to become more tolerant of this other underperforming team. Show Notes https://www.hillelwayne.com/post/we-are-not-special/

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than pressing ctrl c repeatedly to kill a fork bomb and then having to power cycle your computer to be a great engineer this is soft skills engineering episode 299 and i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into this lovely field that has strange metaphors for names of misbehaving software like fork bomb do you think if you did that in front of someone who wasn't an engineer they would think more of you or less of you if i did what if you if you fork bombed yourself on accident and then had to shut your computer off to fix it would they think more or less than me yeah i feel like they would they
Starting point is 00:00:52 would imagine some arcane sorcery had happened and you were you were wrestling with it i'm like frantically typing yeah instead of like you typed too many curly braces in your bash script or something i think they would think oh you turn it off and on again too yeah anytime something breaks a spell so powerful even the wisest of magicians use it it is a powerful spell it's amazing how bad we are it's amazing how bad software is at accumulating correct state over time you know it's so applicable at every level of abstraction too you can always count on good old turn it off and turn it on again in fact well i don't want to get too deep down this rat hole but i've even started i think there
Starting point is 00:01:43 are what is it airline it's like the entire programming language is based on this whole concept of turn it off and back on again oh that's true you're right yeah let it crash is really turn it off and on again and a lot of modern web services are built on this idea of like we have processes they handle requests but they only handle 25 before we turn them off and replace them with new ones it's like the ultimate memory leak fix yeah that was the standard rails technique like a decade ago longer than that actually a while ago yeah still is i think is it i mean i think well i don't know about rail the rails community as a whole but yeah like in python and ruby like all the tools i've seen they all have like a setting where you can say kill this process
Starting point is 00:02:25 after x number of requests but that's not what this is about no no not at all this episode is sponsored by ops level ops level makes shipping great software easier and you will hear more about them later so they i think what they specialize in is turning it off and on again as a service yeah turning it off and on again as a service t-i-o-o-a-a-s-t-u-s perfect it's like sass okay can i uh thank our wonderful patrons please we have one-time shout outs for owen shardle and help me i'm stuck in vim and weekly shout outs for craig motlin rum and code i love mavis the stochastic parrot alice joe jost or jost sorry sorry alice andrew pollock the yeet your job podcast ian walter arun duna patron.com.au we're hiring
Starting point is 00:03:19 ira chan monkey face emoji jonathan king testing is documenting.org rm rf prod ragnar artisan timmy garabrant nick hathaway travis sanders brayden canes john grant nick kantor and philip john basile if you would like to join this list of people and have us say whatever you want us to say within safe for work limits you can go to soft skills.audio and click the support us on patreon button if you give enough to make a material impact into jameson's yacht payment we will say your name on the air every week this is my yacht savings account you haven't bought it yet not yet still deciding i think one of these was trying to check to see
Starting point is 00:04:06 if there's a shell injection vulnerability in our podcast yeah yeah if we promise to copy and paste all of these into our terminal will you contribute more money that's yeah that's the unobtainium yeah for a million dollars i'll run whatever command you want yeah i think there's some nefarious actors who would love to talk to you then yes all right all right i'm gonna read our first question do it this is from an anonymous listener who says i'm a new team leader running a new project and when asked for a delivery date i gave my best guess noob that date is at hand our project is not i gave a new delivery date and you guessed it it's later than the date i said way back when i presented this new date to my boss
Starting point is 00:04:55 but he wants us to deploy what we have now even though if we deployed what we have now the business's cash flow would ignite tearing our collective hopes and dreams asunder i've told him this in those words and he said with a knowing look ah you've got to play the game you have a reputation to protect oh boy i said i prefer a reputation of honesty accuracy and improvement he said he was talking about his reputation his other teams consistently miss delivery dates so i'd guess he has a reputation of missing delivery dates it's my legacy yeah i'd love to share my more accurate date but that now feels like going behind his back
Starting point is 00:05:40 but if i don't go behind his back i'm going to get stabbed in my front for now i've settled on putting my new date in confluence so that i can use it as a shield when the inquisition comes dave jameson what would you do and why oh man this is one of the better better written questions that i've seen in a while very well done it's snappy uh-huh well you don't want to go behind his back and you put it in confluence which feels like the right thing to do because no one will ever see it right you just type it in there you've hidden it effectively it's a great way to hide information good solution yeah but you keep a reference to it so that you can secretly pull it out in the future which i think is what the question asker was referring to
Starting point is 00:06:28 it's ready to go when the inquisition comes what you really need to do so you can add a view tracking widget onto confluence pages i think maybe this is an add-on either way you can do that and then you expand it to see a list of all the people who have viewed the document and how many times and then you need to do like a cross-site request forgery attack on your boss or something to get his name to show up in that list so then you can say see you saw this date you looked at it and you didn't say anything you approved it implicitly yeah so i think what you're saying is you've got to move to blame deflection mode here where instead of now proactively conveying to the business the things that are coming up you now need to protect your job and make sure that your
Starting point is 00:07:15 boss's job assumes all the risk you protect your job with your boss's job right you've heard of yeah you've heard of human shields this is like a yes a role shield i guess i don't know i just feel like this is a giant company if it's not then it's a really bad small company like you have to play the game with like 20 people then then wow you've achieved something that usually takes thousands of people to achieve yeah another option is you could just ship it i mean just do what your boss said you know document like okay my boss decided to ship this in its current state and then watch the business go up in flames and i guess you'll all be looking for new jobs yeah i'm gonna be really brave here and give the the meta advice to quit this job
Starting point is 00:08:08 and shocker maybe you can quit this job and get another job at the same company like if it's a big company work with a different manager that's what i'm saying this does not seem like a healthy work environment if there is that much political pressure around estimates also classic evil mistake of asking for an estimate and then turning it into a deadline you were asked for a delivery date you gave your best guess now it's a deadline that you have missed or at risk of missing and and you give an estimate when you know the very least you'll ever know about a project i would expect someone asking for an estimate to be very explicit about whether they are asking for an estimate or giving a deadline of when this has to be done by or
Starting point is 00:08:55 turning your estimate into a deadline yeah like how if i answer your question how and when will this information be used against me yeah yeah and used against you is the right way to think about it because you are in a in a stabby environment yeah stabbed in the front yeah oh my goodness yeah i mean so let me put on my another hat here which is the let's try to salvage the situation hat i wonder if there's some way you can do something to your code right now that will make it deliver some value and minimal risk and still ship it and let your boss say that your boss hit the deadline you know like a lot of times there's only really two levers you can pull when it comes to this you can either ask for more time well three levers ask for more people or reduce scope
Starting point is 00:09:46 you know there's not there's not a lot of other places you can go to change these things and it's like in this case maybe you can reduce scope and negotiate with your boss and say okay i know we offered you know i know we promised to deliver four things but we can deliver these two safely today. Would you rather take these two delivered today or take the four delivered in a month? Or take the two today and two more in a month? And so I think if you do that, it's a little different than just saying... I guess what I'm saying is there might be a false dichotomy here, where on the one hand, your boss thinks we have to ship everything. And on the other hand, you think we have to ship nothing. But maybe there's something in the middle.
Starting point is 00:10:25 the operative word i'm seeing is now which maybe maybe now is not literally today but it could mean the dead estimate is is fixed and it's tomorrow did you say dead estimate yeah that's a good one that is a good one i need to go trademark that or copyright it or protect it in some way google does not know about this word let's see that word is licensed agpl and so if you say it i own the other words that you say nice work that is a good word no literally google does not know this word jameson you just i gotta i gotta get that seo juice going on it i forgot what i was gonna say because i became so proud of myself i mean it's possible that they're that even taking what you have and getting it into something
Starting point is 00:11:22 shippable will extend beyond the dead estimate but maybe that's a better i mean that that could still be a better case than than just nothing there is a valuable lesson in here as well which is that uh the earlier you can call out delays the better because if you had called out this delay or this possibility of delay a month ago then presumably your boss could have told you a month ago too bad it's an it's a deadline now and we need to hit it so cut scope now so that you can hit this avoiding giving notice that a project is late is a technique near and dear to my heart that i i'm trying to let go of but it's it's really hard but it might have it might have helped avoid stabbing yeah it's good stab insurance yes all right well what do you think
Starting point is 00:12:15 did we answer it yeah i i just will reiterate it doesn't there doesn't feel like a productive healthy relationship here between your boss and you because even if you do use them as a as a career shield you you do kind of have to out them as uh it's their fault like there's there's a lot of blame implicit in the framing of this question it's gonna be somebody's fault right and it's not your fault it's your boss's fault and and that means someone is looking to assign blame or that's kind of the culture you have, which doesn't feel great. That feels not great. I also like what you said, Jameson, about how at the point in time when developers give estimates,
Starting point is 00:12:52 they know the least about the project. And good project managers know that as the project progresses, you should check in to see what was invalid about the assumptions made that led to the initial estimate and find out if a revised estimate is in order. And guess what? It is. It always is. a good a friend of mine a good co-worker of mine calls them guesses and says i don't like to
Starting point is 00:13:16 emphasize the value of estimation because it's like telling someone that they're really good at guessing it's like great job you guessed really well and remember that software engineering this is not a repetitive craft we're it's not like you're a home builder constructing the same house 12 times and you're like oh why did the 12th house take a little longer you know it's like no this this is like designing a new house or it's like it's not like shipping 100 cars on the assembly line it's like designing a new assembly line you know these are things that are have inherent high degrees of unknown to them and so estimates have necessarily high low accuracy at the beginning so this might be an opportunity for you and your boss to sit down and say
Starting point is 00:14:02 i would like to establish some tenets in our working relationship that will guide us And I think for future projects, we need to do something about our estimation to make sure that as we're planning things, we can do continuous planning and not be beholden to bad information that is old six months from now. I'm going to link you to a contrarian take about this comparison to other kinds of engineering, which basically argues that software developers are wrong in their conception of other fields and how certain they are and how repeatable they are. it starts with this quote about no one ever had to think about moving a starting or ending point of the bridge midway through construction and then civil engineer said i have to move a bridge i had to move a bridge yeah i've read that article i think i know what you're talking about it's excellent oh yeah it's really good but your boss doesn't know this because they're probably not in touch with with great software writing so yeah like like jameson is yes if not the producer
Starting point is 00:15:03 have said great writing. No, I am not. Hey, Jameson, have you noticed there's a special kind of pain that software teams feel when they get big enough? Pain of open floor plans? No, I'm talking about the pain of owning a huge pile of services, but having no clear ownership. This makes so many routine things harder than they need to be, like knowing who's on call, onboarding new hires, finding out who owns what. If you're lucky, you have some spreadsheet or maybe like four spreadsheets that list all the services your teams operate with manager contacts and on-call schedules, but you probably don't even have that. I've definitely felt that pain. Well, this is where Ops Level comes in. Ops Level is a product that replaces that old spreadsheet
Starting point is 00:15:47 that no one trusts with an always up-to-date catalog of all your services and teams. And Ops Level takes the friction out of launching new services by providing guardrails that let developers focus on writing code instead of chasing down people and getting approvals. When I worked at Amazon, we had tools like this. I can't imagine living without them, but small and medium-sized companies, they can't afford to build them. And this is why you need Ops Level. I've lived without them. It's rough. The Rolodex of people who've worked there a long time is not as scalable as Ops Level. Go to opslevel.com slash soft skills to solve this pain and learn how Ops Level makes shipping great software easier. End the suffering. Go to opslevel.com slash soft skills.
Starting point is 00:16:32 Dave, do you want to read our next question? Yes. This comes from an anonymous listener who says, A parallel team has sold our VP on their internal framework and has the VP convinced all other groups in his org should become dependent on it as a multi-app, multi-platform solution. The framework is very buggy, and they are very slow to acknowledge and fix bugs. They claim that due to the overwhelming amount of users and adopters of their framework, they can't look at bugs or that other projects take priority. This blocks our development. No one except them wanted to use their product, and somehow they used forced, widespread adoption to avoid responsibility for missing their deadlines.
Starting point is 00:17:09 This group has magnificent soft skills that have allowed them to evade being accountable for their issues. Ooh, I like that. This team is a darling to the VP, so they are immune to accepting our feedback for the points I listed in the above question. Ah, listeners of the show. Clearly. Clearly. how are we who are multiple levels removed from this vp how can we who are multiple levels removed from this vp improve our situation our group enjoys working together and on our product so
Starting point is 00:17:39 we don't want to leave we just want to find a way to become more tolerant of this other underperforming team this is gnarly proof that soft skills trump hard skills i wonder what it means that they have magnificent soft skills i know i felt like that was kind of a backhanded compliment like they're very sly and manipulative yeah which i guess are soft skills yeah the dark side of the soft skills they're very good at mirroring a thing where you you pose kind of like someone else poses and then supposedly you can subtly influence what they do is that one of those decredited psychology things oh probably got squashed by the replication crisis yeah i choose not to look it up
Starting point is 00:18:24 so shared abstractions are great if they're great i can see the motivation behind this presumably there are some common features or functionality that this provides and it could help people go faster but they always require some amount of kind of squeezing your problem to fit them and it's way harder to build an abstraction than to build a thing that solves the problem without making it generic so this kind of feels like the default outcome to me i feel like it's it seems less likely that an internal framework would be amazing and everyone would love it yeah although actually i worked at a place that had a really good it wasn't really in a framework it was it was a kind of kubernetes based platform but it was really good the team
Starting point is 00:19:10 was amazing and that was part of it and it sounds like this team is not amazing yeah yeah and boy does it take special skills to create a useful framework i mean it is hard that's next level yeah so i assume this is there there's some blame trickling down to the to the team that the question asker is on because they're not moving quickly or not getting a project done or something or maybe they're just frustrated by it what if you just don't you don't want just don't use the framework is the vp gonna review your code oh right yeah that sounds like something that will eventually get come back to you you know yeah i thought we mandated that all teams must use this framework oh i didn't i didn't see that i must have been out for that newsletter maybe your
Starting point is 00:19:58 communication skills are a little lacking yeah good leaders repeat themselves yeah i didn't hear you repeat that enough i only heard it once so i didn't do it i'm gonna file that one away good leaders repeat themselves and you only said it once therefore no responsibility this sounds to me like a communication translation problem that your team is suffering in ways that are not visible to the people making decisions about this framework, at least this, maybe this VP, maybe this team's lead. And here's what I know in business, especially in groups in business, in organizations, corporate organizations, where there's, you know, a good number of people, like 10 plus people, the visible problems get solved. The invisible
Starting point is 00:20:48 problems get ignored. And so if I were you, I would try to find ways to make this problem visible. And the first way you can do that is by documenting the problems that your team is having. And the best documentation on this kind of problem has numbers in it. And the best numbers are the ones that turn into dollar signs. So if you can show how much money this company is wasting or losing because of choices made in this framework and they're in attention to your problems, you will have a better chance of getting these things the attention that you want them to have. There is an alternative outcome where you make the business or someone in the business aware that that's the cost, but the cost is still worth it. You mentioned other projects are taking priority and maybe those projects really do take priority,
Starting point is 00:21:39 but if you can write down somewhere, it is causing this much dollar loss in this area to not focus on this problem. Then hopefully someone can look at those two projects and see is the number bigger on one side or the other and make sure like, it seems like we're doing the right thing. Yes. Yeah.
Starting point is 00:21:59 It's very possible that this could be good for a really large organization and really bad for some individual teams, which is a thing that can happen at giant orgs. Yes, absolutely. So document this, who do you give it to? Do you send an anonymous email to the VP? An open letter to the CEO. I think you got to work your way up the chain here.
Starting point is 00:22:20 So now you've got kind of what I call a socialization problem to solve, which is who are the people that need to know? And in what order do they need to know it? Who are the people that are likely to be a amplifier for your voice? you know because you you kind of i don't want to use a virus metaphor but i had this idea of a virus spreading and when it infects the right people but a good one yes it's a it's a happy
Starting point is 00:22:42 virus that makes everyone's life better by infecting you but yeah if you get if you get the right people involved i would start with your boss and then get your boss's take on where this needs to go in the organization to actually affect change and your boss will also give you a good a good gut check on whether this is even an idea that could possibly succeed you know yeah there is going to be a lot of information squishing or compression in communicating this too like i feel like the amount of information that travels up a layer is is going to be like log of the amount of information below the layer or something like that so if the vp is several layers removed from you you need to give enough information that by the time the vp hears it they hear at
Starting point is 00:23:25 least a sentence of like this team is late because of this other thing so don't be surprised if you have to work really hard to get that message communicated all the way up yeah it might be repeating yourself to your boss nagging them maybe enlisting other other people without going behind your boss's back but but just kind of yeah like you said socializing that knowledge more widely maybe there's some trusted architect role or something that isn't really in the chain but is influential but the more you talk about this the better i think it will be with one caveat which is you seem very frustrated or or the question reads to me as someone pretty frustrated and making this other team defensive by by telling them they're bad at their jobs and
Starting point is 00:24:11 their framework is terrible feels unlikely to improve things if they're the darling of the vp you're probably not going to either way right regardless of what kind of what's the word for this top cover that they have telling them they're bad at their jobs is probably not the way to get what you want yeah so you just got to bury your frustration deep inside and never never think about it or express it in any way no you need to find ways to communicate this to other people yeah without saying this other team sucks and that's why we're late even if that's true right a lot of times things that are true are not things that should be said to get what you want yeah i mean one other thing you could do is is maybe everyone is in this situation right like maybe
Starting point is 00:24:57 this team is literally prioritizing no one's work or or half the company is is suffering because of this and maybe it's really not globally useful and that would be probably interesting to know so you might want to delicately feel around for feedback from other teams is is this going well in other places and if so what's what's making that happen or is everyone just mad at this thing yeah somebody probably got promoted for this though right building this shared internal framework that everyone uses that sounds very high impact that's what we like to see from our high muckety muck level people they can't take away the promotion though right yeah so so what if it turns out to be bad yeah they already got promoted well i think i'm out
Starting point is 00:25:43 of advice yeah me too these are always tricky situations there's a lot of people involved a lot of perspectives and interesting organizational hierarchy that makes it challenging yeah i'm gonna go back to the beginning and say abstractions are really really hard and yes even in very well used public open source frameworks you still find people just raging against the abstraction so proprietary small team supported ones doesn't surprise me that it can be rough so never do it i guess just give up maybe that's what i'm saying i think yeah with that we're done answering questions yeah i think we did it all right what can people do if they want their own questions answered go to softskills.audio and click the ask a question button fill out the form there and
Starting point is 00:26:28 ask us whatever you like and thank you thank you so much to everyone who does that every week we really appreciate reading all of your questions thank you thank you we will catch you next week

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