For the last four years, Forbes has named Google the #1 best place to work. I'm told that Google gets huge numbers eager applicants every year. Most of the software engineers I know want to work at Google. As a Google employee, I can confirm that Google is indeed a great place to work.
But Google doesn't have some magic bullet. Sure, spending money on employee perks are an obvious way to increase employee happiness, but it's not the only way. And not every company can do what Google does, but most companies that employ a set of skilled professionals--especially software companies--can implement some or all of the features that make Google great. And by making your company an awesome place to work, you will perfect the art of employee recruitment and retention.
I will list six ways to make your workplace better. And then I will list some more. It was getting to be a rather long list, so I tried to boil it down to six essentials. And then failed.
1. Hire the smartest people
Seems like a no-brainer, but I don't think many companies follow this rule like Google does. Whereas some companies will hire mediocre engineers because they simply need warm bodies to code, Google (sadly) discards a lot of good candidates because we are so serious about hiring brilliant people. And while passing on good candidates is definitely a bad thing, Google is full of brilliant people as a result of our rigorous hiring process. The obvious benefit is that smart people work more efficiently and can tackle difficult problems, but as an added bonus, having lots of smart people at your company helps recruit other smart people. Ray Kurzweil works at my company! Maybe I'll get to meet him someday!
Hiring the smartest people is hard to do if your company isn't one of the best places to work for, which is what brings us to #2...
2. Treat your employees well (with pay and perks)
If you ask most people what their employer could do to make them happier, the first thing they'll say is to increase their salary. Obviously, you should pay your employees the going rate for their respective jobs, if you can afford it. But money isn't everything. Giving employees perks is another creative way to spend that extra cash you have on employee happiness.
Google employees get tons of perks, from game rooms, work parties, free meals, free valet, matching 401k contributions, gyms, free meals, beautiful working environments, free meals, and, lastly, free meals. I'm very big on the free meals. On-site perks, like the meals, will keep employees at work longer and prevent them from taking 2 hour off-site lunches. All of which can boost productivity. The only problems with perks are that they cost money and some people may take advantage of the employer's generosity. Which brings us to #3...
3. Hire honest, caring people
Honest, caring people care about the company they work for, especially when that company cares for them. They try not to cheat the company by overusing perks. It also can help team dynamics. But how do you recruit good, honest people?
When people talk about how evil a company Google is, I think it's amazingly hilarious and thoroughly frustrating. Every single decision by Google that has ever been considered possibly evil by the public has been internally protested and ridiculed repeatedly by Google employees. That's because the company is full of employees who care about the Google's economic, social, political, and psychological impact on the world and we hate it when a head executive makes a bad decision. We honestly believe that, overall, we're doing good in the world.
Being good is hard and is often expensive, but it helps recruit and retain honest, caring people. And it has a side benefit of helping the public image of your company.
5. Use the right tools
Google employees have tons of internal software and hardware tools that help us do our jobs. Some companies are reluctant to upgrade software engineers' computers until they are too slow to run. Some companies don't want to shell out money for software that can improve productivity. Google generally keeps their engineers' hardware up to date, and buys or builds software tools that make our lives easier. From our version control system, to our cloud code repository software, to our testing infrastructure, to our laptops; Google invests a lot of time, energy, and money into making sure we have the right tools for the job. I'm not saying all our tools are perfect, but it's usually a question of which tool is best and not whether a manager will shell out money for it.
Good tools make employees productive and happy.
6. Share internal information
Sharing information means two things: managerial transparency and knowledge transfer with efficient, persistent interoffice communication.
Transparency is hard. I once worked at a defense company where it was legally impossible because of security issues. But at Google, we have a weekly all-hands meeting where we talk about what's going on in the company to a surprising detail, and low-level employees can ask CEOs and division managers questions. I think it brings us together as a company and makes employees feel that they have a voice. The downside is that some employees leak information about upcoming products and services. These leakers are fired as soon as they are identified, of course, but the leaks are a known issue with our transparency.
Transparency is hard. I once worked at a defense company where it was legally impossible because of security issues. But at Google, we have a weekly all-hands meeting where we talk about what's going on in the company to a surprising detail, and low-level employees can ask CEOs and division managers questions. I think it brings us together as a company and makes employees feel that they have a voice. The downside is that some employees leak information about upcoming products and services. These leakers are fired as soon as they are identified, of course, but the leaks are a known issue with our transparency.
Knowledge transfer is the most important part of sharing internal information. Googlers teach other googlers through technical talks, postmortem talks after failures, coding tutorials for our different internal projects and lots of informal presentations. I recently learned how to use a new integration test framework at Google. As soon as I finally got it all working, I was told: "Good, now you can teach us all how to use it." I strongly believe that the amount of engineer-to-engineer teaching we have at Google is what makes us an intellectual powerhouse.
And even when the teaching is not formal, we have a lot of interoffice communication. We have online forums (implemented with Google Groups) where we can post any question we have about any tool or project and have it answered quickly by other people who are using the tool. For internal tools, the person who answers your question will probably be the engineer who wrote the tool. The great thing about forums is that the information and answers are online forever.
In addition to forums, we use email, chat, and video chat to ask experts how to get things working. I'm working on a project now with a guy two states over from me. I've sent and received code reviews from people all over the world. This interoffice teaching and collaboration is incredibly powerful.
Knowledge transfer is more of a tool to make employees efficient, but I also think it makes Google a great place to work. It makes our jobs easier, and we can build relationships with people we haven't met face-to-face.
Others
Now that I've detailed 6 excellent ways to make your company a great place to work, I'm going to list a few more that are almost as important:
- 20% Projects. Googlers will sometimes spend 20% of their time on a side project and 80% on their main task. This is a win-win for companies because employees are happy to work on something that they think is cool, and the finished project is usually something that improves Google.
- Reuse Code. A lot of google code is stored in one repository that can be seen on internal websites. This helps us not reinvent the wheel if we're writing something that's already been done before; and it helps to see different examples of how to implement something, when we're doing something slightly new.
- Make telecommuting work. Because of my laptop, our excellent videoconferencing software and all our internal websites, I can stay home all day, for days and still be 95% as effective as I am at work. This also helps with knowledge transfer; being able to attend meetings from home or on the road.
- Dogfood. If you have consumer products, use them. It allows you to find bugs and poorly implemented features before the customer gets them. It also saves money. And if your products are cool, your employees will enjoy this.
- Use free and open source software (FOSS) when possible. Free means you save money, open source means you can hack it if you don't like it. This makes your company a better place to work because the money can go elsewhere, like to your employees! The one caveat: only do this when it's right. Don't use crappy tools just because they are free and open source.
I hope that more companies follow Google's methods. Who knows, making our workplaces great might improve the human condition!
This article was not requested, sponsored, or endorsed by Google, Inc.
No comments:
Post a Comment