The following has been making the rounds on just about every internal email list I belong to in Microsoft. Here it is to share a little insight with the rest of the world. Microsoft is an amazingly transparent company. Google is not. Any peek is a good peek.

Many of you were asking for the feedback I received from my interview with the former Google employee I hired into ABC Development as a Sr.SDE. Here it is. This candidate is also a former MS employee who left the company and founded a “Start-up” called XYZ. XYZ was purchased by Google and he was hired on as a Senior Software Engineer II / Technical Lead. Here is his take on Google’s environment as well as areas Microsoft should consider improving in order to be more competitive.

Enjoy

1.What is the culture really like? How many hours are people actually working? What are the least amount of hours you can work before you are looked down upon?

The culture at Google is very much like the old culture at Microsoft – back when the company felt like most employees were in their mid 20’s. These kids don’t have a life yet so they spend all of their time at work. Google provides nearly everything these people need from clothes (new T-shirts are placed in bins for people to grab *twice* a week!) to food – three, free, all-you-can-eat meals a day. Plus on-site health care, dental care, laundry service, gym, etc. Imagine going from college to this environment and you can see how much everyone works. People are generally in the building between 10am and about 6pm every day, but nearly everyone is on e-mail 24/7 and most people spend most of their evenings working from home.

This culture changes a bit with more experienced folks. They generally work 10a – 6pm like the new hires, and most of them are on email until around midnight. It’s pretty common for them to be working most of the evening, too.

2.20% of your time on personal project. How many people actually get to use it? If so, how do they use it? Does Google own your personal project?

“20% is your benefit and your responsibility.”

In other words, it’s your job to carve out 20% of your work week for a project. If you don’t carve out the time, you don’t get it. Your project needs to be tacitly approved by your manager. Whatever it is, is owned by Google. If you’re organized, you can “save up” your 20% and use it all at once. It’s not unheard of for people to have months and months of “20% time” saved up.

Most people don’t actually have a 20% project. Most managers won’t remind you to start one.

3.What are the office arrangements like? Do you have an office or cube space?

Google believes that developers are, with few exceptions, interchangeable parts. This philosophy shows through in their office arrangements which in Mountain View are all over the map. There are glass-walled offices, there are open-space areas, there are cubicles, there are people who’s desks are literally in hallways because there’s no room anywhere else. There are even buildings that experiment with no pre-defined workspaces or workstations – cogs (err, people?) just take one of the available machines and desks when they get to work.

In terms of employees per square-foot, every Microsoft Building 9-sized office is a triple at Google.

There are front-line developers, and then their manager. My manager had over 100 direct reports and is the common case for managers at Google. Managers quasi-own products and their employees tend to work on their projects, but not always. It’s possible for a developer on your product to actually work for a manager in research (a completely different division). This makes it really interesting at review time. Oh and conflict resolution between team members is very complex – the product’s manager isn’t involved day-to-day, probably doesn’t actually manage all of the peers who are trying to resolve a conflict, and likely hasn’t spent any time with their employees anyway.

The overall structure is:

tons (a hundred or more) of individual contributors report to

a middle manager who reports to

a division v.p. who reports to

the management team (Larry, Sergie, etc.)

5.Do they actually have plans for career development?

Not really. There is no career development plan from individual contributor to manager. Basically if you get good reviews, you get more money and a fancier title (“Senior Software Engineer II”) but that’s about it.

6.Who would you recommend Google to? Is it for the college kid or family type, worker bee or innovator?

College kids tend to like it because it’s just like college – all of their basic needs are taken care of. In fact, even most of your personal-life can get tied up in Google benefits. Google provides free or subsidized broadband to every employee. Google runs its own, private, bus lines in the Bay Area for employees. Google provides free or subsidized mobile phones. A college kid can literally join Google and, like they did as freshman at university, let Google take care of everything. Of course, if Google handles everything for you, it’s hard to think about leaving because of all the “stuff” you’ll need to transition and then manage for yourself.

Mid-timers, people who’ve worked at other places for a few years tend to be a mixed bag. For some, this is the first stability they’ve seen after a few failed startups. For others, this is the company that represents a “better” way to run a company than the company they worked at before. Either way, for these folks to succeed at Google they have to drink the cool-aid and duke it out with the college kids because Google doesn’t place any value on previous industry experience. (It puts tremendous value on degrees, especially Stanford ones).

“Old-timers” tend to like Google because they’re the ones who know to take the most advantage of the perks. These are the people who religiously take their 20% time, use as many of the services as possible, and focus on having a “peaceful” experience. They’re here to do a job, enjoy the perks, and that’s about it. They still put in a lot of hours, but the passion of the college kids isn’t there.

7.Please provide any additional information that you believe will help in our battle for talent against Google?

Make the food in the café free. If an employee eats an average of $15 of food per day (the actual average at Google which is closer to $10) it would cost Microsoft $3,750 per year per employee to offer 3 meals a day. Instead of increasing starting salaries, switch to free food. Give everyone else half the merit increases we would have gotten AND ANNOUNCE THE FREE FOOD AT THE SAME TIME. For that quoted $10 average Google provides free soda, free organic drinks (odwalla, naked juice), breakfast, lunch, and dinner (most people only eat lunch), free sport drinks (vitamin water, etc.), and free snacks (trail mixes, nuts, chips, candy, gum, cereal, granola bars).

That single benefit gets people to work earlier because hot breakfast is served only until 8:30. And since dinner isn’t served until 6:00 or 6:30 the people with a home-life tend to skip it.

Google actually pays less salary than Microsoft.

Google’s health insurance is actually not nearly as good as Microsoft’s.

Google has no facility for career growth. Microsoft has more, but could do better. Continuing Microsoft-specific education for things like project management, managing people, communication skills, etc. should be promoted. A structured career plan for each discipline would be great – e.g. training, experiences, milestones, etc. Paths like “Developer to Development Manager” “Developer to Technical Architect” which show what courses and experiences (e.g. being a mentor) are encouraged for the different paths.

Private offices for employees is a big benefit. See http://joelonsoftware.com/oldnews/pages/March2007.html. Play this up. Take a cue from Google and loosen up a little about offices. Let people call facilities and have their office painted any color they want. Have the standard office come with a guest chair and a brightly colored Microsoft branded bean-bag chair.

Google has the concept of “Tech Stops.” Each floor of each building has one. They handle all of the IT stuff for employees in the building including troubleshooting networks, machines, etc. If you’re having a problem you just walk into a Tech Stop and someone will fix it. They also have a variety of keyboards, mice, cables, etc. They’re the ones who order equipment, etc. In many ways the Tech Stop does some of what our admins do. If your laptop breaks you bring it to a Tech Stop and they fix it or give you another one (they move your data for you). If one of your test machines is old and crusty you bring it to the Tech Stop and they give you a new one. They track everything by swiping your ID when you “check out” an item. If you need more equipment than your job description allows, your manager just needs to approve the action. The Tech Stop idea is genius because:

1.You establish a relationship with your IT guy so technical problems stop being a big deal – you don’t waste a couple of hours trying to fix something before calling IT to find out it wasn’t your fault. You just drop in and say, “My network is down.”

2.Most IT problems are trivial when you’re in a room together (“oh that Ethernet cable is in the wrong port”)

3.The model of repair or replace within an hour is incredible for productivity.

4.It encourages a more flexible model for employees to define their OWN equipment needs. E.g. a “Developer” gets a workstation, a second workstation or a laptop, and a test machine. You’re free to visit the Tech Stop to swap any of the machines for any of the others in those categories. For example, I could stop by and swap my second workstation for a laptop because I’m working remotely a lot more now. In the Tech Stop system, this takes 5 minutes to walk down and tell the Tech Stop guy. If a machine is available, I get it right away. Otherwise they order it and drop it off when it arrives. In our current set up, I have to go convince my manager that I need a laptop, he needs to budget for it because it’s an additional machine, an admin has to order it, and in the end developers always end up with a growing collection of mostly useless “old” machines instead of a steady state of about 3 mostly up-to-date machines.