Serfs occupied a portion of land and owed a portion of their crops to the lord of the manor or their feudal lord. It was slavery in all but name.
The modern company is a kingdom. Managers are feudal lords. Managers can decide to hire (and fire) employees such that the employee is essentially beholden to that manager. Employment status is analagous to the land serfs worked.
The problem is that most companies have little internal mobility. If you don't get on with your manager the best thing for you and the company is to work for a different manager yet most companies make this exceedingly difficult.
At Google, individual engineers are far more empowered than that. There is a strong internal process for simply changing projects.
Also, most companies have performance feedback come solely from managers. Managers are an important source at Google but peer feedback carries a huge amount of weight.
So in many companies employees leave because they can't escape their feudal lord. I get it. The problem here is corporate feudalism.
Companies need to stop making it easier to move to a better team or getting a pay raise by leaving the company rather than moving within the company.
What happens is that these firms accumulate a vast, stagnant layer of middle and upper management types who have no incentive to work any harder, take new risks, or develop talented employees. Instead, they're simply cashing in on a safe paycheck, riding a pretty cushy high horse, and fiercely fending off anyone they perceive to be competition for their sweet gigs.
Compounding this problem is the fact that mobility slows to a crawl, because the queue is full. This breeds dissatisfaction with the young, ambitious types, while simultaneously breeding resentment among the older, entrenched types who adopt the grumbly "kids these days..." defensive mentality.
Now, there are plenty of ways to screw up the up-or-out system: bad KPIs and standards, inept evaluation processes, etc. But no system is perfect, and at least a system that forces honest dialogue with managers about their future advancement prospects is better than a system wherein lousy managers can overstay their welcome.
The U.S. military has a similar up-or-out policy (especially among the officer corps) and the result is (more often than not I'd say) yes men who latch onto a strong leader type and ride his coattails into a senior officer position. The result is poorly informed and advised leaders, and senior staff who spend their time figuring out if what they're doing will be approved "by the old man" instead of actually promoting the function of the organization, fight and win wars.
The key difference between up-or-out and the alternative is that, in the alternative, a certain segment of the employee base plays the politics game, and a certain segment kicks back and stagnates in the middle, while the rest try to get ahead honestly. In up-or-out, at least the third category has a decent shot. In non-up-or-out, the people trying to work hard and advance on merit will run up against the entrenched slackocracy and the political Machiavellians.
In my post, "problem" was referring to the parent post's "politics organized around moving up." My point is that most corporate cultures have elements of that focus on upward mobility. Obviously its prevalence varies from company to company. But I'd rather take a culture with an over-focus on upward mobility and potential for upward mobility than a culture with even a lesser focus on upward mobility, but less potential for it (due to all the dead weight).
I'm not holding "focus on upward mobility" equal in that assessment.
This means during prolonged periods of peacetime, a form of regulatory capture happens where the metrics used to evaluate promotion become decoupled from actual fitness of purpose.
For example, since success in academics is usually the first requirement to even start in any position above the most menial, anyone who finds it difficult to toe the line and waste hours listening to someone drone on about a topic totally unrelated to their purpose in life, or enthusiastically embrace make-work homework assignments, will likely have a hard road, no matter how well qualified they might otherwise be.
One could argue that the U.S. military in particular has had a tremendous opportunity this last decade or so to conduct exactly the kind of wartime evaluation you're talking about. But I wonder if the evaluation metrics are optimized towards peace-time?
In many respects, David Petraeus is the perfect embodiment of these political principles. He published, he politicked, he maximized his media exposure, and he hobnobbed within the right DC circles. I'm not qualified to judge whether or not he was as good a leader as many believe him to have been. But he was certainly a top-notch political operative.
(Other government agencies, e.g., the CIA, have very similar internal political incentives. The game is almost the same. This may explain, in part, the fluidity between military leadership and Agency leadership).
For the medical corps, above O-6, they usually have commanded at least one smaller facility, before they get an administrative flag assignment. More than a few have flamed-out at O-5 and O-6 commands.
In a carrier squadron, being XO or CO is preceded by being a department head. Maintenance department is a good one to get a command, but there are other departments.
The Army Medical Command had the problem with senior staff, where they were a large number of senior officers, O-8/O-9, involved in the Walter Reed scandal in 2007, were either fired or retired. Covering over issues with memos and paperwork up the chain-of-command by "yes men" didn't cut it.
If they can't, they deserve to drown themselves. If they can, they will filter out most of the fakers, and collect a team that can get stuff done in real adversial situations - since a great commander with a sucky team will suffer, and an okay commander who is able to build a great team will get whatever achievements are possible.
In the worst case scenario, a large number of people go "up" to the point where they're no longer capable of doing the job they're in and then go "out" after a brief period of doing their job badly.
These people may well have been very competent at their previous level of authority and so the business as a whole loses out.
Additionally companies which state outright this is their policy often have quotas of people who should go "out" which I've seen, in particularly talented groups, lead to an almost random selection of people going out despite the entire group being so close together in ability than no meaningful distinctions can be made.
EDIT: re jonnathanson response below, agree completely that if up can mean a person is performing solidly and achieving good results while improving year on year then such a system can be very beneficial. My criticism is much more focussed on systems where up explicitly means moving through grades, especially where there are attempts to apply quotas to who goes up and who goes out.
AKA, "The Peter Principle."
The Peter Principle is a belief that, in an organization where promotion is based on achievement, success, and merit, that organization's members will eventually be promoted beyond their level of ability. The principle is commonly phrased, "Employees tend to rise to their level of incompetence." In more formal parlance, the effect could be stated as: employees tend to be given more authority until they cannot continue to work competently. It was formulated by Laurence J. Peter and Raymond Hull in their 1969 book The Peter Principle, a humorous treatise, which also introduced the "salutary science of hierarchiology".
When the PP is active, people "rise to the level of their incompetence", and then stay there indefinitely. In Up-or-out, if you stop rising, then (after some suitable attempts to help you get unstuck) the company starts encouraging you to leave (with increasing vigour). They get the benefit of your knowledge at every level that you can operate at.
In this case, "up" means improvement more than it necessarily and literally means up the ladder.
I realize this reponse could be interpreted as a bit of a no-true-Scotsman reply, but honestly, it's intended to be a clarification of my original post.
That was their deal: you start out as Junior Developer and when you are there for 5 or so years, you can decide whether you specialize into technical stuff or people stuff. From phone calls with recruiters I had the impression this is not an unusual model.
My company does this all the time. Didn't do well enough at the job interview or you're a total bozo and poor at understanding technical concepts/writing code? No problem! They'll appoint you as a project manager and you will get a team of developers to manage. At the same time, the brightest and the best engineers rarely get promoted because they are keeping their heads down and actually getting shit done. And there is little incentive for the company to promote such people because they lose a skilled and productive programmer if they do that (they don't care about anything except for how fast you can crank out code - one of the typical ailments of consulting companies).
It's a very sad state of affairs. Makes me want to quit really.
It was because their managment positions were so stressful and so communication heavy, that most developers were totally not suited for it, and just plainly quit.
The people that promote individuals into management roles are often just as naive. The individuals are expected to develop new skills simply by virtue of having been promoted.
A proper Manager who is coaching his staff, performing performance reviews, ensuring the team has all the resources needed to do their jobs as efficiently as possible, protecting the team from unnecessary bullshit meetings/interruptions, etc is a completely different story.
Being a technical person, I used to doubt this too. But having seen to many bad managers in such a short time, I believe it's true. When you are senior enough, in a small company, you don't need a technical supervisor. You just need someone you can trust, who gives you political backup and who will evaluate you on your results.
This should be required reading:
If your job is that shitty, and you're that smart and good, quit and find a better job.
Now of course, some companies are better or worse than others, some managers are better or worse than others and so on.
Personally I don't see myself a manager because I lack the social skills. In some days I barely remember to do minor things like sending out an email to my team at the end of the day or ask about the status of some roadblock.
Ofttimes, what looks like meaningless corporate bullshit to a developer looks like valuable fertilizer to some other part of the organization, or to a regulatory body, or to something else that makes the company go. "looks like" phrasing was intentional here.
I was a damned good developer back in the day, and am working on being a good manager (of managers at this point). There is an insane amount of red tape that sprouts up over time in any large assembly of people. Some of it has some positive purpose somewhere; some of it has no evident purpose.
The best managers seek to protect their teams from unnecessary BS, but that doesn't necessarily mean eradicating it from the company. Shielding can be just as effective locally, at a tiny fraction of the cost.
In my experience, it's usually _not_ the line managers but the people above them. I've left several jobs, but almost always wasn't because of my immediate manager.
The challenge managers have to face is balancing competing priorities. If you're a manager, you have customers/users that you need to please to keep the money rolling in. You have an executive who often has very strong opinions about how to please those users. You have employees that each have their own career goals and interests, which may not necessarily be aligned with yours. You have cross-functional peers who you frequently need to rely on for favors, and yet often speak a totally different language from you. And you somehow have to make all of the above groups happy, or at least not totally pissed off at you, to keep the organization functioning.
I dunno what your job description is like, but mine (as a senior SWE at Google) is "Figure out how to make users happy". If you don't face similar ambiguities in your job description, it's because there's a manager somewhere up the org chart who did all the messy work of listening to what everybody else wanted and somehow harmonized it all into something halfway buildable. If you have a spec you're following, there was somebody out there who wrote it. If you're getting paid, it means somebody out there sold the product, and that usually requires listening to all the customers out there and figuring out what they want in common. None of these tasks do themselves.
That's the crux. If you really are that good, it shouldn't be too hard to leverage your skills somewhere better.
That assumes the Hogwarts Hat of random allocation doesn't land you with a stinker from the get-go. And I speak from personal experience that it occasionally does. If I had been able to change projects to something more relevant to my skills, I would still be there.
There have been far too many stories of arbitrary google managers both here and elsewhere to keep putting forth the story that if one goes to google, one can simply change projects if one doesn't like what they're doing.
Just one example from http://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm
"For the most part, Google is held together by duct tape. Management quality is clearly below what's required for a company of this size. In a lot of cases managers are simply too junior and lack people skills."
Good! If you really like words and want to get some copy edited you should check out http://www.edithero.com/
It doesn't just hurt the employees, but the company (kingdom) as a whole. The managers (lords) concern themselves primarily with expanding their departments (fiefdoms), typically at the expense of other managers, rather than working to grow the company or improve the quality of life within it.
This leads to a mentality of collecting more rather than better staff, ass covering rather than innovating and all sorts of other bullshit.
Let's just say, I've heard rumor that my manager was asked to leave not too long after I was. And the circumstances of my leaving were not entirely unconnected.
The most important point making it like slavery was the fact that serfs couldn't leave their fiefdom.
That's where the analogy to a modern corporation breaks down - employees can quit whenever they want.
If they like starving, yes. Being subject to Morton's fork doesn't make for a great day.
Software developers are currently in a pretty great place in this economy. Not everyone is. It's pretty important to remember that.
Sounds like you don't have any ties to where you are and what you do. How is that working out for you? (genuine question)
I know the "flat" model is enticing, but I have yet to see an example that handles greenhorns well.
I have many solid arguments as to why the current system, which really is rather feudal, is broken and could not possibly represent the apex of management systems. I also have a few good ideas about alternate systems. However, that would make for quite too long of a discussion here, so I'll save it for some other time/place.
Nevertheless, I will point out that if there is a solid trend as it relates to the impact of the progression of networking technology and software in general it is that both have a tendency toward disintermediation. And if there is one intermediary who is oh so very ripe for being kicked into the gutter it is certainly the middle manager. How do we get along without him/her? To my ears such a question has the ring of "how will we get along without cholera?"
So, here's some bullet points: greater individual autonomy/responsibility/return (e.g. profit sharing & equity); more peer relationships and fewer superior/insubordinate relationships (though not the absence of such), note carefully that this is not identical to a flatter hierarchy; more freelance-style and partnership relationships (whether across or within corporate boundaries); more reliance on leads instead of managers; more mentor/apprentice style relationships. In general the "employer/employee" relationship being closer to a partnership that both have entered into freely and with respect for the other party with the expectation of mutual benefit resulting rather than a coercive, unequal, and authoritarian bond that employment often imitates today.
I guess it depends on your definition of slavery. Most serfs had some degree of autonomy and self-determination even if they were forced to pay tribute unfairly.
So that incites us to ask, how is it any different today, when we are also forced to pay a [quite hefty] tribute to the government simply for collecting money? We all have some form of autonomy, but the government has demonstration that only exists so long as we pay tribute and sacrifice the fruits of our labors. Same story as a serf, who would be granted a parcel and expected to pay a tribute to his lord or suffer serious infractions of basic rights to self-determination.
I don't know if this is common now or only applies to people coming off of the industry track instead of the university track, but it was not at all what I'd been warned to expect.
So far everything about Google has been generally fantastic. I'm hoping it lives up to it once I'm inside.
I do suspect it has something to do with your employee bargaining power, which depends both on your past track record and on how many people are being hired relative to staffing needs. Managers bid on Nooglers, draft-style; if many teams are bidding on you, you have a lot of flexibility in where you end up, while if only one team bids you're basically stuck with them. michaelochurch was hired in 2011 IIRC, when Google notoriously overhired, and it could be that many of the other teams were flush with Nooglers and not looking for anyone else.
Just my experience; I started at the beginning of 2012.
Add in the ability to occasionally submit votes that are statistically irrelevant and you've got modern Western democracy.
What you're discussing is the Credibility Drought. Companies define credibility so that only managers have it, in order to create an artificial scarcity that makes employees easier to control. That's what enables the managerial extortion that forces employees to serve local goals (the manager's own career) rather than the benefit of the company (or the growth of the individual).
Very few companies formally allow a manager to unilaterally fire. That's way too much of an HR/lawsuit risk. Instead, these closed-allocation dinosaur companies define credibility in such a limited way that managers can either support or not support the employee, and then if the person is not supported, that person's credibility is zero and the manager isn't firing that person. "The company" does it, after "careful review" of "objective" performance statistics. On top of this, they set tight headcount limits so that for anyone to get a good project requires a special favor, allowing the company to say "no" and appear consistent on the matter.
Google is aware enough of this problem to allow engineers at above a certain level to acquire independent credibility.
At Staff, you can pull a Yegge (quit your project in public) and be OK. If you're a SWE 3 and you try that, you're fucked.
So Google may be different from the full-on closed-allocation nightmare corporation, but you only if you either (a) start at a senior level, or (b) get on visible, desirable projects when you start, so you can get promotions quickly. The only time it isn't difficult to transfer to something better is immediately after a promotion (and there are some managers who withhold promotions to keep people captive; Google, to its credit, has a system that occasionally overrides managerial objections to promo).
The sad thing is that I don't doubt that Google is better than 95 percent of large corporations its size in terms of internal mobility, individual autonomy, and engineer-centric culture. It might be better than 98%. It's still pretty awful for a large percentage of people who work there, and the fact that it's so much better than most of what else is out there is a damnation of Corporate America, not an endorsement of Google.
But instead, I mistakenly emailed him, concerned that he was holding 1:1s with everyone else on the team except for me. He then hastily called a 1:1, apologized for forgetting my existence, and then immediately informed me that I was now behind on his expectations of my productivity.
My friends advised me to go to HR, so I did. Whereupon I found out he had already paid them a visit to inform them of me. At this point, the google immune system geared up to encourage me to leave of my own volition. I tried to get on to other teams. Friends in the company tried to get me onto their teams. These efforts were blocked.
Deciding this was a game not worth playing further, I left a month later when I got a compelling offer elsewhere.
Waste of 4 months IMO - but I also believe that if I had just been allocated to a more relevant team things would have turned out far better.
At the 3 month meeting, the manager openly admitted that while he managed two teams, he devoted most of his energy to the other one. So in his defense, he was overallocated. His other team was more interesting. But I think he already wanted me gone at that point so that wasn't an option.
My failing was explained to me that since I was a "Senior Engineer(tm)" I was supposed to arrive at google an expert in all their technologies so I could be a successful generalist and finish my starter project (in a brand new unfamiliar field to me) in <2 weeks. Whatever.
In contrast, I reached productivity <48 hours after starting my next gig, which did make use of my skills.
They make up those expectations after the fact, of course. Rather than have the decency to say, "I just don't like you, and don't want you on my team" your manager had to build an objective-looking "performance" case and it sounds like he was a total twat about it.
No one gets anything serious done in the first 2 weeks, and you're not expected to. That's what Codelabs (which are very good, and I wish more companies paid attention to that) are for.
One thing I disliked about the Google environment was that, because it's so hard to have a real accomplishment in your first year, whether you "succeed" depends on others' assessments (i.e. politics). I prefer to be in an environment where, after 3 weeks, I can reach the "so good they can't ignore you" state.
I like high-productivity environments better because I can prove, in the first month, that I'm actually worth a damn. Political issues always exist, but they're less threatening when you've already proven that you're good at what you do.
So they intentionally remove any element of choice in allocation, and throw people into the hopefully representative ensemble of all hiring teams at Google to test how one mixes with the average ideal spherical Googler. But if one ends up 2 sigma to the left of the mean, one is pretty much hosed. And that would likely have a 2-3% false rejection rate assuming this is a normal distribution and that most Google teams are sane. Not bad actually, but sucks for me.
Except that I don't think such a distribution is normal but more likely vastly oversamples the stinkers due to a twisted form of survivor bias because the stinkers have the highest departure rates, putting them constantly on the prowl for new meat oops I mean Nooglers (my small team lost several people during the short time I was on it and several Nooglers switched teams* hours before they would have started to avoid this allocation - I have a really funny photo of several sets of deflated welcome balloons next to what was supposed to be their desk after they had sat around for a couple weeks).
*The most important thing I learned at Google was that I should have secured my allocation before arriving as a condition of accepting employment. Failing that, one can sidestep the process on the first day if one has a friend on a team that is in need of people if one is insistent enough.
This is speaking as a comp eng. student who has gotten very little hands-on hardware experience. I've now worked two years doing pretty much exclusively software; the closest I got to real design was product verification and manufacturing support.
Google is one of the few companies where the 20% is a real thing for most people branch out, on either their own project, or another teams project.
As far as most companies, the side-project with other teams is simply not an option.
Thus, your manager decides if you have 20% time or not.
There are good managers at Google who value 20% time and will encourage you to work cross-hierarchically with other teams or on personal side projects, and there are others who are absentee so you can pull that off furtively. If you get a hard-ass with a lot of project-specific ambition, you're not going to get away with 20% time.
Google inadvertently makes it worse by conflating project leadership with people management, which means that your boss is also held responsible for the performance of a specific project. That creates a huge conflict of interest, because the employee might be a better fit for another project, but the manager has to eat a loss on the project where he is.
There's an escalation path if your manager is outright forbidding you from taking 20% time, and the manager can be disciplined by the Powers That Be for that.
Google also doesn't always conflate project leadership with people management (it depends on the team, and the org chart is explicitly setup so that this is not a given). There're pros and cons to both: if you're on a project where your manager is the tech lead, he'll know your work better (which can help you get promoted faster), but it also means that if you disagree with him on the technical direction of the project it can be harmful to your career. Out of my 4-year Google career, I've spent 2.5 years on teams where my manager was directly involved in the project, and 1.5 years basically doing my own thing or on loan to other teams with minimal involvement from my manager. I don't have a clear preference for one or the other, as I've found that my manager was always supportive of me as a person even when his primary responsibility was managing the project, and willing to let me move to another team when I'd outgrown his area of interest.
(It probably helped that I would work like hell to help my manager's project succeed first, and then transfer off once it launched. Most people are more inclined to help you succeed if you help them succeed.)
Seems what Valve does instead puts credibility on the open market. This makes sense, as that one term, credibility, actually encapsulates a complex panoply of things, and markets are good at regulation even when faced with complexity.
American corporatism is based on Original Sin (the so-called "Puritan work ethic"). If you're not "saved" by some rich institution (a job) then you're judged to be a leech and a failure. Most companies take advantage of this by continuing it into Credibility Scarcity-- you're worthless until told otherwise.
I've worked for "startups" that don't do this. You start out as an "idiot." The manager has to look over your shoulder every 30 minutes, and gets worried because you are programming using "blocks." You're dictated to in terms of which libraries you use. All this total micromanagement, yet the manager knows so little about iPhone development, he has no idea what "delegates" are or that they're the most common pattern in the SDK.
The problem is the guy has no managerial skills. Employee moral across the company is rock bottom. We get tasks day-to-day because he cannot plan ahead. We often drop projects to work on something else, only to drop them and work on what we was originally. Manager never sends final designs or when he does they later change anyway. (These are not tweaks, tweaks are understandable. This is the entire page layout) I could go on...
Why haven't I quit already? I am currently indispensable to the company I work for. I need to support my family. Not sure if I want to risk it on a new job in the current climate. The short term plan is to continue being miserable.
NOTE: I would go around my manager if I could. Unfortunately it is a team of 7 and its this guys company.
That was me a few years ago.
I ended up putting up with it for an incredibly stressful 18 months and leaving anyway.
If I could do it all over again, I would have made a stand leveraging my indispensability. Either I succeed and effect change or fail and leave anyway.
>I need to support my family. Not sure if I want to risk it on a new job in the current climate.
Obviously, you'll want to find a new job before you quit, not the other way around. Less obviously, consider the impact of your "rock bottom" morale and apparently dead-end job on your family.
>The short term plan is to continue being miserable.
Short term plans have a way of becoming regrets without a long term plan.
When I was much younger I took my mother out to a movie. It was a comedy and a pretty good one at that (don't remember the name). We got to the parking lot and my mom said "This is the first time I've seen you smile in 6 months". Resumes went out the next day and a few recruiters I knew were called.
You might not notice the cost of a bad job, but the people around you will see the signs. I did love the "concept" of the job I was doing, but it was killing me and looking back, it took a while to actually recover. I knew I was frustrated, but not how far gone.
The day I stepped up and tried to set everything straight was also the day I decided to quit. Fast-forward a few months, I'm earning 2x as much, and working with everything I wanted to.
I too thought I was indispensable, but the company you have in your head can be very different from the managers'.
This is an important observation.
I'd wager a manager who doesn't recognize the way he/she is allowing if not creating a dysfunctional workplace doesn't recognize how/what makes it work in the first place.
The only thing that's indispensable to shitty managers is their own power/security.
The one thing that took me a long time to realize is that even when it comes to something like software if you throw enough half-assed labor at a problem there is a reasonable chance that eventually something of significant legitimate value can be created. No, it probably won't be as good as something created by a bunch of geniuses, but it can still end up being "good". When you play the long game or the big game you can afford to rely on half-assedness to work out in the end.
The combination of all of these factors makes software a different sort of beast than a lot of other work. Now, as I said, that doesn't mean that you can't still attack it with brute force and obtain results, but software is actually one of the realms where that is one of the least effective strategies.
Your statement about design vs implementation shows that you're clearly outside of your knowledge space when talking about other disciplines. Depending on bridge span, length, and construction method, the man hours required for design can be much more than those required for construction.
Software is not really all that different from any other type of work. It even shares the trait that people that are part of the software sector think that their sector is somehow inherently different.
I haven't said, nor do I mean to imply, that my dad is better than your dad, err, I mean, that software development is somehow on a higher plane or superior to other work. However, there is something that sets software apart from most other work in that it is almost entirely design work, even "construction" is design work. (Of course, there is often something that sets most genres of work apart from other genres too, every industry has its unique aspects.) A particular engineering task might require more man-hours in design than in construction but that is an edge case, and the ratio is unlikely to be higher than an order of magnitude, the norms still apply. And again, software sees a rather larger range of scale than almost any other industry. The difference in, say, the amount of data handled by a given piece of software can range from a single byte (or even a single bit) up to petabytes or higher (the LHC processes zettabytes of data per year). That's 21 orders of magnitude. The difference between the smallest features in a microchip and the longest superhighways on Earth is only 15 magnitudes, and those are considered to be hugely different industries.
The main point I wanted to get at though was that due to the primacy of design individual talent can often have an outsized impact on overall product quality or capability. You certainly see that in many other disciplines but not necessarily on the same scale. Because, again, it's not terribly rare to have a situation where a piece of software developed by a single developer is just generally better than one developed by a team working at a multi-billion dollar mega-corp. That's the equivalent of some guy building a Mach 10 plane in his garage that runs on solar power. You tend not to see extremes on such magnitudes outside of software.
Indeed, it's even a driving force in the industry, as the idea of being able to build some new or better product from nothing and scale up to a billion dollar company in a matter of years starting from only one or two founders is rather common in software and shockingly uncommon outside of it.
1. Spans N orders of magnitude in scale which is M orders of magnitude more than X sector.
2. A single individual can put out superb products while some teams put out mediocre products.
3. The possibility exists for companies to be created with J founders and reach a valuation of K in L years.
Sorry, but none of these are unique to software. They're just the same arguments for anything else with different values for the variables.
Again, your sector is not unique. Last time we thought software was a unique sector lead to the great "paradigm shift" (as Greenspan called it, I believe) of 2000. You might know it better as the dot-com bubble.
That this makes two industries "equivalent" is an even more far-fetched claim than InclinedPlane's.
This makes me pretty indispensable. It also helps that before I arrived the guy in charge of the company had a bad time with at least 3 developers. If there is something I cannot do he tasks me to find someone and manage them so you know...
Obviously, guy could find someone else. Someone else could take the reigns of what I am doing. However transition time and the guys past experience with developers makes this very unlikely.
He operates in a market for lemons, but one day it may be more comfortable for him to risk getting a Lemon Consulting firm than live with the stress of one guy who might leave and take the whole thing down with him.
Ask yourself this: do you get paid for the risk of you leaving? And ask yourself this: can your family enjoy you when you feel bad?
I learned this lesson the hard way, long ago, in exactly that same situation -- it took two times -- by attempting to use leverage I didn't actually have but believed I did.
I hope most people are less dense than I was (hopefully "was" is the right word there), because no matter what percentage of the work you do or how deep and unique your knowledge of a system is, you can be replaced. It may not be easy or quick, but if you make yourself a nuisance, get on someone's bad side, or any of myriad things in and out of your control, you can and will end up on the chopping block, wondering what just happened.
Not saying it cannot be done, but it would lose them a ton of money. Yep, it's a double-edge sword because it puts a non-trivial amount of pressure over me. Even if they found someone with the rare combination of skills required, it would set them back years in the most optimistic scenario.
So yeah, "indispensable" people do exist. In the sense that you can lose big by parting ways with some people and not effectively replace them. Obviously life would go on, eh.
Managers should encourage employees to become highly valuable and at the same time manage the risk of those employees leaving some day - preferably mostly by creating the right environment for those employees to flourish.
The option was basically not doing it. Since I made up for my cost it wasn't a bad idea I guess. Now if I get struck by lightning then they will lose future earnings but that's that. It's a big company and other parts of the company would continue just fine.
Not all resources are exchangeable, esp. when some niche research is involved.
I think more than often the real challenge is the knowledge, not the skills. IIRC there was a post linked HN about that problem, written by GitHub or Stripe maybe ?
Contracting, though I've never done it, sounds like a much healthier relationship between employer and employee. It does have it's own negative aspects though. I wish full-time jobs weren't such adversarial relationships where you're either with us or you're against us, if you quit.
Of course a company can always find another fool to replace them.
Many smaller businesses work that way. They have a core group of often arrogant and unskilled old-timers that for one reason or another, cannot and will not be fired. I've seen this more than once, with clients and companies I've worked for.
The company cycles through talented new employees every other year. Once these employees are burnt out and move on to greener pastures, the company will find a new sucker to fill in their shoes. Rinse and repeat.
I think that relationship skills are key to being a manager, in addition to all the other planning etc.
I'm not sure how approachable your manager is but it sounds like he needs help from you to bring moral up. A leader does not necessarily have to be a manager but of course, with everything, do at your own discretion.
I sent him a feature development blueprint which was well received but ignored.
Suggested he gave people more responsibilities, he did but then didn't like not being the conduit in which everything flowed so took all the responsibilities back.
Spent a day with him writing development goals for the next month. General goals for 3/6 months. This would get everyone on the page and stop priority switching. Trouble is he never stopped editing the document. Instead it just became a documented expression of his managerial style.
One day I got pissed off and wrote a pissy but constructive email about his managerial style. Again, fairly well received. He left alone for a week to complete the task I was on. Then everything went back to normal with random daily requests and project swapping.
I care for my work and want the company to succeed. I haven't been silent passenger :)
Your manager needs a reality check to realize that while he's good at starting a company, he can't really manage it.
> its this guys company.
well… can't you try to find an other job for that? While working for the company? If he's the owner, I don't see why you'd care for being indispensable, it's not a case of an asshole manager in a great company it's a broken company.
Also, you probably aren't indispensable.
I am not leaving for 3 reasons.
1. I support my family with two young children. Partner doesn't work. As depressing as the job is I know it is secure for at least the next year if I want it.
2. I am concerned about the duration of any new job I take, especially in the current climate. I have friends who have lost their houses. If things were a bit rosier I would have gone already.
3. I am working on my own little side project which I hope to nurture into a full-time income. Trouble is work gets me so down I can barely look at a computer at the end of the day to push it along further.
> Also, you probably aren't indispensable.
I am currently essential to the smooth running of the companies products and systems. In my opinion that is as close as anyone can get to indispensable.
> Trouble is work gets me so down I can barely look at a
computer at the end of the day to push it along further.
I have been there, maybe I still am, but its just a thought and it may well be worth opening up to your doctor.
And remember free, over the Internet, psychological advice is worth every penny :-)
What do your friends do and where do you live? Even in a rather non-tech town I'm constantly getting calls. If I was willing to move to one of the cities within a 5 hour radius the calls go up even more. Techies who know wtf they are doing are in high demand. What I did when I left my previous stable, but soul crushing job 14 months ago was remember I had a stable job and I had time to look and pick and chose.
In the worst case scenario, you still have your current job.
Looking is fairly inexpensive and near risk free. Why wouldn't you just be casually looking until you found the right job?
I am a quiet guy. I took the job because of the fairly low social requirements. I had low confidence with my speech at the time... I find it difficult to express the problem. I worry that a new job - if it has different social requirements - will be a shock to the system and I don't feel I have the support around to help me cope with that.
I want, probably need, a new job. I just have no idea about how to go about it to be honest and that puts me off looking.
HN gives a weird perspective on what employers expect of developers. I know lots of places where devs aren't expected to be social/growth hacking hustlers who have met the president, etc. Most places just want competent developers, and they're willing to accomodate a lot of the typical geek social anxiety.
All this to say, I know it's a scary prospect, but you can change your situation if you try. Whether that's getting some interviews, or seeing someone about your anxiety. Feel free to email me if you want to talk.
This is the one thing so many people fail to do, even though they don't want to leave. People don't suddenly stop being decent human beings incapable of change when they become managers or owners.
I've confronted people "above" me with their failures and have been confronted by people "below" me with mine. It hurts for a minute, but very rarely does that lead to escalation, and more often then not it at the very least a genuine attempt to change.
I really suggest listening to (at least) episode 1 
Anyway, reading Dilbert.com helps ;)
So while the lesson of this post -- that managing is important and a good manager can greatly increase employee retention -- is well taken, the headline is certainly overstated.
Also, broken promises in interviews - yeah, monk.e.boy, work here for a year and you'll be the head of your very own dev team. I've fallen for that one about 4 times. Then I leave and they ask 'Why-oh-why?' And I say 'Remember in my interview that you said X Y and Z and none of them happened?'
I've worked with a few people from Redmond who left not because of a crappy manager or an unpleasant team, but because their projects kept getting cancelled. It's hard to feel like you're working on something important if all of it gets scrapped before shipping two or three times in a row. Especially if this happens not due to any issue with the project, but due to political happenings miles above your head.
At least, this is what I've been told. I've never worked for them myself.
Those people filling you with hope may genuinely want to make something happen, or may be cynically telling you what you want to hear. Either way, their words don't mean a thing until they've made them fact.
I worked for a company that did content creation for MSN. The amount of pageviews on MSN sounds daunting, but the ad revenue was not on par with the pageviews.
BTW, the skip-level concept is something I gleaned from the Manager Tools podcast. I highly recommend it for anyone interested in learning how to manage better (or even, just, understand organizational behavior).
Speaking as a manager you'd be surprised (actually scrub that, you wouldn't) how often when I raise concerns the team has the instruction comes back "screw what the team thinks or wants, just do X" (where X flies in the face of what the team want and best practice but supports what the screaming customer and short term revenue demands).
Organisations that genuinely care about the staff I don't think would change much, those who don't won't ever do it so it's kind of moot.
Probably microscopic shitstorms, not large ones because only a minority is affected. But in the long run it would probably change everything in organizations with management problems. I think hiring policies would also change a lot.
As a consultant I worked for several large IT organizations, and I got to see a lot of very toxic people. Some were really high up, some middle managers. They were assholes with everybody but I bet they were very nice to their own bosses, and worked very hard at masking their incompetence. Those people can really screw the organizational culture.
That HR doesn't understand what you are doing is a bad excuse, depending on the job you might be the only person knowing exactly what you are doing. Anyway, I feel like the manager doing the review is absolutely unfair - at least not in a sufficiently large organization.
>it would cause too much gaming the system in either retaliatory
This is already the case. When your manager does the review, your review is limited by the manager.
In the BBC case (amongst other issues) my department was earmarked to be moved to Manchester (about 200 miles away) in about 4 years. I was clear (for family reasons) that I wouldn't be moving so staying would have felt like a personal dead end to me (although later the BBC's plan changed and much of the department moved into London instead which might have been OK but the lack of thought through initial decision was a really bad sign about the senior management).
At Sony it was a general lack of faith that the management had enough capability that Sony could become a profitable, viable, mass market electronics company again. That made me happy to leave to see what I could do on my own and be home to take and collect my son from school.
The few companies I've worked at have taught me that for the most part, companies can't do much real planning beyond 6 mos to a year at most - the stuff we considered important in 2006 was often irrelevant by 2007 because of changes in the market conditions, competition, etc. Planning out moves that far ahead is probably necessary in some situations, but I've seen enough of those 'long term plans' have to change anyway that I don't actually believe many of them.
Looking at what I have learnt just 2 years ago, some of it is already starting to get irrelevant!
But I disagree that people don't leave companies.
First, there are some companies that kinda act on their own, they are very old, and people just obey tradition and old rules and policies. This sometimes the managers can fight hard against, and several will fail anyway.
Sometimes, the company is in a field that make the employee leave, I know for example many IT people that after they realised how banks operate, they felt bad about it and quit.
Sometimes the company itself is having problems, like being sued, or going bankrupt...
So no, sometimes the fault is of the company.
Asshat managers can make people go away too.
Unfortunately it is seemly easier to be excepcional toward the bad than toward the good.
If I ever end up in a management position, that's the sort of manager I want to be.
I think a lot of people resent managers because they seem to do less of the actual work than those they manage. My dad always works hard at whatever he does, and he expected the same of his team. Now he's retired, part of me really wants to try doing some projects with him. He has a real interest in building web apps that I'd love to collaborate on.
I'm curious if anyone has any stories of how they overcame a Manager that was not their Champion? I have been thinking about this a lot. In my short time at large corporations it seems you really need someone on your side to move up the ladder a bit.
In other words, I could be working for the most awesome, charismatic manager in the world but if I'm being paid significantly below Market Rate, I'd still leave.
At one time I considered leaving a company I believed strongly in, due to an immediate manager with which I didn't work well. However, I looked higher in the organization to the leader(ship) I believed in and decided to stay. I'm glad I did, because the management problem rectified itself soon enough and now I follow good leaders and learn from a great mentor.
As we can enable people to work from home, because we can see the code they wrote today up and working on the CI server, we can do away with needing a boss to telll them what to do and watch if they do it - in fact we can pass the autonomy many bosses have down the line - and I hope see a world where the developer says - I have done this cool thing and it has improved our bottom line because I measured this change.
A culture of Continuous Integration, testing changes for business KPIs allows us to let go of the middle rank of supervision, and allows us to change the working conditions now the supervision is unnecessary
But if you are going to grow, you need one of these proxy solutions.
To me there are two outstanding solutions:
1. Free Labour Market
2. "add or out"
1. Google-like - have projects and allow engineers to move around to join different projects, and adjust via funding. THis is trying to create an internal job market, and may or may not be effective but its a response to Dunbars number problem.
2. "add or out" - add measurable value, or the worst performing 10% leave. This forces a culture of testing and measuring value, and whilst it is subject to being gamed, it might be workable.
Please, correct me if I'm wrong.
Yeah, non-tech companies who produce actual products/services can't really do that, but then they are also not really that relevant since nobody here works for them (outside of IT departments, which could be run as suggested).
No the real reason for almost any stupid thing done in corporate environments is politics. Everybody is a peer and results only environments threaten those who have accumulated power under the old system and who couldn't cut in the new system -- which is basically all managers.
So of course this only happens when somebody with enough political capital to institute it does so -- typically the owner.
Add to that that it is extremely unorthodox and that very few people have previous exposure to systems like that.
And you get the few companies that do this, and do well by it.
Reminds me of the story about the traveler and the new city. He left because he thought the people there were horrible. Upon arriving at the gate of the new city, he asked a man sitting by the gate, "How are the people here in this city?" To which the sitting man replied, "How were they in the city you came from?" "Oh... they were horrible, mean people."
"You'll find them the same here."
The books talked about the Organizational Cultural Assessment Index (OCAI) and a manager capabilities assessment test (cannot remember the name). Anyone out there used these?
These seemed like reasonable, standard approaches to improving the workplace.
Culture is incredibly hard to change once it is engrained, and is going to take real work and real sacrifice, not simple questionnaires. You should look at changing company culture in the same way as looking as getting a smoker to stop smoking. It's not as easy as 'presenting an argument'.
The OCAI is a tool, like the Myers-Briggs. The book I read  treated it as a start for diagnosing your organizational culture, then provided a framework for accomplishing cultural change. I believe it's extraordinarily dangerous to approach (organizational) change without treating it as a process with defined goals.
BTW, I am a former smoker, and quitting was pretty hard. I'd chalk that up to changing my environment (I stopped hanging out with smokers).
I recall this happening when I used to work at P.F. Chang's (the restaurant chain).
We had a general manager who was absolutely loathsome to work with. We frequently ran out of the kinds of food you'd be embarrassed to lack at a Chinese restaurant (read: white and brown rice, lettuce, etc). However, he had a stellar reputation and history with "corporate" and had even won awards within the company.
The reasons this happened were twofold: 1. he was the general manager, and in the eyes of corporate he was just saving money (they never saw the restaurant descend into chaos and dysfunction due to lack of ingredients), and 2. he was honestly kind of a dick. Unless you were above him on the pay scale he would respond to suggestions with, "I'll take that under advisement."
Here's the Amazon link: http://www.amazon.com/First-Break-All-Rules-Differently/dp/0...
They leave (maybe) because of the job.
Estimated true score correlation
Job Fit - Tenure: 0.18
Company Fit - Tenure: 0.03
Group Fit - Tenure: 0.06
Supervisor Fit - Tenure: 0.09
I like working on things and I like working on things people use. If we aren't shipping, I have to ask why. Periods of development are certainly reasonable but at the end of the day you have to ship.
Where I have moved on due to management? An alpha presence who treated everyone under him as a contractor, yet we weren't hourly, and we weren't compensated for following up on inane decisions. I ended up stepping up, guiding two mis-managed resources, and pushing back on some very dumb decisions (a few were backed by the CTO). However, at the end of the day, when I stepped back anded look at the energy I put in and what I was getting out, it was time to leave.
Decisions to leave are complex.
My current manager has done all of the listed reasons-for-leaving in the article at one point or another - I'm not the only one this happens to; it happens to all who work with him, however I'm the only one who has to report directly to him.
It's a sad situation because the guy is a good guy, he's just difficult to work with and as a result I'm currently looking at my options - if I can help it, I would prefer to stay at the company.
I understand it can be difficult for a manager to be direct with their team, but it's something I know a lot of good people appreciate - honest, direct feedback. You don't want to feel like you're being "handled" or used as a crutch for the manager's own self-actualisation. It's the whole golden-goose scenario - you don't want to kill it.
edit: typos :)
In my situation the terrible fact was that my manager's inability to separate his personal and professional life caused the top four of my hierarchy of needs to be threatened (it's hard to be creative and solve problems when you're in a very shitty situation).
At the very end of my tenure, instead of talking about and trying to resolve our personal differences, he chose to go hyper-managerial on me (in manner and communication), making it clear that this was how my day-to-day was going to be from then on.
I loved working with my coworkers and almost everything else about working there, but I found it no longer mattered when I sat next to someone who will only communicate with me in writing with HR cc'd.
It is easy to complain about managers, but "craving credit" and "silent treatment" happen asymmetrically because the average worker is an order of magnitude different than his cube mate.
Going from a concrete project/goal focused position with expectations to managing those people is a much harder proposition.
I hated managing people. As a manager, you expect the same things from your crew as you would yourself. Instead you hear every excuse, tragedy and jealous rant for attention, rather than just getting the work done.
You try to "nurture" and "empathize" but in the end, workers run the whole gamut from narcissist to kaamchor to subservient drone.
"The key to being able to keep the good employees is not so much the salary you offer them or even the actual work, it is more about how you manage them and how they feel working under you as their manager. "
Personally I don't think there is a key, instead it's a case of all of the above. You can't keep an underpaid employee happy. You can't keep a bored employee happy. You can't keep an employee happy when you don't treat them well. I've left companies for all 3 of these reasons, it only takes one reason.
Until people start valuing others more in society I do not feel that this will change. Behaviors flow out of beliefs. When the beliefs change then people change. Loving our neighbor as ourself is not a cherished value right now.
I lost my first job when 2/3 of the company way laid off.
I left my second job for manangerial reasons, but that was more that my position was an experiment and when the manager who'd created it left the person who took over didn't know how to manage me.
The company after that I left because we were bought out and I wouldn't sign the new, draconian NDA.
Every job I've quit has ultimately been because of a deficiency in one of those 3 things that led to conflict.
Choose your boss? yes, by accepting a job offer.
Move to a different team? Again, by choosing a company.
Move internally? Yes, if you don't mind a firestorm that burns bridges, and moving to a job that won't use the skills I was hired for.
I'm the only one -- or at best, one of a handful of people -- who can do my job at my nonprofit. Does that give me more power? Heck no. Best I can do is threaten to quit, and if the boss and I don't get along, then they probably are just aching to hire in someone else.
My company sucks, pay is sub par, benefits suck, policy sucks, forced overtime sucks....
If I leave I'll be leaving my company, not my manager. and the company is HUGE
For me; the people doing the UX, the people doing product, and etc.
When a company cuts my salary by 30% while jacking up my benefits payments by 300%, it's usually time to leave.
But, on to the article at hand.
As a manager now, those statistics at the end really kind of tick me off. It feels very one-sided and the following text is just me rambling on... somewhat trolling.
39%: Their supervisor failed to keep promises
How many of these employees fail to keep theirs? How many of these broken promises were based on things promised to the manager? How much of it was in their control? When kept at this simplistic level, this one seems like a third-grade problem.
37%: Their supervisor failed to give credit when due
This perception of credit and recognition is one sticking point in our team right now, especially with the people born after 1980. They want credit and recognition for every single thing they do. If they manage to successfully eat a meal without choking on a bone, they want public recognition for it. The older guys on the team, we sit down and do the work because it is our job. That's what we're here to do. The old guys can sit around and come up with ideas and realize that together as a team we designed something. The team gets credit. No one person gets the credit. The kids, if they have one key idea at any point in a process, they want to be held up high. Oh and damn if their idea comes early in the discussion and is never used directly but expanded upon and changed, hell they think they were the sole party responsible for all ideas and all further ideas were stolen.
31%: Their supervisor gave them the “silent treatment” in the past year.
Yes, I do this. I usually do this when I am trying to decide what to do with spoiled or "entitled" employees. If I have asked somebody to quit looking at StupidVideos.com for 3 hours a day and they persist while their projects back up, I'm going to be silent for a while while I try and come up with a plan. I'm not going to sit and try to motivate them. Motivating geeks is a pain-in-the-ass. I'm not allowed to fire anybody or put them on disciplinary action w/out months of paperwork, especially when they know how to talk to HR and convince them that they are doing the best that they can.
27%: Their supervisor made negative comments about them to other employees or managers.
Agreed, this one is bad no matter how you slice it.
24%: Their supervisor invaded their privacy.
Again, if you're looking at Facebook and not getting your work done, you need to get over it.
23%: Their supervisor blames others to cover up mistakes or minimize embarrassment.
Yeah, this happens. Sucks. Lucky for my team, when I lie my eye twitches so there is a built-in lie detector. :-)
A crass generalisation, but no more than the title is.
Traditional industrial labor has a concave relationship between input (effort, skill) and output (diminishing returns) where the difference between mediocrity and excellence is minimal to zero. Modern technological work has a convex curve (accelerating returns) where the difference between mediocrity and failure is minimal while that between mediocrity and excellence is massive.
When the work is concave, you want to minimize variance, which means you eliminate individuality and manage toward mediocrity. Control-freak managers and petty tyrants are good at that, because you can trust them to tighten down bolts and yell at people. ("Ahem! There's SAND in my boots!" -- Kefka.) You build out a hierarchy, give managers total control over their reports, and even though there's a lot of loss in the form of attrition (good people fired by bad bosses) and squandered capability (strong people doing mediocre tasks) that's treated as a rounding error. People are fungible and, if they're not, then something is wrong with your process. Your goal isn't excellence. It's repeatable mediocrity.
Convex work is an entirely different game. It's much more like R&D. The problems being solved are a lot harder, although the upside of a success is much greater. Technological work is becoming increasingly convex with time.
When you have concave work, your management strategy is to beat up on the slackers. If the best people are 1.5 times as productive as the average, then one slacker cancels out 2 excellent people, so rooting them out and disciplining them is the right strategy.
With convex work, the danger isn't having a few slackers. It's that you don't have any excellent people, or that the excellent people you do have are unmotivated and underperforming. The best way to "manage" convex work is to hire the best people and get out of their way.
Managerial extortion (i.e. the manager's use of his unilateral ability to damage an employee's career to put the employee toward his career goals, rather than company goals or individual growth) is ruinous when one is attempting convex work, but large companies don't see it that way. Their processes are oriented completely toward concave, commodity labor.
So, "employees leave managers" is only half the story. Managers go bad because companies allow them to do so. A company that doesn't want managerial extortion can implement Valve-style open allocation, but few do. Companies allow them to do so because they're fighting the last century's war. They're industrial machines, and anachronistic in a technological era.
Around 15 people, that one-edge factor becomes less true and if you don't explicitly manage the culture, you'll start having political problems. People won't turn malevolent right away, but your process becomes biased in favor of losing good people and attracting bad ones, especially as the TechCrunch coverage mounts and you become attractive to narcissists who want to be your next generation of transplant executives. You have to be an exceptional judge of character to avoid hiring bad executives (remember: many of these people lie and schmooze for a living) and judgment-of-character does not scale.
Most companies lose startup culture rapidly (like, before they get to 50) in the process of hiring executives, because traditional dinosaur managers assess their self-worth based on metrics like "number of reports" and want to be handed control of other people. Also, once you have a world in which engineers are getting 0.08% and VPs get 0.5%, the "Uncle Tom Engineer" effect sets in and you lose your engineer-centric culture.
Valve did a couple things differently. First of all, my understanding is that they use profit sharing instead of equity. There are advantages and drawbacks of that model, but at the sub-0.5% order or magnitude, "ownership" is meaningless and a more generous profit-sharing system is going to be a lot better for most employees than a meager equity/stock-option system. Second, they made open allocation a cultural pillar that no would-be executive can challenge.
Valve trusts before it hires, and that's different from these get-big-or-die VC-istan companies that hire people in bulk but don't implicitly trust most of them with their own time.