|
|
|
|
|
by kartickv
3408 days ago
|
|
I had this exact same conversation with a manager who seemed suprised when I told him people are not interchangeable cogs. He said that some people may be quicker at a particular technology / domain / whatever, or quicker to ramp up, or do slightly better work, but smart engineers can and do learn anything needed and do work that's good enough after a ramp-up that's short enough. Beyond that, he says, there are minor differences he doesn't worry about as a manager. I didn't know how to respond to that. |
|
The typical interaction between manager & engineer is that a manager tells an employee what to do, and the employee does it. From the manager's perspective, any employee that's reasonably competent will do: success is binary, either you did the assigned task satisfactorily or you didn't.
From the engineer's perspective, if you're good you considered a lot of alternative ways of solving the problem and finally settled on the best. It seems ridiculous that all employees could be interchangeable, because it's a pretty good bet that some engineers did not consider some of the alternative solutions you did. But remember that the whole reason the manager hired you was so that he didn't need to think about the details. All of those alternative solutions are outside of his conscious awareness; he's condensed his mental model of the problem to a binary "is this good enough to ship?", which frees up mental space for him to think about other stuff. Among those engineers that you think of as "not good enough", there are some who may not have thought of the brilliant solution that you came up with but still have code that is "good enough to ship" in the manager's estimation, and those are the irritating folks on your team who IYNSHO always produce shitty code but stay on the team because they have your manager's political favor. And then there are the folks who both you and your manager agree are too shitty to get the job done, and they're fired.
Who's right? Well, both of you, and neither of you. It's fairly likely that you're overestimating the quality requirements for the job, which is why a number of your shitty coworkers still have jobs. It's also fairly likely that your manager does not have complete visibility into all the long-term consequences of all the code being produced, which is why whole teams occasionally just catastrophically fail.
But it's worth remembering that every time you enter a transaction, you're having your work reduced to a pass/fail grade. It's the fundamental bargain you make when you take a job, and it also is the fundamental bargain you make when you sell a product (entrepreneurs are not exempt from this, and it's a major cause of startup failure among technical founders...including, quite possibly, mine). The advantage of producing better work is that it qualifies you for more different opportunities - which may or may not be relevant, depending on whether you take advantage of those opportunities.