Episode 452: Consulting refactor and extra work, extra scrutiny

Episode 452: Consulting refactor and extra work, extra scrutiny

Released Monday, 17th March 2025
Good episode? Give it some love!
Episode 452: Consulting refactor and extra work, extra scrutiny

Episode 452: Consulting refactor and extra work, extra scrutiny

Episode 452: Consulting refactor and extra work, extra scrutiny

Episode 452: Consulting refactor and extra work, extra scrutiny

Monday, 17th March 2025
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:05

It takes more than resolving deadlocked technical

0:08

disagreements by picking number three to be

0:10

a great software engineer. This is episode

0:12

four hundred and fifty two of the

0:14

soft skills engineering podcast where I am

0:17

your host James and Dance. I'm your

0:19

host Dave Smith. Soft scales engineering is

0:21

a weekly advice show about all the

0:24

non technical things that go into the

0:26

technical field of software development

0:28

like arbitrarily deciding to move

0:30

forward. I love it. It's like the Simpsons

0:33

movie. Yep. President Schwarzenegger.

0:35

Yeah. Optionsly. I

0:37

was elected to lead, not

0:39

to read. That's what you shout

0:41

as you arbitrarily decide.

0:44

Yes, that's leadership. Yeah,

0:46

yeah, it's not reading. That's true.

0:49

Dave, do you want to

0:51

thank our patrons? Yes, I

0:53

do. Big shout out to

0:56

those who contribute at the

0:58

just absolutely unhinged level that...

1:00

causes us to read whatever they

1:02

type in for their patron profile

1:05

name. They are Noah Labhart. It

1:07

takes more than a witty name

1:09

on Patreon to be a great

1:11

engineer. Do you really love us

1:14

or are we just means to

1:16

yacht? Can it be both? Alexander

1:18

Kuznitz of Chris Morton, Nick Molinu.

1:20

Attribute error non-type object has

1:23

no attribute to string, hobby or

1:25

consulus, chewy, Ted Timedrel. I quit

1:27

my job. It's 2025. Oh my

1:29

God, what have I done? Alexa,

1:32

Alexa, Alexa, Alexa, Alexa, Alexa, Turn

1:34

off all the lights. Become a

1:36

senior engineer.com is a newsletter. You

1:38

should read, Unsaulted French fries. You

1:41

should read, Unsulted French Fry's. I

1:43

turn off all the lights. Become

1:45

is a newsletter. Is a turn

1:48

off all the lights. Kyle Boss,

1:50

Kent, C. Dodds. Hold on a

1:52

second, I have to sneeze. Nevar is

1:54

not just a planet in the Vulcan

1:56

system, Jenny Kim. The stochastic parrot. Hellicone.i.

1:58

Best observability tool. for AI. Red Pandas,

2:01

Best Panda, Java is just discounted C-sharp

2:03

with worst documentation. Jonathan King's and I,

2:05

beautiful functional user documentation, Polish words that

2:08

are impossible to pronounce. Dang it, I

2:10

told myself I would learn to pronounce

2:12

these this week and I didn't. Skzbzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

2:14

Terskneen, I, that's probably wrong. Okay, williamangel.net

2:17

has cookies, please accept all cookies, we

2:19

process your data in the United States.

2:21

To opt out, go to ugla bugla,

2:24

not my chair, not my problem, that's

2:26

what I say. Braden Keynes, John Krant,

2:28

Brittany, Ellick, Joe Grossberg, wow, I really

2:31

botched the pronunciation of that one, sorry

2:33

about that, please write in and we'll

2:35

send you some stickers. Oh, I feel

2:37

called out. But also appreciate it. Simultaneously.

2:40

Are wonderful listeners. Yes. And we also

2:42

appreciate you. Thank you so much. Wow.

2:44

That was a great one. Great round.

2:47

Appreciate you. Dave. I want to tell

2:49

you about WorkOS, which is sponsoring this

2:51

episode. They have launched a ton of

2:53

new useful stuff that you should know

2:56

about, which we will tell you about

2:58

a bit later in the episode. Thank

3:00

you to WorkOS. Oh, sorry. Just randomly

3:03

inserting things here today. It's all good.

3:05

Randomly read our next question. I will.

3:07

This comes from an anonymous listener who

3:10

says, I've been a developer for about

3:12

1.5 years. I work for a large

3:14

consultancy. We provide services to big clients.

3:16

I'm working on a front-end code base

3:19

that has been through three consulting companies

3:21

already. Ugh. That sounds not fun. Okay.

3:23

Tired of just moving tickets and fixing

3:26

bugs, I decided to refactor the front

3:28

end of the entire application. Touching the

3:30

code base to add features gave me

3:33

a pit in my stomach. No integration

3:35

tests, no staging environment, huge functions with

3:37

tons of parameters, etc. The client provided

3:39

technical guidelines that were... pretty solid, but

3:42

the code just didn't follow them at

3:44

all. In the time left on the

3:46

contract, I refacted the code base to

3:49

fix the biggest problems to align with

3:51

the client's technical guidelines. I did all

3:53

this without my manager, product owner, product

3:55

manager asking me to. But now, how

3:58

do I communicate what I've done? Sounds

4:00

like, sounds vaguely guilty. Yeah, that's what

4:02

I was thinking. What have I done?

4:05

The next sentence is how do I

4:07

get recognition for it? And I was

4:09

thinking, oh, that's not where I thought

4:12

this was going. I have never worked

4:14

at a large consultancy. I have been

4:16

a consultant though. I don't think I

4:18

would have done this without some kind

4:21

of communication up front saying, look at

4:23

this awesome thing I'm going to do.

4:25

I have done, I mean, I've done

4:28

small refactors and just kind of the

4:30

normal cleanup that you do as you're

4:32

building stuff, but I haven't just said,

4:34

hey, I'm going to take these hours

4:37

that you're paying me for and use

4:39

them to completely overhaul the code base.

4:41

And I think it's hard to tell

4:44

them after the fact because what they

4:46

might think is, wait, what about all

4:48

the features that we wanted that we

4:51

didn't get because of all this time

4:53

that you took? I guess it depends

4:55

on the contract and... maybe you did

4:57

deliver all the things they asked for

5:00

and this was just sort of extra

5:02

that you added on, but if it

5:04

wasn't, if delivery of the stuff they

5:07

explicitly asked for slowed down, then you're

5:09

probably in trouble for getting credit for

5:11

this. Right. It's so tricky because there

5:14

are things that as a developer you

5:16

know are going to make the work

5:18

go faster and have fewer bugs in

5:20

the end. But sometimes it's really hard

5:23

to explain those things to the person

5:25

signing the check. And it's even harder

5:27

when it's a consulting relationship. I think,

5:30

yes, those incentives and that communication is

5:32

tricky when it's working for the same

5:34

business and you expect to have this

5:36

long relationship with the code base and

5:39

the people signing the checks. But often

5:41

consulting is like... explicitly like cowboy code

5:43

this thing out as fast as possible.

5:46

We just want you to crank out

5:48

these features and ship it and not

5:50

worry about tomorrow because tomorrow will be

5:53

another consultant. Right. Get in, get paid,

5:55

get out. Yeah. But I think what

5:57

you do have going for you is

5:59

these client technical guidelines. And I think

6:02

the way that you can pitch this

6:04

is if you have delivered all of

6:06

the features that they asked for. and

6:09

you're not behind on that, they're not

6:11

going to say, wait a minute, but

6:13

what about all this stuff you didn't

6:15

get to? Then I think you can

6:18

pitch it as I also kind of

6:20

went above and beyond to help follow

6:22

the technical guidelines to make sure that

6:25

the people who work on this code

6:27

base in the future will be better

6:29

off. So you should see benefits in

6:32

the future from this. That's kind of

6:34

like the classic pitch for it, but

6:36

I think you can say that and

6:38

explicitly point to the technical guidelines. There

6:41

is a risk you've been a a

6:43

year and a half, I feel like

6:45

that's still kind of the youthful exuberance

6:48

phase. And there's a risk that you've

6:50

been like blog post sniped into like,

6:52

I don't know, everything, you read a

6:54

blog post about reverse Polish notation and

6:57

just decided like, oh, that's good code.

6:59

That's what good code means. And you

7:01

just got really passionate about something that

7:04

doesn't actually make a huge difference in

7:06

the code base. So maybe get some

7:08

eyeballs from other more senior folks to

7:11

to kind of back you up on

7:13

this that you're not just like following

7:15

your preferred linting style or whatever, but

7:17

I think you can say basically I've

7:20

bought you future speed. You're welcome. Yeah,

7:22

like hey, I went above and beyond

7:24

and I got the project done on

7:27

time and in scope and under budget

7:29

and while I was in there, I

7:31

did a bunch of cleanup. So as

7:34

a result, we should see fewer bugs

7:36

in the deliverable. and long term our

7:38

next feature request will be able to

7:40

go faster. Yeah. Great. That's a good

7:43

internal message. Now, should you tell the

7:45

client? And I think there's a real

7:47

chance that you tell the client, hey,

7:50

we delivered everything and we made a

7:52

bunch of improvements as well, the client

7:54

might come back and say, I don't

7:56

want to pay for that part. Yeah.

7:59

I think that's what you, you, that's

8:01

what your manager gets paid for. You should tell

8:03

your manager this and leave it to them to

8:05

decide whether she communicated to the client. Or should

8:08

you give your manager the gift of plausible deniability?

8:10

Wait, what do you mean? Your manager is unaware

8:12

of this extra work that you did so they

8:14

can't be, they can't bring it up in a

8:16

meeting and it can never be a

8:18

question from the client of whether they

8:21

should pay for it. I will tell

8:23

you what you shouldn't do is you

8:25

shouldn't say, man, all these consultants that

8:27

touched this code base before were horrible.

8:29

They just made the dumbest decisions. They

8:31

totally screwed this thing up, but good

8:33

news, I have fixed it. Because they

8:36

have heard that so many times. The

8:38

developer who cried wolf. It is classic

8:40

to say, hey, everyone who touched this before

8:42

me was a moron. Yeah. But good

8:44

news. I, unlike everyone else that has

8:46

ever touched this code base. I am

8:48

not. And I did it right. And

8:50

the next person that touches code base

8:52

will surely not say, hey, everyone else

8:54

who touches is a morgue, but I

8:56

fixed it. I did it right. And

8:58

your client will say, you know, the

9:00

last two consultants said the same thing.

9:02

Yeah, exactly. Yeah, you kind of lose

9:04

credibility by saying that. Hmm. Well, have we

9:06

answered the question? I think so. And the

9:08

summary in my mind is that, yeah, it

9:10

would be great to take credit for this.

9:13

but only take the credit after you can show

9:15

the results. Like hey, remember those features we shipped

9:17

a few weeks ago? Well, that's thanks to a

9:19

little bit of cleanup work that I did while

9:21

I was in there. You know, hey, I was

9:23

already there, you know, I really don't think you

9:25

should pitch it as I spent a bunch of extra

9:27

hours. But rather, I did some cleanup, the codes

9:29

in a lot better shape now, notice how

9:31

there hasn't been bugs, and notice how we've

9:33

been able to deliver features faster, faster, well.

9:36

That was thanks to all that cleanup I

9:38

did. And it is it is a

9:40

good idea to take credit for that

9:42

and get recognition. And especially internally, but

9:44

probably not externally. I think

9:46

the client would just be like, what do

9:48

you mean you didn't clean it up? Like if

9:50

you, you know, it's like, would you say the

9:52

opposite? Like, hey, this code's a mess, but I

9:54

left it a mess. You know, probably not, right?

9:56

Yeah, so, yeah, I think that's what I think that's

9:58

what I would do. And they have added

10:01

some very useful stuff to their product.

10:03

Now, WorkOS is not just for adding

10:05

SSO to your app, it's so much

10:07

more. They've launched some cool stuff, and

10:10

we will tell you about it. WorkOS

10:12

lets you not reinvent permissioning with their

10:14

new fine-grained authorization system, which is based

10:16

on a Google system white paper thing

10:18

called Zanzibar. Very fun word to say.

10:21

I actually built some fine-grained off systems

10:23

myself and they had a way more

10:25

boring name. And also I had to

10:27

maintain all the code myself. Yes. Also

10:30

check out WorkOS's radar feature, which can

10:32

block bad signups from your app. So

10:34

things like bots, fraud, and impossible travel,

10:36

like someone using a VPN or proxy

10:38

to trick your sign-up system, they can

10:41

detect all of that for you and

10:43

help you avoid fraudulent sign-ups. They launched

10:45

an entitlements feature that integrates with stripes.

10:47

Your app can automatically give access to

10:50

accounts that have paid for new features.

10:52

I've also built one of these myself,

10:54

and it can be a huge pain

10:56

in the butt. So nice to put

10:58

that on someone else. Yes, totally. To

11:01

me, the coolest feature they launched is

11:03

a B2B app starter kit for NextJS.

11:05

WorkOS will actually help get your NextJS

11:07

app essentially from zero to one, super

11:10

fast. They provide authentication, billing, user management,

11:12

audit logs, and a ton more. And

11:14

I gotta say, if there's an easier

11:16

way to start a B2B SAS app

11:18

than WorkOS, I can't think of it.

11:21

Do not forget the passkey support. It's

11:23

effortless for you to add passkey support

11:25

and your users will love it. Check

11:27

out workos.com and try out all these

11:30

amazing new features. Shall I wish your

11:32

wit. Your command is my command. I

11:34

think that's how it goes. I think

11:36

that's right. A listener named Mike asks,

11:38

I've been in my role for about

11:41

a year and a half on a

11:43

dev team of seven. I really like

11:45

the job. It has a good culture

11:47

and I'm learning. Sometimes I channel my

11:50

desire to learn into improving our projects

11:52

with small self-directed changes on my own

11:54

time. These changes are useful. but aren't

11:56

high enough in priority to make it

11:59

into planned sprint work. I don't inundate

12:01

the team with these requests. It happens

12:03

maybe one to two times a month.

12:05

We make a point of working in

12:07

small steps, usually submitting several PRs per

12:10

day per person. I really like this

12:12

approach, and I also keep my occasional

12:14

self-directed bits of work small in scale.

12:16

However, I have noticed these PRs receive

12:19

more scrutiny and more whataboutism than our

12:21

regular on-the-books PRs. For example, for regular

12:23

sprint tickets, there's an understanding that we're

12:25

making progressive improvements or building small pieces

12:27

of features that exist within the constraints

12:30

of our systems. We might flag broader

12:32

improvements to consider, but there's no expectation

12:34

to re-boil the ocean every time we

12:36

want to merge code. When I'm submitting

12:39

a self-initiated piece of work, there can

12:41

be a long back and forth of

12:43

suggestions that can involve changing other dependent

12:45

code, changing internal APIs which may have

12:47

side effects and generally a level of

12:50

defensiveness in the code that we would

12:52

not normally expect. I understand that by

12:54

submitting off-the-books I'm requiring some work time

12:56

from reviewers, but there is still more

12:59

pushback than I'd expect. It feels like,

13:01

because I get the ball rolling on

13:03

my own time, the normal cost-benefit constraints

13:05

go out the window and the code

13:07

purists come out to play. Could I

13:10

be annoying the team with these submissions?

13:12

Have you experienced team members doing the

13:14

same thing? Is there a way I

13:16

can scratch my own itch by learning

13:19

against our systems without creating this resistance?

13:21

Hmm. I got distracted looking up, what

13:23

aboutism? You have a definition? Yeah, well

13:25

I have a Wikipedia page, that's authoritative,

13:27

right? Yeah. It's what aboutism or what

13:30

aboutery? Which I kind of like. I

13:32

have not heard that one. I kind

13:34

of like that one better. I like

13:36

that one better too. It sounds like

13:39

Tom Foolery. Yeah, exactly. So good. What

13:41

aboutism is the strategy of responding to

13:43

an accusation with a counter accusation instead

13:45

of a defense against the original accusation.

13:47

That's not how I've heard this term

13:50

used in argumentation in the past, which

13:52

leads me to believe that the people

13:54

I've been arguing with don't know. What

13:56

this means, or at least don't agree

13:59

with Wikipedia. Yeah, I thought that this

14:01

applied pretty well to this situation

14:03

and I guess it doesn't according

14:05

to the Wikipedia definition. Okay, so

14:07

what did you think it meant?

14:09

What I thought it meant in this

14:11

situation is you submit a PR, maybe

14:13

it moves a line of code, it

14:15

doesn't change the line of code, it

14:17

doesn't change any of the dependencies. Okay.

14:19

But because you touched it, all of

14:21

a sudden it's like, wait. This line of

14:24

code that you have touched is wrong and

14:26

needs to be changed. And you're like, it's

14:28

not the scope of what I'm working on.

14:30

Or doesn't follow some convention or something? Yeah,

14:33

like, yes, I changed the indentation because I

14:35

surrounded it in an if statement now,

14:37

but I don't want to rewrite all of

14:39

the code that is related. Yes. Because I

14:42

don't want to rewrite the whole code

14:44

base just to make this one change. But

14:46

maybe they mean it more literally and

14:48

it's like in these back and forth discussions

14:50

of feedback on the PR and then what

14:52

about is it? What about a battery? They

14:55

say, well, I think that's out of scope

14:57

and then they bring up the insults

14:59

that you made to their heritage

15:01

that one time or I don't know.

15:03

Interesting. So is that the situation you

15:06

think that's going on here is that

15:08

there's there are incidental code

15:10

changes that show up in the diff.

15:12

but aren't actually the substance of what

15:14

the author is submitting the change for?

15:16

Yeah, I think that's part of it.

15:18

I mean, the situation the author describes

15:20

is their off-the-books changes are

15:23

held to a much different standard

15:25

than the regular sprint work. Yeah,

15:27

and so there's an understanding in

15:29

the regular sprint work that this

15:31

is iterative and this will be

15:33

improved and tweaked in the future,

15:35

and it sounds like everything must

15:37

be perfect for these kind of

15:39

off-the-the-books changes. Yeah, why, have you

15:41

experienced this? I'm not sure that

15:43

I have. I have experienced it.

15:45

Not this same style of like,

15:47

well, I'm doing kind of side,

15:49

side work work, it's still work, but

15:51

I have experienced this vibe

15:53

of like, I am not going to

15:56

rewrite this giant abstraction just because I

15:58

added a line to it. it. Yeah.

16:00

But the person is asking me to.

16:02

Right. You're like, no. Yeah. I haven't

16:05

experienced it consistently from the same person

16:07

though. So my in my experience, this

16:09

has usually been someone who's doing a

16:11

distracted code review. They're not taking the

16:13

time to dive super deep into it.

16:16

And they see a line and it's

16:18

green and and and they just look

16:20

the line and say, ah, that line

16:22

looks wrong. It should actually look like

16:25

this, but they haven't. rocked the change

16:27

enough to understand wait that line is

16:29

just moved around. It's not like you

16:31

wrote that line. Yeah, and then I

16:33

guess the extra element here in this

16:36

question is because this stuff is submitted

16:38

outside the normal work process, I wonder

16:40

if there's a perception that they have

16:42

more time and they can do more

16:44

scrutiny. Whereas if it's part of a

16:47

sprint, it's like, oh look, we do

16:49

one week sprints and we all know

16:51

we're under the gun and no one

16:53

wants to be the reviewer that holds

16:56

up a sprint deliverable and then causes

16:58

the team to miss their commitment for

17:00

the week or something like that. Yeah,

17:02

maybe they're super intense about sprints and

17:04

you have a deadline every week, which

17:07

sounds not fun, but exists. I have

17:09

been on the other side of an

17:11

engineer who would regularly throw in. pretty

17:13

sizable extracurricular changes that were not related

17:16

to the business-facing work that the team

17:18

was doing. I actually told them, please

17:20

stop. And the reason I told them

17:22

to stop was explicitly because it took

17:24

time away from the team to review

17:27

this stuff. They had to context which

17:29

sometimes the changes were pretty broad to

17:31

like underlying tooling. It wasn't ever like

17:33

I added this feature or whatever that

17:35

the customer asked for it just out

17:38

of order. It was like... I'm changing

17:40

this underlying technical developer system that we

17:42

use. And I said, please do not

17:44

do that anymore. Exposedly for this reason

17:47

that it was distracting the team and

17:49

slowing down our normal work. Interestingly enough,

17:51

I am a hypocrite because sometimes I

17:53

do that to my team, but... But

17:55

by doing that I mean, sometimes I

17:58

submit PRs like that and distract them.

18:00

But it's okay because it's me doing

18:02

it now. So my point is, could

18:04

I be annoying the team with these

18:07

submissions? I think yes, it could be

18:09

that they are frustrated by trying to

18:11

get all their sprint stuff done and

18:13

also now they have this extra stuff

18:15

to review. And they are not clearly

18:18

communicating that and that frustration is coming

18:20

out in really very persnickety PR reviews.

18:22

You should ask them. You should say,

18:24

hey, I want to learn. I want

18:26

to do stuff. I feel like a

18:29

good way to do that is poke

18:31

around and make these improvements. I do

18:33

it on my own time outside of

18:35

work. I'm not missing work time. But

18:38

like, does this bother you? Are you

18:40

concerned with the way I'm doing this?

18:42

I think you could just directly ask

18:44

that question. Yeah, and I think that's

18:46

probably a very likely explanation for what's

18:49

happening here. Maybe even subconsciously people, people

18:51

are like, like, like, like, be with

18:53

us on the team and why can't

18:55

you carve out actual sprint time to

18:58

do these things if it's so important?

19:00

And now you're taking away from my

19:02

sprint time to do these reviews and

19:04

to subconsciously they're doing anything they can

19:06

to punt your PR. Yeah, they're just

19:09

a little grumpier when reviewing it. Yeah,

19:11

I think you also hit on a

19:13

good potential solution, which is if you

19:15

want to learn and you're passionate about

19:17

improving stuff, I don't know. But you

19:20

could advocate for either specific targeted improvements

19:22

to be made in the sprint or

19:24

just to say like, hey I want

19:26

a teeny bit of capacity also to

19:29

do some of these improvements to learn.

19:31

And the point of putting them in

19:33

the sprint is it prioritizes them against

19:35

other things that are typically more business

19:37

facing. And it's not that they don't

19:40

have value if they're not business facing.

19:42

but it's easier to articulate the value

19:44

of a new feature to the business

19:46

than the value of like I tweak

19:49

this underlying abstraction. Yeah. And so you

19:51

might have to do a little bit

19:53

more work to justify it up front.

19:55

Yeah, makes sense. Or you could just

19:57

go all. Right, they say change this

20:00

underlying abstraction. You say, okay, no problem.

20:02

And then you go off and, yep,

20:04

10,000 lines later. That feels like a

20:06

doom cycle though. It's like you come

20:08

back and they're like, okay, thanks. Now

20:11

do this other impossible task. Yeah. You

20:13

must cut down the largest tree in

20:15

the forest with a heading. Yeah. If

20:17

you like the team, it's got a

20:20

good culture. I feel like you should

20:22

be able to ask what's going on.

20:24

fairly openly and discuss it. And it

20:26

might lead to, I think I agree

20:28

with you, Dave, that it could be

20:31

subconscious on the part of your teammates,

20:33

that it might not be them directly

20:35

saying, aha, out of sprint work, I

20:37

will now put on my, my pendant

20:40

hat, my pendant pendant, pendant, pedantic pendant.

20:42

Yeah, the pendant, the pendant, the pendant

20:44

of pedantry. Yes, that one, that one.

20:46

That's a great one. We need to

20:48

get some of those. So maybe talking

20:51

about it helps them realize this and

20:53

then it brings it out in the

20:55

open. Yeah, that's probably better all around.

20:57

I had a developer on my team

20:59

last year who said, hey, I'm really

21:02

interested in getting more familiar with a

21:04

specific set of technologies and I've noticed

21:06

we have a big pile of tech

21:08

debt that we keep not getting to.

21:11

Can I volunteer to work overtime? and

21:13

for my own benefit and also for

21:15

extra pay to develop these skills and

21:17

burn down this tech debt list. And

21:19

I was like, yeah, that sounds awesome.

21:22

So we just created a really simple

21:24

tracking system, little document, you know, created

21:26

tickets in our normal sprint that this

21:28

person could work on and we communicated

21:31

it with the team. Everything was above

21:33

board and we got a ton of

21:35

value out of it and it was

21:37

really, really lovely and everyone is happy

21:39

with it. Now if that person had

21:42

just... like blindsided my team with like

21:44

hey I want to move this service

21:46

from EC2 over to a serverless architecture

21:48

and look I did it and here's

21:50

the PR I think everyone would be

21:53

frustrated, including me. Yeah. Because I would

21:55

have thought, you know, as the leader

21:57

of the team, it's one of my

21:59

jobs is resource allocation and time allocation.

22:02

Like, what are we going to spend

22:04

time on? And when you take that

22:06

opportunity away from me by just choosing

22:08

unilaterally to spend your time on something

22:10

that I didn't even think about, it's

22:13

not good. Like everyone's, everyone's frustrated with

22:15

that. And so it's like the same

22:17

actions with a little bit of preamble,

22:19

make for great outcomes, as opposed to

22:22

doing those actions without the preamble, and

22:24

then everyone's mad at you. Well said.

22:26

You just liked it because I said

22:28

the word preamble. Always a fun one.

22:30

I actually have a preamble pendant. Ah,

22:33

you've got all manner of pendants. Yes,

22:35

you might say I have a plethora.

22:37

All right, have we answered this question?

22:39

I think so. Good luck. Good luck,

22:41

Mike. It sounds like you are well-meaning

22:44

and you've got a good team. So

22:46

I think it'll turn out all right.

22:48

Yeah. And good luck with all the

22:50

refactoring. That's always fun. for you. Some

22:53

day you'll learn to hate refactoring. But

22:55

today is not that day. Yeah, other

22:57

people's refactors are your nightmares. Refactoring is

22:59

like when you want, there's that thing

23:01

you want to buy and you really

23:04

work it up in your mind and

23:06

then you save your money and you

23:08

plan and then you buy it and

23:10

you realize that wanting the thing felt

23:13

better than having the thing. You ever

23:15

had that experience? Yeah, the anticipation is

23:17

great. the hedonic treadmill is real for

23:19

code quality also I guess. I promise

23:21

I'm not going to say this spend

23:24

much more time on this but it

23:26

is the case for me that every

23:28

time I've embarked on a major refactor

23:30

I look at the code and I

23:32

just think this is going to be

23:35

so nice when it's all cleaned up

23:37

and then I do all the cleanup

23:39

and I'm like I feel the same.

23:41

Like it's just. Yes the code is

23:44

cleaned up. But I just don't get

23:46

this like amazing sense of accomplishment. I'm

23:48

like, ugh. I thought that by changing

23:50

the code I would change myself. Alas.

23:52

Unless I. just didn't

23:55

change the code the

23:57

right way. Surely

23:59

this next time I

24:01

will change myself

24:04

by changing the code.

24:07

But if you do the refactor together,

24:09

then at least you make friends

24:11

along the way. Yeah, fair enough. And

24:13

that's the real valuable thing. And

24:15

that does change you, making friends. You

24:17

know what else changes you? Asking

24:19

questions of the Soft Skills Engineering Podcast.

24:21

How can people do this? Go

24:24

to softskills .audio and click the ask

24:26

a question button where you can fill

24:28

out our form. Our form that faithfully

24:31

serves us and has for many years,

24:33

we thank you, one and all, who

24:35

have contributed questions to that lovely form

24:37

that have gone into our backlog, whose

24:39

depth is proportional to my self -worth.

24:41

So thank you for making it bigger.

24:45

I really appreciate it. I do

24:47

too. I appreciate you increasing Dave's

24:49

self -worth. My sense of self -worth

24:51

is proportional to Dave's sense of

24:53

self -worth, so. With like a 1

24:55

.3 multiplier on it. Yeah, yeah,

24:57

so I'm doing even better. Thank

24:59

you all. Thank you for listening.

25:01

We will catch you next week. Yeah.

25:08

Yeah. better.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features