Hiring the Wrong People [Revision]

Posted by blackhole on Feb. 29, 2012, 7:28 p.m.

Originally posted on my blog

Several years ago, this famous rant by Bill Gates (here's a more readable version) made its way around the internet. What was remarkable about it was that Bill Gates himself flaming his underlings for many of the things everyone else was complaining about did almost nothing to improve Windows. What improvements were eventually made are usually attributed to many outside influences, especially Apple and the rise of tablet PCs.

This really isn't that remarkable to anyone inside the software industry. I've been an intern at Microsoft and I've seen all sorts of hilariously misconstrued practices and rules and regulations meant to bend employees into some magical definition of an awesome developer that is usually, itself, hopelessly misguided. Almost the entire modern business world runs on the idea that you hire someone and then tell them how to behave. It's an authoritarian mindset derived from the idea that employees should be obedient little robots. You hire managers to manage the employees, and when you have too many managers you hire department heads to manage the managers, and so on.

This is not how you manage creative people. Creative people should not be told what to do, only be given a general direction to walk in. You should hire a creative person because you want him to do what he was doing anyway. If your operating system is bloated, then hire someone who thinks that it shouldn't be bloated. You don't have to TELL that employee to make the operating system less bloated because they want it to be less bloated, so they'll just make it less bloated. If you don't trust them to do a good job making the operating system less bloated you shouldn't hire them.

In this context, the entire modern concept of a CEO driving the direction of a corporation breaks down. You do not drive the direction of a company by telling employees what to think. You drive the direction of a company by hiring people who think in the direction you want to go. Creative people work best when you simply let them do their jobs.

If you hire a web designer, you don't tell them what to do. You tell them what the end goal is, what the restrictions are, and let them figure out the best way to do it. The entire concept of a CEO going through potential website designs until he finds one he "likes" is utterly ridiculous since you just hired them because they know that! A situation where a manager can do an employee's job better than they can is extremely rare, because the people who tend to be the best at doing something are the people who are actually doing it. Just let them do the job you hired them to do.

If you hire a programmer to write a graphics engine, you don't tell them what order to implement features in. You don't even tell them what features you want them to implement, because someone else on your artistic team is supposed to know which features are needed, and the programmer is expected to prioritize those features properly because that's what you freaking hired them for.

If I hire an artist/designer to make a game, I expect them to go and make the game. I give them certain limitations, like budget concerns or maximum development time, but I expect them to be able to work within these restrictions or I wouldn't have hired them in the first place. If they don't, I don't hire a manager to make sure they do, I fire them (or move them somewhere else) because they aren't doing their job. The only time you need a manager is when there is a conflict of interest in the workplace or someone is actually doing something wrong. If most modern software companies have managers managing people day in and day out, then apparently those companies think that an employee is doing something wrong every single day. If an employee is doing something wrong every single day, why did you hire them?

Even worse is that software companies do not consider themselves bastions of creativity. This is a problem, because software companies benefit greatly from this, since programmers tend to be naturally self-driven. A team working on a project simply needs a designated team leader to keep things focused, not a full-time manager, and the team leader definitely shouldn't be spending his entire day attending meetings (*cough*Microsoft*cough*). It's the team's project. They decide where it should go, and if this is a problem then you shouldn't have hired them. Google is an example of a software company leaning in this direction.

Creative companies need to trust their employees. Managers exist because employers don't trust employees. Software companies don't realize they're actually creative companies, and their employees hate this because the managers usually have no bloody idea what they're talking about, and we see examples of this over and over and over in the news and laugh at them. But we never actually look at it as a problem that needs to be fixed, only as an inevitability.

We can fix this. In fact, it was fixed almost a decade ago. Valve has no managers. There's just Gabe Newell and then everyone else. It works. If you happen to like Portal, I think you'd agree that it works really damn well. There is a significant chunk of the workforce that is not being utilized. The companies that do manage to utilize it are the ones that write the history books.

Comments

Rob 12 years, 2 months ago

It sounds like you're suggesting we live in a perfect world. Yeah, like that's definitely reasonable.

firestormx 12 years, 2 months ago

I started just skimming about half way through, 'cause I'm sleepy, but this clearly wasn't written by someone who has had any experience with managing things in a company (no offense).

You can't just hire and fire people willy-nilly. It's an expensive and timely process (not to mention the lawsuits you'd start getting).

You can't judge how someone will work solely from an interview.

You can't just expect to find someone who shares the company's exact vision at the point when you need to hire someone.

On the other side, it's a horrible idea to hire someone and "leave them to it" to fix something, just because they want to.

I don't want to get into it (because I'm tired), but there's pros and cons for both the current model, and your model, but for a large company to stay afloat, my money is on the current model.

In a perfect world, managers would manage people who are good and motivated at what they do. There is far, FAR more to being a manager than just trying to get people to conform to the company's standards.

(again, not trying to be offensive, but you're looking at this from a very odd angle)

JuurianChi 12 years, 2 months ago

I was really into it until the Valve analogy came into play.

Them my brain stopped working…

blackhole 12 years, 2 months ago

firestormx: I think its hilarious that people say this won't work. I'm approaching this from the angle that if I hire someone, its so they can work on what they wanted to be working on in the first place, so I usually don't have to tell them what to do. I'm also not saying you can fire people willy nilly - obviously you should probably just move them around rather than fire them because that's a lot easier and usually more practical. What i'm trying to say is that someone who can't manage themselves isn't doing their job. In addition, this doesn't expect someone to have the exact vision the company "needs" when the company's vision itself should be a combination of all the employee's visions, so to move the company vision, you start adding people with visions in the direction you want the company vision to shift in instead of trying to tell people what the vision is, which is just as bad.

The problem is that people refuse to believe this exists. They think I am trying to live in a perfect world when I am already managing people mostly by giving them vague instructions on what they should probably do and just let them do their work. You don't remove ALL management, you just remove the vast majority of it and allow employees to manage themselves and each other. If someone can't manage themselves, then they are incompetent and you should fire them. In a real world scenario, I'd probably just try to teach them better management skills rather then fire them, which is entirely reasonable.

I have talked before about how I hire people so they can work on their dreams, and by extending this management becomes redundant because in general most people will be able to manage themselves in a relatively open hierarchy via mutual cooperation. It's really not that crazy if you accept the fact that it is possible to have a job that doesn't suck.

tylerthemiler 12 years, 2 months ago

I interviewed with the head of IE. It was fucking awful. He BROWSED THE FUCKING INTERNET during my programming questions.

I decided fuck big companies and took a job at a startup :) best decision ever.

Edit: Companies like Microsoft and Apple are intrinsically fucked anyway. Everything will be virtual within the next five years and their OS-backed-by-hardware model will be obsolete. Neither of those companies have reasonable investments/achievements in the cloud. Apple still has hardware and Microsoft is still large enough that they can turn it around after fucking up for a few more years, but I think they are on the decline from dominance.

Startups just need to stop selling out so easily to the Big Three.

Edit 2: Sry for the extreme use of language…makes me look less intelligent than I am :P

blackhole 12 years, 2 months ago

I interned at microsoft once and never held another job and now I've started my own company, so… yeah. I have endless amounts of horror stories from that one summer at microsoft.

Startups do a much better job expecting employees to be self-directed, and benefit greatly as a result.

However saying that the cloud will overrun everything in a few years is a fallacy, because for one, the cloud keeps breaking when it isn't supposed to, and two, people keep saying everything's going to be in the cloud and it keeps not happening. I'm not personally concerned, however, since the cloud doesn't affect me very much. Also that's off-topic XD

firestormx 12 years, 2 months ago

Quote:
I have talked before about how I hire people so they can work on their dreams, and by extending this management becomes redundant because in general most people will be able to manage themselves in a relatively open hierarchy via mutual cooperation. It's really not that crazy if you accept the fact that it is possible to have a job that doesn't suck.
It is very crazy if you look at people. You seem to be looking at this solely from a programmer's point of view, but you have to remember that programmers /create/ things. Programming isn't something you can learn easily, so the people that work with it, love it. The average person doesn't love what they do, and doesn't know of any job where they could do what they love to do.

Programming is a rarity, in that there is such a large opportunity to make money off of a hobby.

The job market for artists, musicians, athletes, etc, is pretty limited. Those are things that people love to do, but they can't get paid for it, so they have to go and work, doing something they don't love, doing jobs where they probably don't create things.

Now, if you want to look solely at the market for programmers, people's opinions vary greatly. You need people to tell you what to do in order to set standards in the work. If the company has all its projects built on Visual Source Safe, but you want to use Git, and you go off and use Git for your projects, you've just screwed everyone else over. You might want to use a newer version of a DLL for connecting to a database, but you need someone to tell you not to, because not only is that new DLL conflicting with other old stuff that other software in the company requires to run (otherwise all that software would need ot be rewritten), but you have to think about the people who have to support your program with your new fangled DLL.

Did you ever think it was weird when you see companies still using IE6 for its intranet? It's because it would be a huge cost for a large company to run QA for all existing applications outside of IE6, train its support staff, and all this other stuff.

I hate the idea of taking business and economics and stuff in school, but it helps you to understand that there's more to a business than just programmers sitting around programming things. There's the cost to support the programs (and how easy it is for a single answer to fix multiple things); the time spent working with QA on your project, which was created in your own standard, rather than some company policy standard; the ability to work together with other developers, and so on…

For a small startup, this might work. You don't have to support a crap ton of applications, you don't need to develop massive programs, you don't need to make sure that if you're canned, the next guy can pick up what you've already done because you followed the direction of management, you don't have to think about the economic impact that things will have on the company in the future. You just have to sit there, and make the flagship product.

For large companies, especially one as massive as microsoft, this is incredibly difficult to do.

Now, if you look at Google, it seems like they have a really good model, that is similar to what you want. But Google has money out the whazoo, and on top of that, is rather selective about who they hire.

Google seems to still behave like a startup, really…

MMOnologueguy 12 years, 2 months ago

Don't worry guys, when the revolution comes there will be no employees or employers, only democratic egalitarian programmer unions. Consequently all our operating systems will be comparable to humankind's greatest works of art, if not better.

tylerthemiler 12 years, 2 months ago

@blackhole: Cloud was the wrong word I think. I meant that OSs will be virtual, and the non-SaaS model is fucked :P not like, E2C or the like, just a move towards SaaS and virtual hosting of OS (aka, your laptop will be running the same VM instance as your desktop, tablet, phone, etc).

What is your company??

blackhole 12 years, 2 months ago

I've actually taken economics. Google is very similar to what I want to do. Valve is an extreme example that proves that it actually works. I know precisely what economic costs are involved with running a company like this, and more importantly I know exactly how to deal with them under a variety of circumstances. Does this sometimes involve making people do things they don't want? Yes. Does that invalidate my points? No. The idea is that everyone in the company is working towards their dreams, which does not always involve doing exactly what you want. I am currently working on a bunch of extremely boring, painful unit tests, but I'd still rather do these painful boring unit tests to help the project I really like working on rather than do anything else. Hiring someone to work on their dreams does not mean they always work on everything they want to do forever.

This system only breaks down for large companies because those large companies didn't scale properly. Those companies solve problems by throwing more programmers at it. That isn't how you solve problems, that's how you make them worse. Is it any wonder they have turned into ridiculous bureaucratic nightmares?

Even more, I am not looking at this just as a programmer, I am looking at it from a creative point of view, and I concede that this system works better for creativity. That's what my entire company does. It makes games and tools for making games and art and music and everything that you say never pays any money because no one has a goddamn clue how to properly monetize the thing, which doesn't mean it can't be done, simply that most corporate CEOs are fucking idiots.

My company is an LLC called Black Sphere Studios. The website has exploded and we are still working on our core product.