← Back to context

Comment by hakunin

2 years ago

I've been contemplating the issue in the headline, as pertains to my value. When I help somebody in 40 mins with something they've been stuck on for 3 months, my value is clear to everyone. When I work there the whole time, and nobody ever gets stuck for 3 months, my value is unclear. Don't know how to deal with this paradox.

The educational system i was put through was set up to teach that outcome scales more or less linearly with effort and time. The first lesson after graduation is that this is not so. Increased effort and time most likely primarily yields more effort and time being expected of you with lagging compensation.

Value and opportunity are chaotic processes in effort and time.

All we can do is to try to maintain the levels of workload such that we have clarity of mind to seize opportunities when they reveal themselves. Honest and balanced colleagues help there, but that is ultimately a missions for yourself only.

  • Helpful partners and friends who try to find opportunities most definitely can help (and in unbalanced relationships, can do it all), like the market research team at a startup.

Or worse: People get stuck quite frequently and ask you for help pretty quickly. You get everyone unstuck, but your own work falls behind and when your boss's boss asks for metrics on developers you have few points delivered and few LOC changed. Your boss tries to explain, but your head is the one that rolls next when layoffs happen.

  • As a senior engineer I've learned that is my job. I take on much less work than anyone else because I know I will be called on to solve those problems.

    This is in fact known in management literature: assign your best people to the least important project. That way the second best can grow to become the best, while the best are always free to help out if your fourth most important project has issues - it isn't a big deal if your least important project doesn't get done on time and if they manage to finish it so much the better. (your best are also free should sales discover a short window where a quick feature can bring in a large sale - though this is obviously easy to abuse)

  • > your own work falls behind

    which is why one should not self-sacrifice. It garners no reward for one. Secondly, if the boss doesn't realize how much of an enabler you are, then it's time to start looking for a new job before the layoffs even starts as a thought in the boss' head.

  • Great workers know when they can help others without falling behind themselves. Or have good communication skills to explain what they were doing.

I've done that as an hourly contractor, I fixed their 6 month problem on my first day, I hoped they would then hire me for more hours on other stuff but they were like nope, that was all we needed. They did tell some other companies that I was good at this kind of stuff but nothing came of it. My first and last day in contracting for small companies.

  • The trick is to do these sort of engagements as a fixed price contract. You could have probably done an assessment in a hour or two. Then you charge on what you estimate is the value to the company.

    • I should have, but it would have been obvious that I pulled a fast one on them as the fix was really quite simple. Instead of building a Hadoop cluster I replace a sql sub query with a bitmask. It really only took an hour to figure it out but they let me charge the whole day.

      8 replies →

Really good bosses make up for this. They push teamwork and collaboration, but at the same time they know the details of what every individual is doing and how they each contribute to the whole, and they can ~accurately compensate/promote/terminate. This prevents demoralization of team members. Team members psychologically need to be recognized for their individual contribution.

These bosses tend to be competent ICs who became team leads, they are best positioned to judge the ICs they manage because they themselves are masters at the craft.

I think an underrated way to deal with this phenomenon is proper self-marketing. Talk endlessly what you have done to prevent catastrophe. Describe the avoided catastrophes vividly so that people get a clear picture.

  • Sometimes you can't quantify actual avoided things. For example you can't prove that a regulation stove actually prevented what could have been a kitchen fire.

  • Self-promotion is incredibly difficult for some people.

    • And the people it comes easy to tend to be labeled as narcissistic, resulting in animosity. It's a double-edge sword.

  • Better yet, be in a work culture where people happily give credit to and praise others.

Work for yourself. The fewer bugs you create, the faster you iterate. And the faster you iterate, the better your chances of finding product/market fit.

One approach to showing value is as follows:

1.) Create a spreadsheet with all of the features of your group's/company's products(s) listed in rows.

2.) Create a column for every team member in the group and highlight the lead developers for each feature.

3.) Then ask each team member to add a checkmark in their column for every feature for which they would be willing to be on hook for 24x7 triage pager duty.

Over the long term - the most valuable contributor(s) on the team will be the one(s) with the most checkmarks next to the features they led development on (i.e. they write understandable code and document well) combined with the most checkmarked rows in their column (i.e. they proactively seek to understand other peoples codebases).

  • Couldn't there then be a risk that now some people want to avoid higher risk projects, and just build the simpler features, and get more checkmarks

    What if the table in fact shows which people are best at dodging the hard work

    Combined with showing who has the most friends in the office (giving checkmarks to features built by one's friends)

    • Agree that there is probably room for improvement to such a process and still a great amount of subjectivity required and a presumption of good faith participants who aren't actively gaming the numbers.

      In general though even if some developers are gravitating to only projects that are simple/trivial, those wouldn't necessarily be differentiators because such projects would have checkmarks by other developers as well.

      Also it can help to have the Product Management team rank the features in terms of strategic importance and criticality to the functioning of the company.

      I'd say the biggest benefit of such a spreadsheet is to provide visibility to leadership about the bus factor of the team. Too often the critical projects are really only maintained by a few team members. There's no incentive for new team members to learn the "legacy" projects versus creating their own pet projec. Then the inevitable RIF or transition happens and the lack of long term support becomes an issue.

    • > Couldn't there then be a risk that now some people want to avoid higher risk projects, and just build the simpler features, and get more checkmarks

      This is kinda a well known phenomena in medicine[0]. Same with lawyers. I'm just reminded of this scene from Silicon Valley[1]. It's messed up and why everyone needs to be very careful with metrics and remember that metrics are only guides, not targets.

      [0] https://www.theguardian.com/society/2016/jan/29/doctors-avoi...

      [1] https://www.youtube.com/watch?v=5sTbjO3eI_0

  • Kind of ignores the risk externalities have on projects no? If you tried your best to deliver something, but another teams priorities changed, or the business/market shifted, or the project got bogged down in planning/politics outside of that team members control, or if the team needs to integrate with a system (external or legacy) that’s out of their control and is notoriously flaky and torpedoes their velocity and morale.

Don't help anyone too much until a manager asks you to help. If someone is really pressing help, tell them that you are busy, but they can ask the manager to tell me to help. This way, you always get maximum credit. Every single manager that I have worked for claimed they were "different" and did not suffer from it. Usually, I give them many chances to see my value. After I am overlooked too many times, I revert to this selfish mode explained previously. In all such cases, my recognition from the manager improves. Sigh.

  • I don't know about that, you might want to receive some help yourself right? In some cases it might be better to work at a place that values cooperation more than competition. You sound like you would thrive better at such a work culture.

    However, often leads just need something in order to know what you are doing, especially managers that don't really closely work together with their team. It can help to just mention it to your lead. Because it is easy to see what you done, but not how you have helped somebody. Just mention it in whatever recurrent meeting you have. And if helping out takes more time, I'd say it is only fair to have whoever is responsible for delivery involved in prioritization, because then it is at the detriment of whatever you are working on, which might be more important.

    Often, it takes less than 15-30 minutes to help somebody get unstuck. I wouldn't enjoy working at a place where people would refuse to help me with something like that, or I would be so pressed to achieve things that I can't spare 30 minutes out of my day to help someone out.

Life and its rewards aren't perfect. Work with honest, intelligent people; genuinely do your best; your days will be much better and the odds will be with you.

  • > Work with honest, intelligent people

    That's such good advice.

    On the same note, it's so discouraging when someone who is not/neither takes over, those people leave (one way or another), and you have to start the search again.

    Or when someone is intelligent enough you don't figure out they're not honest until it's too late. <shiver>

    Anyone who's been around the block a time or two will accumulate those experiences. I hope I've not been jaded by mine.

    > Work is with honest, intelligent people

    Yes.

    • > Or when someone is intelligent enough you don't figure out they're not honest until it's too late. <shiver>

      Very true, and it may not even be malicious on their end, just avoidance and their brain rationalizing/minimizing without them realizing it.

      2 replies →

  • > Work with honest, intelligent people

    This is good advice that’s well intentioned, but (sorry), it can be interpreted as elitist, and in a way that’s detrimental to the reader.

    I am no way suggesting that this is the intention or belief of the parent, but while I’ve got more miles on my odometer than I’d prefer, they’ve informed me that “reasonable” is better than “intelligent.”

    My god how I’ve found that working with reasonable people is so much healthier, more productive and rewarding than working with the unreasonable* intelligent folks.

    *I fully grant to my current and former colleagues, friends and associates that I have been irredeemably unreasonable any number of times. Consider this a small thanks :).

    • Totally get where you're coming from, but it's also kinda splitting hairs.

      Being reasonable is part of being intelligent. Surrounding yourself with intelligent people doesn't necessarily mean "surround yourself with the highest IQ individuals you can find." (not saying you're saying that explicitly, just that i think you're just using a definition of intelligence that's narrower than the parent) Working well with others, understanding when one has made mistakes and being able to admit to it, understanding both the known unknowns and the unknown unknowns of a problem...these are a better mark of intelligence than a mensa membership.

      6 replies →

    • > This is good advice that’s well intentioned, but (sorry), it can be interpreted as elitist, and in a way that’s detrimental to the reader.

      There's nothing wrong with elitism as long as it leads to initiation rather than gatekeeping.

      > My god how I’ve found that working with reasonable people is so much healthier.

      Could not agree more. Most people can be trained well to do any job required of them. What cannot be trained, and certainly at the behest of the employer is interpersonal skills.

      The one situation where I would prefer someone who is intelligent at the expense of being personable is if I intended to hire 2-3 absolute weapons to be the core of a startup.

      6 replies →

    • Contrary to the example set by the loudest voices in tech, "intelligent" and "reasonable" are not mutually exclusive.

    • I know OP already responded but people who are smart, kind, and are down to earth are special. You have to keep them close, and it’s pure bliss if you find a company filled with them.

      It’s life goals to be smart, kind, and down to earth. It really comes from a LOT of experience though.

    • People known for being purely highly reasonable people know that they don't know everything and aren't afraid to learn and be humble and are often a net positive.

      People known for being purely highly intelligent people often think they know it all and are often a net drain.

    • I think [reasonable] falls under the heading of [honest].

      Both honesty/reasonableness and intelligence are required. A family memebr is tearing her hair out about having to work with some assistants who are honest, well-intentioned, and pleasant, but who are just mentally incapable of keeping things straight — they literally screw things up and make more disorganization than they fix (fortunately, better help is supposedly on the way).

      Overall, in hiring and working with people, most of the time, a warm body is definitely NOT better than nobody.

    • As the GP, yes good point about reasonableness. I didn't word it well: I meant people who act intelligently; intelligence by itself certainly doesn't yield that!

      > it can be interpreted as elitist

      If "intelligent" is taken as 'naturally superior intelligence', then I can see what you mean (and I think that idea is a egomaniacal delusion). What I mean is people who choose to act intelligently; that's quite democratic.

  • Great approach! For the past 2 years I keep experimenting with different ways to track day to day productivity. It has helped me tremendously in assessing how I should feel at the end of the day about my work day and the amount of time I put towards work. (I tend to overwork myself significantly). It is of course a lot harder to apply this approach to individual productivity tracking across my teams. But I do now believe, based on self experiments and within smaller teams, that there is generally a lack of visibility of knowledge worker productivity. Especially within larger companies. WFH and hybrid makes this more crucial to have for both management and self assessments on the IC level.

  • That hasn't been my experience. I don't get to choose who I work with, my days are stressful and unfulfilling, and my career has stagnated.

    • Not everyone has that option, as you say. My career was in a similar dead-end situation at one point; there was no immediate solution - nothing was going to make tomorrow or next month better than today.

      Finally, I accepted the solution was long-term. I made a long-term plan - to do what I really loved - and focused my attention on that, and slowly built up the resources, skills, etc. for that plan. One wonderful side effect was that the dead-end part diminished in my mind; sure, I still had to do it, it still sucked and there were some awful days, but it would pass. I didn't matter so much; those people didn't matter; it was like one of those movies where the kid knows that someday they will leave the depressing, dead-end town they are stuck in today.

      I hope that helps a little in your situation! Good luck!

    • Sorry to hear this! At the risk of repeating what others in your life may have told you, have you considered working for a new team/company? I find it of utmost importance to find a job/career that is intrinsically fulfilling and rewarding to you. Extrinsic rewards like money are great, but you can only slog for so long for only money before you burn out.

      I've personally been fortunate to have been able to form a network of a bunch of different well-connected folks so I can always choose who I get to work with in the event that companies shut down or get acquired or such and such. I feel the value of such a network does not get touted often enough.

      1 reply →

  • This is a great answer. The only thing I would add is that you can take mental note when you accomplish something that anticipates and preempts future needs and challenges. It is ok to make brief mention of these things from time to time when appropriate. If nothing more it helps coworkers and bosses realize that you are putting in some thought and effort for the needs of others and to make things go more smoothly behind the scenes.

    Doing this effectively requires tact. Try to mostly bring up your silent efforts casually, and be judicious about how often and in what situation you mention it. If it gets interpreted as an "I told you so," an excuse, self-importance, etc, then it will probably do more harm than good in terms of your standing with others.

    Might be helpful to some degree. But won't save you if your organization's culture simply doesn't value your work or more generally doesn't care about proactive, methodical improvements that have no flash or immediate payoff.

  • reality feels like there is a mix of people with different motivations. I think the paradox exist because the odds are not clear

  • I'm going to add: in a place where they have the bandwidth to be honest and intelligent. Sometimes good people are in bad situations. It's important to recognize this.

  • Another perspective: if you are not in a position to change the rules of the game, understand the rules of the game and play that game, not another one that you would like to play or that you think is more fair to play. Alternatively, if it is not the game you want to play, find a place where that game, or a similar one, is played.

  • >Work with honest, intelligent people

    Not too many of them around, are there? You can have either honesty or intelligence but not both.

  • > your days will be much better and the odds will be with you.

    In the context of one's effort valuation it seem to be a very bad advice. Unfortunately.

    • This kind jaded, reductive answer reeks of sour grapes. I've seen so many adopt a transactional mentality as a sort of defense mechanism against the indifference of the universe, and in the process they unintentionally blind themselves to numerous daily examples of people just trying to do the right thing. Sure the world has problems, but if we can't see both the good and the bad then we become embittered and small, hateful to ourselves and those around us.

      3 replies →

    • Intelligent people will see that you solved issues before they even happened.

      So in small teams where visibility is clear those things are obvious.

      It's in larger orgs where you want to climb the ladder that you get bonus points for the problems fixed but not those you prevented.

      4 replies →

Your managers need to understand the work that you're doing. When I review someone's code and I see them fixing something potentially catastrophic but that never happened, I definitely remember that and congratulate them. When I see a team member ask a question that makes me or the team rethink implementation strategy. That is very valuable. When a code reviewer finds a potentially critical bug in my code, or just a nuanced bug, I remember and appreciate. Because I fully understand that those are potential p0 or p1 issues.

And great engineers are consistently good at this type of passive, keeping the lights on work, but it does not reflect on their quantifiable work, so orgs do not include this in performance reviews. It is up to your manager to recognize this and advocate for you.

  • Even when they do recognize it it’s unlikely to be weighed the same as the engineer who heroically stays up all night fixing a critical issue.

    Especially with many organizations focused on data or metrics for performance reviews or promotions being able to say you fixed an outage that was costing $X million per hour comes across much better than a vague counterfactual notion that your high code quality prevented Y such outages in the first place.

I went on holiday for 2 weeks. Came back to find the team had spent a week on a 5 minute task that had been clearly documented. Nothing had moved forward. Spoke to my manager that day and from that day forward it was clear what my value was. Eventually lead the team and helped the team develop processes and initiative so they could be productive in my absence.

Up until that point I knew my value but I don’t think anyone else quite got it.

That's not true, your value is clear just subtle.

If your solutions tend to be more stable from the get-go, it will get noticed at most places. There are always going to be that odd company where that's not true, but in my experience, simply doing higher quality work gets appreciated.

  • Well it's not 'clear' when every promotional process I've encountered doesn't reward such forward-thinking preventative maintenance compared to someone who postures themselves as a hero going around putting out manufactured fires.

Time.

Your value will emerge with time.

Just keep calm and carry on.

Good and bad times will do their usual sinusoidal dance but your slope will be pointing up if you zoom out.

There will be unfair promotions outside of your team, reductions or freezes in yours (companies have tendency to throw people at problems = inflate dysfunctional parts; if you have well performing team - they won’t let you grow short term; just wait it out, they will eventually).

Me neither. And I've had a similar issue with the first case. You do your work and help someone finish theirs, people still think you only did you job (even if people do credit you, you still have normal impact).

The psychology of workplace is quite subtle and almost backward. There's a motto "squeaky wheel gets the grease" .. to the point I'm thinking of trying some games. Like designers who produce crappy options and one good to toy with higher ups thinking they decide. There are some ideas in that vein so you flip the relationship and benefit from it instead of bleeding.

Value is in the eye of the beholder is what I discover. Got to play the game.

If you are an IC, you play it up with the right people. Those right people fight for you instead of the other way around. When the “we need to cut the fat” talks come around, suddenly you are not on the chopping block. But that also assumes the people fighting for you are not on the chopping block.

Soft skills across the industry is highly under valued. Knowing when to pick a fight or hold your tongue is also important (ie, reading the room).

I hate it but you got to do what you got to do to get that cheddar

It's possible to phrase the value proposition to align with what you want to deliver.

You can phrase it as "I help teams deliver on time by making sure they don't get stuck." Or "I increase a team's velocity by preventing mistakes that stop work."

It's how you sell yourself and then, how you tell the story of what happened. Being able to tell a compelling story is important.

  • The issue is how do you provide the evidence for that. In other terms, how do you differentiate your effect from that of Homer Simpson's Bear Patrol and Lisa's tiger-repellant rock [0]?

    [0] https://www.youtube.com/watch?v=xSVqLHghLpw

    • It is really really hard to do that in a context where its not embedded in either work culture or appreciated by your lead.

      It is easy enough to 'measure', a good lead would value how you benefit the team and enhance your co-workers productivity and seek to understand this part of your contribution. He or she could just ask your peers, it is not science.

      If this does not apply to your situation at all, then leave because no amount of evidence will ever force your superiors to accept it, it will only antagonize them. You do need to make your case sometimes, but the level of proof should not be that high, you need some trust in order to function as an org even if it is exploited sometimes.

My anecdata is to be vocal about your works, like having short knowledge sharing sessions to show it to your team/manager. Don’t be afraid of little things, your team would learn something from it.

  • Agreed but selling your work is an art. Sometimes folks try and sell it so often that it makes me wonder if they are really getting anything done.

    Having a boss that loves to sell his team's work to his boss also works wonders.

Modern “agile” systems don’t work well with you. They want you to deliver X points of features in 2 weeks. Sounds like you’d be better off as a consultant? But then you need to do all that biz dev stuff! Or find a great CTO to work for (or be the CTO) who understands. You only need one job.

  • I always laughed about those X points targets.

    In the end people ended up simply inflating the value of stories.

    In my previous team I had to argue with a person that 2 story points to add translation keys were ridiculous.

    To which the EM argued that 2 was okay because he also needed to write few accompanying tests.

    I have nightmares thinking about this stuff. It was literally quicker to add the translation keys and that pointless test than to even discuss and vote the story and debate the points..

    • Company has a goal for 5% increased velocity, what they want: teams get more efficient at pushing stories through to completion, what they get: teams just estimate 5% higher.

      1 reply →

Think of it this way: when a principal engineer is hired from outside the company, what is the forecasted value of that engineer? How was that determined, since they have yet to do anything? If Andrej Karpathy joined your AI startup, people won't say this person has unclear value. It's because of the impact they've had previously and what other people have to say about that person. Value is your reputation.

It’s dealt with by knowledgeable managers that recognize and award your skill according.

If you don’t have such a manager, perhaps find them. Or become them.

An adjacent problem is how to know that you've really prevented issues/others from getting stuck with whatever you were working on. No system is perfect and engineering is also an art of knowing when to skip which corners. If nobody sees value in your preventive work then maybe there isn't any?

I am dealing with similar. I can provide solutions 10x faster than anyone. Everyone looks up to me, and are dependent on me for solutions to everything.

However it is clear that noone is improving and that the process IS me.

What I've been trying to do is make sure that my scope and role is fully clarified, and any "extra" activity that I perform is documented and flagged. Anything that becomes a "common" activity implies a missing part of the process - be it a role that is missing, or a skillset that is lacking.

Before you start thinking that it is pretentious or self serving, it's perhaps the opposite - you owe it to the process and the team/business/organisation to make them see what you're putting in, else they fail to find the gap.

It's not paid off yet, but hopefully it will yield results within the next 6 months.

  • I do hope you’re recognized.

    One piece of advice, I found myself this person once - it’s the road to burn out city to be the critical path answer to everyone on the team’s challenges. You sound like someone who is very generous with your time and support. In my experience once people have found a critical path there is no point at which they “stop.” This isn’t because they’re trying to hurt you, they’ve just found the answer so to them it doesn’t seem wrong.

    It will take even more of your time, but you ought to consider practicing giving less answers and asking more questions of those who seek your help to try to help them unpack the issues themselves. It will feel more tiring at first, but you’ll gradually help the others learn and also create a small bit of friction that will encourage them to try their own solution or two before seeking you.

    Management asks are separate/ they can actually reward you with compensation and promotions for this extra work. But the team asking for help won’t stop when you get more comp unless you start teaching that you’re not the answer.

If they don't pay you to fix those problems then don't fix those problems until they start paying you for it. You'll have to deal with the psychological torture of watching things go horribly wrong. So it's up to you how to deal with it.

> When I work there the whole time, and nobody ever gets stuck for 3 months, my value is unclear.

Well, a problem that hasn't happened yet is a risk, right? So you can apply risk assessment math to it:

Value = Estimated risk of the problem occurring * Cost if it happens

Other problem on similar spectrum, when you have a good performance and your boss notice you, their expectations can increase and increase until you unable to deliver, then suddenly you're bad.

See also: The Locksmith's Paradox - https://medium.com/@pk.patrick.kelly/the-locksmith-paradox-6...

  • "When you do things right, people won't be sure you've done anything at all."

    • There is a quote about the job being free but you are just paying for the 20 years experience.

      The opposite is the lemons market. It is why getting some wet building work done that is actually waterproof is a fucking dark art. Even the pros hiring pros get fucked because the “is waterproof” part is invisible.

If the headline were actually true...

Agree with your point, solving problems gets you points, avoiding them doesn't. My cynical view of the headline is, that a lot of people do get credit for solving problems that never really existed, simply either fabricating (intentionally or not) easy to solve problems or vastly overblowing problems they just happen to have a "solution" for.

If ypu successfully fight a fire, you are a hero, if you prevent fires it is just normal and nothing special.

I'm currently in an unrelated field, but with a similar tension of unclear value while things work. The way to deal with this has been to keep a tally of checks on important systems, whether it's daily, weekly, monthly, with links to undesired outcomes should the process that has been checked fail. This list of you checking the processes is one way to "prove" your value, at least for ppl who wouldn't necessarily understand naturally.

Security/insurance paradox: when you do some jobs perfectly, it feels like you're doing nothing. Sadly, the only (ethical) way to counter such narrative is to spend a good amount of your time making reports showing how well everything is working and how it's not something you can just operate autonomously without disaster (to answer the inevitable "well the job is done, what are we paying you for?)

1. Donald Rumsfeld was right when he said “A’s hire A’s, B’s hire C’s”. 2. Environments where people can’t tell the difference between 1x and 1000x engineers lead to performative work and arsonist firefighting. 3. When folks in your organization can’t recognize (and reward) high impact, it’s probably time to get out, largely due to the first two points.

It's mostly a question of finding organizations that recognize and value that sort of contribution. It also helps if you track who you work with and what you help out on every day, so when review time comes along you can list not only your 'regular job' wins, but all the wins you helped teammates get.

Presumably that's not -all- you do? Or did you sit around for 3 months going quietly mad waiting?

Assuming you are doing other things make sure that is visible.

Also why did your colleague wait 3 months to ask you for help? A couple days would be OK, a month would be crazy. You should poll them and not wait for an interrupt.

It's always worth making some effort at promoting your value; no one else is likely to do it for you.

Depending on your context, if you are at the top of the foodchain as described here, minus the recognition for it, one option is to simply add grist to the mill. Creative problems you can leave for the team to sweat and for you to come and slamdunk.

The problem with doing something right the first time is nobody appreciates how hard it was.

The problem may be in the relative value contribution. A senior eng that rights a project on 3 days which had been going on for 6 months is incredibly high value/he work.

A Sr eng who spends 6 months coaching a junior engineer has much lower value/hour.

I think there’s a “this is life” aspect and a “this organization is immature aspect”.

A mature organization respects the process that prevents getting stuck for 3 months. But… they may be more stable and less nimble. Boring orgs don’t like heroes.

Unfortunately one of the best ways is to toot your own horn. If you work with good folks, it will be appreciated for you to present a tricky problem you solved, or to present a design you put forth that would save everyone time.

The lean mantra "Make work visible" is not only good at an organization level but also as professional feedback level. Although if used openly for promotions it will cease to be a good metric.

> Don't know how to deal with this paradox.

Think that it is the management's fault if they misjudge you. They have the chance to judge you correctly, yet they misjudge you. Their fault entirely.

Your value gets revealed in your absence. To leave and the company tanks- is a expression of the value shadow you throw.

Having a carefree life of no technical debt is not its own reward? Firefighting is stressful :)

At least you're likely not a person who works at a freelance agency where you purposefully do poor work or break things, so then you can bill more time "fixing" the problem - until the client gets the wiser at least, or there's another more oblivious client you can grift much more easily who doesn't know better?

The above seems to be how the top billing agencies on Upwork function, with fewer staff you can grift more people because the hours being billed aren't honest, and so you can have more clients and reach the "top" earnings position faster and more easily; with the same practices existing at least on one of the two prior platforms before oDesk and Elance merged.

Easy - half a$$ your code and when it breaks - swoop in, "fix things" (actually do it right) and play the role of hero! (I've seen so-called "Rock Stars" at places I worked do this over and over)

  • In high school I actually had a friend teach me this in a humorous way. In football we did sprints (the kind where you physically run) at the end. He said -- half ass the sprints. Then on the last sprint, run as fast as you can, you'll have more energy left, and when they see you running fastest you'll get all the credit. He was doing it as a joke, but lo and behold he out runs everyone on the last sprint by a lot, and the coach specifically pulls him aside as an example of how everyone else should carry themselves.

    He's one of my favorite pranksters. But needless to say, the football team was not very good.

    • Nice example for the (common?) inability of many managers to assess performance realistically.

    • In the case of football that might actually be a good lesson: save enough energy for the end of the game so that you can play best when the other team is tired. Of course you need to play the whole game, but if you play all but the last 5 minutes working just hard enough to keep a tie game, then you can pull ahead in the end.

      This only works in time limited sports though. Most real world situations are not time limited like that and so the advice doesn't apply.

      2 replies →

  • There's a famous green text on 4chan, where a user tells he got a sysadmin job which was so boring he started crashing stuff left and right and blocking an entire office even for entire days.

    By the end of the day he would plug back something and come out the "servers room" saying he fixed that and get everybody's praise. Even got him two raises in the span of 18 months.

    That's how crazy it is.

    I know a variation of this sort of story, where a good sysadmin/DevOps team was halved and then the problems started. The company didn't have those issues exactly because they had a good surplus of eyes to handle everything.

    They realized only later the mistake.

    • I do not think you can trust everything you find on 4chan. Yes, dysfunctional companies exists. No, someone writing something on 4chan does not imply it ever happened.

      6 replies →

  • Another option is to work at a consultancy where you hop aboard a new customer project every 3-6 months. Approach every customer as an opportunity to do some resume-driven development and pick a bunch of untested new technologies to experiment with. Be sure to do at least a couple of presentations to tell everyone about the hottest new things you are doing to bring value to the customers. Leave the project once it slowly starts sinking and then just keep hopping from customer to customer. You will be far away once the sea water starts coming through the windows and the non-technical people directing these projects will never figure out what you did.

    I have seen that this is one of the most efficient ways to advance your career especially in larger consultancy companies with hundreds or thousands of different customers.

    • For maximum results, trade-off with a buddy:

      Spend Q1 each crashing your respective project; spend Q2 as a fixer undoing that damage using his knowledge of his own work.

      You’re both cutting edge and a proven fixer!

      2 replies →

  • Don't do it right, double down on the flaws. You had a 3k SLOC single function (all in main) C program to do something that could be expressed cleanly and clearly in 200 SLOC. Some specific sequence of inputs leads to an error. Instead of tidying it up, removing the repetition that led to the mistake, you copy/paste everything again and add another 100 cases to your various switch/case statements (actually you use if/else because switch/case might make things clearer). The specific problem is solved, but in a year another buggy code path will be discovered and you'll have another chance to play hero. In 5 years it'll be 50k SLOC of C all in main, that could have been under 1k SLOC (still all in main). No one else will be able to fix it but you!

  • It is more easy: do your job right, but do not comment, fix or somehow improve work of your colleagues. Let them fail, aknowledge failure and only then come with fix, get all praise.

    Never point to the possible issues at the code reviews, retirement refinements etc.

    • This, but seriously:

      Let your junior colleagues fail on a schedule within the margin of error on your planning, but keep a close enough eye on them so you know how to bail it out if they can’t pull it together with a little extra time/guidance.

      Okay — still give good code reviews, but if you let them face-plant a little on design, etc, then they get experience. And you don’t look dumb when it turns out they were right. But you do look like a hero when they’re struggling to get across the line, and you whisk in to fix it.

      1 reply →

    • That is naive take, you really think if you work hard on improving code, pointing out flaws, there will never be any issues?

      In reality that I live, there is never enough time, if you have 3-4 team mates pumping features out, it is already impossible to prevent every problem and review every piece of code.

      I don't have to be cynical about it, it just happens that issues will crop up over time and I am there to fix them and there is never enough time to prevent them up-front, because if you will try then you will never deliver anything. Ship fast and break things is maybe too far - but still shipping something beats not shipping ideal state.

      2 replies →

  • I have seen so many people do this wherever I have worked. In fact there is another thing that they do i.e. when management pulls in the schedule they will meekly agree to it because they already know they are going to half-a$$ their code. Now they are heroes much before as they are "yes-men" and will be targeted for promotion. Swooping in to fix things just adds to their already loaded credentials.

    The ones who are honest and actually disagree are banished and their lives are made difficult. They are called all sorts of names the most important being "not a team player".

  • This is exactly what happens at many software companies. People,sometimes under pressure to meet deadlines, apply totally crazy fixes to stop one problem and create new problems.

    • I’ve seen it both ways. In one case dev spends 3 days refactoring code beautifully to fix the bug; ships to production only to find out that it wasn’t the only bug in this code path. Now they spend another 2 days refactoring before repeating the process and so on. Meanwhile, the company is losing money/customers/favorite vanity metric/whatever.

      Or. Dev hacks a fix up, sends to prod. Sees another bug and fixes immediately. No loss in revenue/customers/favorite vanity metric/whatever. Dev creates ticket to refactor/fix code properly and adds to next sprint. PM removes from next sprint to get capacity for further resume driven management projects. Issue crops up again due to hack. Original dev is now able to do ticket originally removed from sprint.

      1 reply →

  • Having people thank me for being 'on top of' a problem that I already know about because I'm the one who pushed the button that broke it... It's gross. It feels gross.

    Much happier when I can fix something quickly because I have some tools or logic in the codebase already that lets me do something quickly by being covered with sanity checks so I can zip along without driving us off a cliff.

    • There's some people who break something, realize it, just leave it as is, and cannot comprehend why you would think they should maybe help fix it... So I'd guess the praise is for not being like that.

      1 reply →

  • I was just considering it, but never had a chance to see it in real life.

    I'm dumbfounded about all this, you spend years learning and reading books about the craft but the only topic which will matter is how you can con the game ?.. weird.

  • I don't think you're wrong, but god what a waste of time. Can't we just fix the actual problem?

    • One middle ground I've found is to write tools or processes for myself or a mentee, with the intention to avoid avoidable problems. And then use the next time someone breaks things as an opportunity to advertise the preventative measure.

      Frequently I end up having to do one more PR to get the tool to correct the exact problem the team experienced, so in practical terms is much less of a 'witholding' and more of a 'burning in' situation. But the final product does end up getting written in hours instead of days so while I don't get the credit I feel entitled to for foresight, I get mis-attributed with being able to solve difficult problems quickly.

      Which is kinda true. I hate being caught flat footed so I'm always squirreling away fragments of a Plan C.

  • I don't do this for one reason - I cannot hold others to a high bar if most of my code is half-assed.

    I usually write my best code to show others it's possible to write good code and ship on time, with exceptions of course (and I usually document in code why its half assed)

  • Would you feel good about being that kind of engineer, if the external validation was great enough?

    • We review each other's code before it goes in. If the team says they're happy to work with it, then I've fulfilled my obligation. I am literally not paid to write the best code in the world. In fact, the company gives bonuses for fixing things, so they are in fact paying me to sneak bugs in.

      What you do though is, you leave a very obscure edge case unhandled, make note of it, then just don't tell anyone. Invariably someone will hit it exactly one day before you're scheduled to go live. Then just apply the fix (make sure to procrastinate long enough to simulate working on it) and voila! The longest I've seen an edge case go unfixed in this manner has been three years.

      Though truth be told I'm not smart enough to add bugs on purpose, I just sometimes notice I've failed to address an edge case and ... leave it. If it turns out to be important - I can fix it when the fix's value is maximum. Half my day is spent fixing others' unhandled edge cases, so it's nice to have one tucked away for a rainy day that you know you can fix easily.

      2 replies →

  • This is a slippery slope, IMHO. It can easily get you to be the next "tactical tornado" of your team (cf. John Ousterhout, A Philosophy of Software Design).

  • For i in employment ensure there is someone who checks in with me every month when they read this line of code, else, stop code from running so they come to me.

Play to your leadership. Exceptions apply, but female bosses tend to appreciate averted crises more than male ones.

If your boss is male, let shit fail. You'll get hero points for responding to incidents.

A female boss will quickly suspect incompetence if things keep breaking (i.e. see how far half-assed DIY home repairs get you with your wife before she loses patience with you). Your hero points will come from mitigation.

This paradox comes up a lot in security. IME in this particular field the gender stuff is less relevant since everyone is paranoid. But when we run stuff up to C-levels, it's only the female execs and lawyers that really stop to consider possible issues-- the men just dismiss everything until it happens.