Wednesday, June 27, 2007

Google's Work Environment

Interesting post comparing the work environment at Google to the environment at Microsoft. I thought I'd take a stab at comparing it to my work environment. This really only applies for our little piece of the company, not the whole company.

  1. Hours. We're kind of similar, but the hours are a little earlier. Most people are in the building from 9-5, but some are in the office from 7-4, 10-6, 10-4, etc. Most of us are on email before and after time in the office. Personally, I usually work at home until I get frustrated with a problem, then get ready and go into the office around 9:30. I leave at 4:45, beat the traffic home, and usually answer a few support-related emails at night. The hours fluctuate, but most weeks I'd guess that the average development staff person is doing 50 hours on average. It's usually either 40 while we recover from a release and plan the next one, then back up to 50-60 or more while we build up to a release.
  2. Personal projects. Almost nobody works on personal projects at my company. There used to be more R-and-D done there, but today there's only one guy that seems to have time to do that sort of work.
  3. Office arrangements. Every developer is in a cube. We were mostly in 2 person offices before we moved to the new building, but now it's a cube farm again. The noise is a little bad, but headphones stop that. It's the constant walk-up interruptions that make it tough to work on a problem for a solid hour or two in a row. The solution is to go work from home, which works pretty well for me.
  4. Management structure. We have two team leads, one with my product team and another for another product and the tech writers. They report to the development manager, whatever his title is. He reports I think to the CTO. The day-to-day management is mostly split between the team leads and the development manager, but much of the team is pretty self-directed.
  5. Career development. We rarely have any planned job changes. Almost everyone is critical in their position and has no replacement available, so they can't move to another internal job. There is no real career development path. It's a little different in other parts of the company, but not in our group.
  6. Would I recommend it? Only for the right person. We're a pretty tight-knit team. Almost everyone has been there at least 5 years. Half the team has left (quit or laid off) and returned to the company. Before we were acquired, the company tanked so bad and we had so many rounds of bad sales and layoffs, that we're very cynical. We're still learning to trust the new management, who so far have accomplished almost everything they said they would. It's also a pressure cooker. Our product quality has suffered over the years and it's taking a lot of effort to recover. Our customers are large and really expect zero failures so that exerts a lot more pressure than the average developer is ready for.
  7. Perks. There are free sodas, bottled water, and coffee. That's it. The development manager will often buy a couple rounds and snacks at a local bar. Sometimes we get a big team lunch together after a release. But nothing like a staff chef or on-site laundromat. Back in the day we've had things like a pool table, foosball, ping pong, televisions, video games, etc. but now we don't even have a table and chairs in the kitchenette / break room. Taking a break pretty much means hanging out in someone else's cube and distracting everyone around them. Or walking to Starbucks and back.
  8. Equipment. For the most part, everyone has just a laptop and a nice LCD monitor (plus mouse and keyboard). Most developers have an old desktop or two sitting around for testing, but we're trying to migrate that all to VMWare. Since we support so many platforms (and OS versions), we have a huge number of servers for the number of people. We have multiple mainframes, a room full of Unix machines, and multiple VMWare servers.
Update (Jan 29 2008): This information is provided of my own volition, expresses only my viewpoint, and does not represent my company’s official position on the subject matter. So there.

Some other updates, if anyone cares. We've restructured slightly, which resulted in essentially eliminating the team lead position for most of our group. Time will tell if that's manageable or not. Now there is more promise of R&D and some nearly "green field" development projects. We're working on improving the perks slightly and doing a little more fun team-building stuff. It's definitely progress, but we're still not Google or someplace drowning in cash and resources.

Technocrati tags:

Saturday, June 16, 2007

Canon Powershot TX-1

Canon Powershot TX-1 I see the Canon Powershot TX-1 is available now. It looks like an amazing piece of equipment. Tiny. 7.1 megapixel still camera with a good 10x zoom lens and great electronic bits behind it. But the real winner is that is shoots HD video (1280x720 at 30 fps). All to an SD or SDHC card. It sounds a little fumbly for the average dad that just wants to shoot his kids being cute, but for someone that can deal with a few quirks and the tiny, shake-prone size, it practically puts an SLR and a pro-level HD camcorder in your pocket.

Trying to talk myself into selling my Canon Powershot S3 IS to trade up to the TX-1. Maybe when the price drops down one more bump.

Wednesday, June 13, 2007

Stop That Windows Automatic Reboot After Updates

I just came back to my rebuilt XP laptop after a meeting and found that it had rebooted itself, losing some code changes I was working on. One of the most annoying things about Windows XP is the way it will automatically reboot after installing a Windows update. Every time I set up a new Windows machine I forget about it until I suddenly find my machine rebooted and all my work-in-progess lost or in a questionable state. Thanks guys.

But there's a way to fix it besides running Linux or Mac OS X.

There are two settings we can change. One is to disable the automatic reboot. The other is to slow down the popup prompt that keeps reminding you to reboot.
  1. Start->run "gpedit.msc".
  2. Go to Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update.
  3. Change the "No auto-restart..." setting to "Enabled".
  4. Change the "Re-prompt for restart..." setting to "Enabled" and change the wait period to 1440 minutes (the max).

Now when an update requires a reboot, you'll get a popup reminder window only once a day and more importantly, no automatic reboots.

Saturday, June 09, 2007

Five things I learned from my reunion.

Five things I learned at my 20-year high school reunion (Pinellas Park High School class of 1987):
  1. Multiple lives. Someone, I think Bob Hicks, said to me, "I don't know about you, but I've lived 3 lifetimes since high school." Amen. I think I've lived 4 or 5. It sure seemed like some people have only lived one.
  2. Worth going. I really didn't quite want to go. I skipped the ten year reunion for no good reason. It was definately worth going.
  3. People are interesting. There were a couple of people that I spent more time talking to at the reunion than I probably spent talking to in high school.
  4. Sports matter. Over the years I only really think about the guys I hung around with outside of school. But I forgot how much time I spent with my football team. If I really added it up, I probably spent as much time with other football players during high school as I did with my "real" friends. I was amazed how many stories I'd forgotten.
  5. Boys will be boys. Someone got too drunk, peed on the carpet in the hotel, and got chased off by the Clearwater Police Department. "Is this your usual weekend duty," I asked one officer. "Yep. Could be a lot worse."