Tuesday, July 17, 2007

Noogler, Day 16: Second wave of classes, Kinesis, and 20% time

I hope you weren't eagerly looking for a day 15 post. I think that some of my daily posts have gotten a bit thin anyway, so one missing day isn't going to be a killer.

I'm going to talk about a few things here. First off, let me tell you a bit about work. Crusher asked me today if I was enjoying my new job. I said that I'd give him an answer once I knew what my new job is.

There's certainly truth to that. I've been learning a lot about the company, the infrastructure, the languages, the libraries, the problems, the solutions, etc, etc. I still don't know what I'm going to be doing day to day. I've been reading the team mailing lists, but only understanding 5% of what I read.

Fortunately, last night, my boss started setting up the training classes that are specific to our job. I've been through all the stuff that every engineer goes through already, but I really have no idea what I have to do day to day. For the few weeks, I've got New Ads SRE training. The first session was today, taught by Alex. It was a more in-depth discussion of some of the stuff we'd gone over in previous classes, and it looks like a number of the upcoming classes will go into more depth on individual parts.

I'm quite excited about these classes. While I'm certainly learning a lot in my self-directed studies, I do still feel a bit ungrounded. I was hoping to get my sea legs with the starter project, but it looks like these classes will give me a lot of orientation.

I'm also looking forward to my ergonomic review tomorrow. I know, that sounds dull, but you may recall from day 10's entry that it's part of the process for me to get my new keyboard. The usual bowl-keyboard that Google issues is a Kinesis, but I'm used to a Maltron.

I had first started using the Maltron on the recommendation of some of my friends from GNU and red-bean. If it gives you any idea of the obscurity of the Maltron, though, mine has a serial number in the 4900s.

Still, I'd been thinking about switching to the Kinesis. The Maltron uses a proprietary key layout, whereas the Kinesis uses the Dvorak layout, which is built in to most OSs. This means that I could sit at any keyboard and switch it to using a key layout that I'm comfortable; with the Maltron, I'd have to bring my keyboard if I wanted to do that.

The Kinesis is also much more popular than the Maltron, and easier to get. Many hard-core geeks are at least passingly familiar with the Kinesis, whereas the Maltron is almost unheard of. The story is that Kinesis first tried to license the Maltron for the US, but Maltron turned them down. Kinesis then developed a similar keyboard, but with the Dvorak layout instead of the proprietary Maltron layout.

So I started wondering, has anybody switched from the Maltron to the Kinesis? What were their experiences like? I spent a bit of time scouring the web for comparisons.

I couldn't find any real comparisons, but I did find a blog entry from a guy who was in the process of switching from the Maltron to the Kinesis. This guy, Fitz, is one of my red-bean friends, but we hadn't talked in quite a while. I looked over his blog to see what he's doing these days, and found out that he's working at Google too! (Not at my complex, though; like many red-beaners, he lives in Chicago.)

I shot him an email, and we talked a bit. He has been moving to the Kinesis over the past few weeks, and is quite happy about it. Based on his recommendation, and the reasons I went into above, I think I'm going to get a Kinesis at work, and another here to replace the Maltron, so I can learn the Dvorak layout.

Now I'm going to talk a bit about 20% time. One of the most famous things about working for Google is that you can spend 20% of your time working on whatever you want. Some released products, such as GMail, started as 20% projects.

Some people will take part of their 20% time to fix a bug that's annoying them, or add a feature they want, to some other Google product. For example, there's a story on the official Google blog from a guy who writes internal tools to manage partner relationships, who used some of his 20% time to add a new key shortcut to Google Reader.

Other people will use their 20% time working in groups that interest them. It's not uncommon for people to spend their 20% time in a different group, in order to size them up for maybe moving to that group. It makes for a pretty smooth transition. I had wondered about that; people move around a lot within Google, so I was wondering how the internal turnover didn't eat them alive in retraining. Part of it is that people have been spending 20% of their time doing the job before they move!

Some areas are resourced mostly with 20% time. I know a number of my teachers generally taught in their 20% time, and had an 80% job doing engineering.

In fact, there's a lot of groups that are composed of people spending their 20% time on something they feel strongly about. In any development organization, there's a number of areas that people feel are important, but don't get well-resourced: training, code readability, testing, etc. For instance, there's one group of people that, in their 20% time, write flyers about code test techniques, and puts these in the bathroom stalls. "Testing on the Toilet", the series is called. Through this and other means, they're actually doing a lot to improve the quality of testing at Google.

That's what I find the second best about 20% time, as a concept. You get people who are passionate about what they're working on. They really do want to work on testing, or really do want to teach, etc. This means that they do good work: they are thinking about this area all the time! Now, this isn't to say that people aren't passionate about their 80% work. They certainly are! But I think that the 20% time has a fluidity and openness that your 80% projects just don't have.

So what do I find the best about 20% time? Morale. Engineers work best when they're finding outlets for what they really want to do. Traditionally, management theory has focused on handling this by improving morale either by encouraging developers to be engaged in their projects (see the books "Quality is Free", and most especially "Peopleware"), or by collateral means (such as free food and offsites). I don't know of anywhere that's ever decided to channel engineers' ideas into productive areas directly, to improve both production and morale.

And before you ask, no, I don't have a 20% project yet. Of course, I don't even have a grasp of the other 80% of my time yet!

No comments: