Hacker News new | ask | show | jobs
by msdos 3630 days ago
You measure "X" with data.

Like revenue generated, or cost saved, or lines of code saved, or time needed to deliver work, based on current or previous work.

Is this bullshit for you?

3 comments

> Is this bullshit for you?

Honestly? Yes.

I have no idea how many dollars of "revenue generated" or "cost saved" are attributable to me as individual. Or anyone else.

Using lines of code as a performance metric? Get ready to see a multi-line Javadoc on every local variable, or get ready to see some insane Perl-style one-liners, depending on how you're using the LOC number.

"Time needed to deliver work"? Again, what is "work"? If your data consists of JIRA tickets, then get ready for a culture of writing JIRA tickets at a contrived (and inefficient) micro level of granularity.

There's no good way to objectively measure your "value" at your CURRENT company. And what do I do when interviewing you to come here for your next job... just take your word for your measurements at the previous gig?

Out of curiosity, are you a programmer? Because subjectively making stuff up, while under the honest delusion that you're guided by objective numbers, is the single most "MBA" trait there is.

That you have no idea how much revenue is attributable to you as an individual doesn't mean revenue in general can't be measured and attributed.

Hypothetical example. Your employer has 1 billion users. You create compression that cuts down storage costs by 4%. Run the math and you see how much you saved.

If you saved $0.01 per user, you saved $10m. If the average salary is 100K and you saved $10m, you performed at 100x.

I agree the potential for "X" performance is hard to spot or measure when one isn't in proximity to big problems.

Except no matter what, no engineer functions in a vacuum. In your compression hypothetical, how do you measure the contribution of the engineers who did the code reviews? Who maintain the build environment and test suite that let the "100X" engineer quickly and confidently develop? Who wrote the initial code such that it was possible to add this compression after the fact at all? Who spend their time fixing bugs so the "100X" engineer had bandwidth for this compression project at all? Without those people, the "100X" engineer would have taken longer and made more mistakes, or never even attempted it at all. So it seems unreasonable (and even potentially demoralizing to the rest of the eng team) to call that one engineer a "100X engineer".

Things are accomplished by teams, not individuals.

That's true, but what about the sales guy that takes 5% of a $10 million deal as commission? Or the exec team that gets a 10% cut of the increased profits this year?

There was always a huge amount of players at work helping the upper execs and sales teams, from the devs to HR.

I guess OP's post was and the article itself are noting that working your ass off and making a big contribution in SV as an engineer can sometimes be a bad deal, especially when the engineer in question really is talented.

Smaller hypothetical example. The Apple I wasn't designed and hand-built by a team.

https://en.wikipedia.org/wiki/Apple_I

I do not think it is crazy that that work could all be done by the same engineer, testing and building and debugging and all.

With a small experienced team and proper division of lager into vertical slices, that can be done.

You created a brand new compression algorithm that saved the proverbial 4% or applied an existing compression technology that proved to be more efficient for that specific use-case? In the former the employee is obviously 100x (and earned some juicy pied piper patents as a bonus), in the second case the company knew of an existing problem and needed someone, anyone, to take a look at it and optimize it.
I understand your frustration, because when people measure by silly things like LOC then you get a bad environment for developers. I looked on your website, and you have an impressive background and have worked on lots of super interesting projects!
Yes, all of those are easy to bullshit. Someone can put them on their resume and it's not that easy to check. Why do you think we do whiteboard interviews?
I'm not really sure.

In a modern environment, never have I been asked to solve a business problem with:

No internet access, No configured editor, With massive time pressure, In a room full of strangers, In my chicken scratch with a fat marker.

It's not that whiteboard interviews are bad. They're just severely outdated.

They stem from a previous time before it was cheap and easy to interview engineers on actual hardware.

We know that whiteboards are a bad metric. Dozens of scientific studies show that the most effective hiring practice is a general intelligence test coupled with a work sample test.

It's easy enough to create a coding problem as a work sample.

Why do we test a proxy for the work, rather than the work itself?

Because it's easier to gracefully reject people who are abrasive/awkward/black/gay/otherwise a bad 'culture fit?'
Except that will drive away most good engineers. Most good ones I know will refuse to do "take home" problems for interview purposes. I understand them. It is demeaning.

When I get offered one, I send back a quote to solve their problem, at my standard contracting rate.

I've only ever had one dev do that and I paid it (I ended up not hiring him but because of his code, I was impressed he asked about payment!). I have no problem valuing someones time and desire to be compensated for it.

Some companies do all day interviews or at least 3-4 hrs, what is really the difference between spending the day in an office or at least few hours versus at home with your tools and setup?

Are you less offended if I give you 2 hrs of problems to whiteboard while I watch?

There is no situation in which a company can not spend at least some time evaluating your skill set. For me the best would be to hire you based off your resume and see how it goes for 90 days. However, its often unfair to the employee - especially if they have a position currently.

Hiring is a skill for both parties. some people are good at the process naturally, other people put time into being good at it, the third group has no clue and has no interest in learning.

It is a far bigger waste of my time to fly across the country to scribble answers on a piece of plastic while someone stares over my shoulder.
I've yet to encounter any place that had a good way of measuring angry of those things and attributing them accurately to individual developers. On the easier measures, you might be able to reliably attribute them to particular dev teams, but that's pretty much the limit.