top | item 42497002

(no title)

angarg12 | 1 year ago

I've met a breed of career min-maxers adjacent to Julius that I have a hard time describing.

Picture this: you join a new team with a senior engineer, call him Pete. Pete wrote the initial version of a new product, and you joined the team to take over and continue it's development. Pete is bona fide genius who can work miracles and he is always in the critical path of each new initiative, you are told.

Once you open the lid of this new codebase you discover that this new product is a half baked spaghetti ball of mud that barely works as the demo that it was intended. With no documentation or tests, it takes you a while to even understand what's going on. Meanwhile the clock is ticking. It took Pete a mere 2 weeks to write this system, why it is taking you so long to add new features?

You try to explain to management the pickle you find yourself in, but to no avail. They fucking love Pete, and won't have anyone criticizing him. He has saved their asses in numerous occasions, and why is it always that others are the ones who can't keep up with him?

So you chug along, paying the price of the mess that Pete made while he keeps moving to even larger initiatives under leadership adoration. He also seems to have a knack to leave ship before his acts catch up with him, and when he decided to leave the job for a promotion and significant raise, management will miss him.

I've seen this behavior more than once and it seems too specific to not be intentional. Let me know if you ever met someone like Pete and how you call such people.

discuss

order

RalfWausE|1 year ago

Oh, i know him... it's me!

I do "computer stuff" as my profession for about 20 years and always for rather small companies. I do everything from wiring a network, any level of supported, programming and administrative stuff... oh yeah, and in my current job I sometimes drive a forklift in the warehouse.

I work now for about 10 years for the same company and have built significant parts of their software ecosystem, and in my professional opinion: Its a Rube Goldberg machine fixed and extended with duct-tape, hotglue and tons of wishful thinking. Nothing, absolutely nothing in the system I had to build was carefully planned, implemented or tested. Most new feature requests were handed in by an stressed out boss on a Friday afternoon telling me that we need feature X / solution for problem Y / bugfix Z ABSOLUTELY URGENTLY because something went terribly wrong. Its not uncommon that this visits were the result of some prior hotfix backfiring.

And I build it. And it works.

I have often told my boss that it would be best to drag the whole system behind the warehouse and shoot it to relief it of its misery... but, well, it works...

Perhaps I should work on having this 'Pete skill' of leaving ship for the raise and promotion thing ;-)

pyrale|1 year ago

The key issue of Petes is when they don't stay and make sure management knows that it's a prototype that needs more love.

They milk the credit and move on, leaving the next engineer explain to management that what they have is not what they believe they have.

bombela|1 year ago

I don't think you are the same Pete.

People like you acknowledge and understand the engineering trade-offs. Which you might smirk at, but is true nonetheless. If there is only one example of you not being op's Pete is that you tell your boss about the reality of the situation.

The OP's Pete I have met many. It is exactly as described.

spit2wind|1 year ago

This is what John Osterhout calls a _tactical tornado_. It's a programmer who only develops tactically. I find his book, "A Philosophy of Software Design" provides a good vocabulary to think about the technical aspects of this. See Chapter 3: Working Code isn't Enough. It may be enough vocabulary to begin working on the problem without attacking the person.

As for the psychology of such people, I haven't found a single resource. Clearly the system they operate in provides a feedback loop that reinforces their behavior. I'm sure personality, as defined by the Big Five model, plays a part (e.g. orderliness).

whilenot-dev|1 year ago

Oh man, I remember the difficulties explaining to management that "but it's working code" is just the absolute minimum requirement(!) for any piece of code and not a real measure of quality - any expectation lower than that, that also satisfies the term "software", just doesn't exist. There is some truly incomprehensible stuff out there to trick the type system into accepting your way of coding, to safe another 2 LoCs, or some assumption where team members didn't want to communicate with each other etc. Specs are hard enough.

As for the psychology: I always assumed that some people just don't perceive the contrast between creation and maintenance as very expressive or strong, the article The Maintenance Race[0] from Works in Progress comes to mind here. That article distinguishes between 3 types: Robin Knox-Johnston, Donald Crowhurst and Bernard Moitessier. Maintenance isn't fun for me, it's just tedious work that needs to be done. The easier and the faster it can be done, the better. There's accidental complexity anyway, and the world sure can be messy, but I'll do my best to keep my produced artifacts in line. My perception to orderliness is probably pretty sensitive, maybe my tendency towards depression plays a role here ("Doing maintenance cures depression" is a quote in the mentioned article above) and I can acknowledge that not all people are like that. But for me it feels somewhat similar as if I would compare real vintage things to things that just have been designed with that certain vintage look. Real vintage has to be accepted, it's history after all, but history just can't be designed and you're better off to work into the time ahead. I'll honor accidental complexity, it feels like history, but incomprensible problem-solving skills aren't somewhat part of it, in my book at least.

[0]: https://worksinprogress.co/issue/the-maintenance-race/

mst|1 year ago

I really like that book. A bunch of people I've mentioned it to said there was nothing in there that was new to them and they thought it was a waste of time.

I fear they missed the vocabulary part, which was what I found most valuable.

YmiYugy|1 year ago

That sounds like a management error, not a Pete problem. If Pete was told to get a demo done as soon as possible, that's what he did. And in many cases that's not a bad thing for management to tell people. Finding product market fit, usually trumps tech debt. The thing is, that management should know, how time intensive and difficult it can be to turn a cobbled together demo into a production system.

intelVISA|1 year ago

Pete's just a rational actor in this scenario, the real issue is management with no insight into the reality of what they're 'managing'.

rrr_oh_man|1 year ago

> Finding product market fit usually trumps tech debt

This, 100 times.

XenophileJKO|1 year ago

In large companies I have seen a related pattern. Usually a mid-level engineer that the managers love because they "get stuff done".. meanwhile they are a bulldozer in the code, usually with some "ship-it" buddy green lighting the work.

The reason they can "move fast" is because everyone else is trying to limit complexity, etc. and they are punching holes through the abstractions.

Then turn into your "Pete" when they get promoted...

motorest|1 year ago

> The reason they can "move fast" is because everyone else is trying to limit complexity, etc. and they are punching holes through the abstractions.

That's perfectly fine. Your salary is paid by paying customers which are attracted and maintained by improving their user experience. You will never get a new paying customer by advertising that you prevented your abstractions from being soiled.

rvba|1 year ago

The reason is why they move fast, since there are tons of Juliuses (as per the article terminology) who cannot code at all.

kelnos|1 year ago

> He also seems to have a knack to leave ship before his acts catch up with him, and when he decided to leave the job for a promotion and significant raise, management will miss him.

This is not a "knack". It's a manipulative skill he has learned over time. A way to burnish his reputation at the expense of his peers. Petes suck.

cgio|1 year ago

We tend to underestimate management's visibility in such situations. I had three senior engineers. One was your Pete (names are not real of course), throw him anything and he'll have something half-working in no time. Ugly but enough function to be called a proof of concept. One was the opposite, call him Paul, give him any problem and he would spend his whole life if possible researching every minute detail of the problem, similar domains and patterns etc. The last one, Mary, was the master combiner. She could collect all kinds of information, abstract and deep as in Paul's, quirky, dirty or non-existent as in Peter's and make them into something deeply practical and down to earth. Can you see how one could manage the work between these 3, all with their teams, in a way that everyone felt respected and admired for their approach? Same with the Julius of the post. Management might be aware of Julius weaknesses, but Julius could still bring a unique delivery skill-set that is required in the context of the overall team's work.

lproven|1 year ago

> Julius could still bring a unique delivery skill-set that is required in the context of the overall team's work.

I do not know the author of the blog, but this part especially strikes me as a misinterpretation of the point of the piece.

But that's shedding light, and maybe it's not and my interpretation was too narrow.

My interpretation was: Julius is a parasite, who contributes nothing but merely makes the productive members of the team work harder to compensate. He sounds convincing but understands nothing, does nothing, contributes nothing, and not only wastes others' time but also steals their credit.

But you see him as contributing? You see what he brings as being valid and valuable -- is that right?

tdeck|1 year ago

I worked with someone like this at my first job out of college, he did build a lot before leaving the team. But what he left behind in our systems was a string of technical decisions that really hamstrung us, like building our core service around the API of an extremely inefficient protocol buffer library he wrote himself, resulting in a service that could only handle 4-5 QPS per node. One of our other services used an application specific enum that for some reason existed in its own separate RubyGem that he published, so in order to update it we had to update the gem and then change the dependency reference.

resonious|1 year ago

I'm quite scared of being this. I tick a lot of the boxes: I have a good rep for being fast and management likes me quite a bit. And I definitely have spearheaded things that I've since been pulled away from. I try to counter balance all that by writing docs and sticking around though. I do my best to help those who work on the stuff I was involved with.

athrowaway3z|1 year ago

I doubt you are. There is an enormous spectrum, and the parent comment makes it sound all bad.

If you got something working, and are available to answer an email explaining why you made a design decision, then you're already cleared of being a bad Pete.

Pete can't make the perfect product and he shouldn't try to. If it took 2 weeks to make management happy then its a problem you can do "right" in 1 or 2 months. A new dev needs to read up on the problem, what Pete did, what needs improvement, and maybe restart fresh to deliver. Good management knows this.

But a 2-week-delivered project is naturally bounded in scope, and its better off for being 'proven' than whatever OP imagined the right way to do it is.

There are only 3 cardinal sins. Don't destroy/overwrite an existing architecture, don't be a smart/dumb coder, don't do a months long Pete-style yolo project.

_dp9d|1 year ago

The last telco I worked at had a project manager like this.

She would take on a dozen small-ish projects (~6 months / $1M), and just jam them through by buying some off the shelf managed solution and using an external contractor who would write spaghetti to run tentacles to everything. She would routinely deliver projects early and under budget, which made her a stand out STAR. No other projects in the entire company were remotely close - normal was double time and budget. Green ticks next to her name, promotions, bonuses, etc.

Once I was invited to a conference call with a dozen people I didn't really know.

Her: We've tapped you as the main support person for this new system we've just deployed into production as part of this new project. I has customers live now.

Me: OK, great. Where's the documentation (there is none). What server does it run on? (Huh?). What credentials do I use to login (what?). Who is managing this SSL certificate? (What?). And so on.

I was told later that was a Career Limiting Move (CLM) on my part, because I wasn't being a team player, and I was adding friction to The Greatest Project Manager(TM).

She did this for at least 50 projects, always getting accolades while creating an absolute shit-storm for support to deal with. As the years rolled on I learned this is perfectly normal for a telco.

miksak|1 year ago

Damn, I saw that dozens of times already, especially in relatively successful startups/scaleups in eu

MortyWaves|1 year ago

I have always called them 0.1x devs. Worked with several exactly as the describe. They provide negative value.

__turbobrew__|1 year ago

Im kindof a Pete.

It is a ying-yang kind of situation where you need people to do the greenfield stuff and just get something working and you also need people who balance that through documentation, rollout, and day 2 operations.

I am in a feedback loop of if what I built sucks I will get paged and woken up in the night, but that only includes operational health and not necessarily “good” architecture and documentation.

I will say that 9/10 times when I cut corners or do something which is hacky it is really only an aesthetics thing and does not affect metrics which matter. The best thing you can do is make things simple and hacky, it leads to quick MVP and is easy to refactor. Complex and hacky is where you get into all sorts of problems.

The_Colonel|1 year ago

> I've seen this behavior more than once and it seems too specific to not be intentional.

I mean, why not, this sort of quick delivery is super valuable to companies. But management needs to understand that the solution is more like a prototype, difficult to scale (in features, team) and that's where it is the engineer's responsibility to be transparent.