« August 2006 | Main | October 2006 »

September 30, 2006

Software Engineering Goal: Expose Bugs Faster

Back in 1992 a Microsoft developer named David Thielen wrote a small book call No Bugs!: Delivering Error-Free Code in C and C++. It's an interesting book, although given the tools we have today, it mostly serves to make you glad you aren't working in the days of assembly-mode and primitive debuggers (if you go to Thielen's website, he has a pretty good presentation titled "Why Won't They Push Out Christmas? Delivering High Quality Software On Time and Under Budget". It's from around the year 2000, so it misses a lot of the recent progress in tools). In the book he makes this one great point, which is that you don't want bugs to "lurk" in the software; you want them to jump right out and hit you in the face immediately.

I was thinking of this because I happened to watch an Office bug triage meeting the other day. This is the whole-product triage that happens as the ship date nears, where every bug needs to be approved by the assembled experts before the fix can be checked in. At this stage, very few bugs are brought to triage that aren't completely understood with a tested fix ready to go; the only question is whether to take the fix. The reason NOT to take a fix is the hard-earned knowledge that every N fixes is going to introduce a new bug. For example, one of the bugs I saw discussed was basically, "We fixed this bug last week but it turned out it causes a worse bug somewhere else, so we just want to back the first fix out and pretend the whole thing never happened." Plus, each time you change the code for any reason you basically need to retest the whole product. For example if you fix a bug that relates to running Excel in a remote desktop on Vista when running as admin, you don't know if you have messed up Powerpoint or running Excel locally or running on Windows XP or running as non-admin. The upshort is that towards the end you don't accept fixes that would have been accepted with no discussion earlier on.

When I teach classes to developers at Microsoft, I often have people go around the room and imagine that they had a bug where the actual code change was trivial; let's say you had a typo in an error message and you needed to fix it. The question is, how long would it take for you to get that fix checked in to the source code control system? The actual code change is trivial, but most teams have a series of steps they go through: compiling the code, obviously (although I once managed to skip that step, which is another story), but also possibly code review, build on a second machine, sync to current source code, run unit tests, etc, etc. In the old days the answer was basically compile that module and check in, total time a couple of minutes. Nowadays most students surveyed report times much longer than a couple of minutes. But the thing is, two changes or three changes or ten changes don't take much longer than one change, because all the other stuff can be done once for all of them.

This leads me to posit Adam's Theory of the Future of Software Engineering, which is that the critical task in improving software engineering is decreasing the lurkability of bugs. Yes, there's work to be done in better redundancy and faster performance and stronger security and easier parallelism and better component isolation and even techniques like Agile. But if you look at a lot of what we teach--design reviews, code reviews, static code analysis, unit tests--it's all about making the bugs jump out sooner. And I don't just mean sooner as in the old rule about finding bugs during design is better than finding bugs during coding which is better than finding bugs during stabilization which is better than finding bugs after shipment. I mean it's better to find bugs yesterday than today, and even better to find them two days ago, and last week, and so on. Every day earlier that you find a bug lets you make better decisions about prioritizing fixes and lets you do more overlapping of all the other stuff you need to do before you can check in. And that is how we can dramatically improve the software engineering process.

Posted by AdamBa at 09:07 PM | Comments (1) | TrackBack

September 27, 2006

Office Supply Recycling

I was talking to someone about office supplies (slow day at work) and she mentioned that Microsoft had a location on-campus where they recycled them. Furthermore, everything there is F-R-E-E free. All you have to do is log the items that you take.

Being your intrepid reporter, and also a sucker for this kind of dark underbelly scene, I set off to find the place. To keep it from being overwhelmed with newbie supply looters I won't reveal the exact location (although you can dig it up on corpnet). Suffice it to say that it is in the lowest level of the parking garage under one of the buildings. This demi-mondesque location is reminiscent of the place where Andy Garcia got waxed in "Black Rain", and serves to amp up the spookiness quotient a few notches. After wading past dumpsters and abandoned trash bins reach your destination, and if the very fires of hell are not actually leaking through grates in the floor, it seems like they should be.

What you are presented with is a fascinating cross-section of the industrial detritus generated by a company like Microsoft. Although there are bins in the copy rooms where you can recycle supplies, most of the stuff collected is abandoned in offices when the occupant moves offices or leaves the company. So it's basically things that nobody wants to bother taking with them. Piles of markers and staples. Storage cartridges for long-obsolete tape backup systems. Lots of books from the NT 4, Visual C 6.0 era. A whole box of promotional mousepads. And binders. Endless (or it seems that way) shelves of binders.

This actually is a throwback, in a way, to the way supplies used to be handled. There used to be a supply room in building 14, back when there was a building 14; if you wanted stuff, you walked over and helped yourself, while a staffer stood at the ready to point out the location of whatever it was you were trying to embezzle. Now, when you want supplies you order them from a website, your department is charged some small amount, and a week later your scissors show up in a giant box, air freight from who knows where. As long as you can tolerate pre-owned supplies of unknown provenance, the office supply recycle room allows you to recapture some of that faded glory--the part about loading up your arms with free stuff, if not the part about deterministic inventory.

The most poignant residents of this basement bazaar are the plaques and awards that wind up down there. One guy had abandoned 5 patent cubes. There was a frame containing a montage of photos from a triathlon. Acrylic mementoes for helping team X achieve goal Y in year Z. Even a couple with the name of a certain recently-departed Microsoft executive, who evidently felt no need for further reflection on the lucite remembrances of past glories.

From the email aliases on the signout sheet, contractors are particular fans of the place (makes sense since their access to office supply budgets may be tenuous). I myself liberated a perfectly useful 3M tape dispenser. In fact it was the "deluxe" tape dispenser, with the little spindle that flips out to hold the tape. That's right, I'm talking about the C-40, baby, $8.99 new from msmarket, not that cheesy $1.50 C-38. Since we now stock tape in the copy rooms (insert angel choir), I went from zero to tape-at-the-ready in less than half an hour. Truly, I was the king of the world.

Posted by AdamBa at 10:01 PM | Comments (2) | TrackBack

Anybody Want Some Barbara's SoyEssence Cereal?

About four years ago, Consumer Reports rated breakfast cereals, and the one they top-rated was something called Organic SoyEssence from Barbara's Bakery. I like the cereal, it has 5 g of fiber and 3.5 g of protein per serving, a nutty crunchy goodness with a flavor all its own, etc. The local QFC sold the cereal, but right after the article came out they somewhat inexplicably stopped carrying it. When I asked, they said that Barbara's stopped making it.

This is not true; they still make it. But it does seem to have disappeared from local supermarkets. Anyway I found this place called Natural Resources (in Sebastapol, CA, home of O'Reilly) which will sell it to me, but only by the case (12 boxes). With shipping it winds up being about $5 per box. Although I will eventually work my way through a case, I figure if anybody wants a box I can sell you one of mine (or at least I can do so for about the first six people who want one). SO, if you are interested in a box for $5, and you can present yourself at my office in Building 21 at an agreed upon time, let me know.

Posted by AdamBa at 12:44 AM | Comments (0) | TrackBack

September 25, 2006

Trying to Grok Windows Live

At the Company Meeting last week, Ray Ozzie stood up and gave a very nice, very inspiring speech about how we have to shift the company to Live (Windows Live, Office Live, etc). He spoke without slides or notes and it's obviously something he cares a lot about and has thought a lot about. I'm entirely convinced that he has a great vision of the future in his mind.

The only problem is, I really don't know what he is talking about.

I'm fully prepared to believe it's because I'm too dense to understand. But when he talks about "betting the company on Windows Live", what does that mean? How does Windows become a service? I understand that there are things we need to do in order to make the Internet a platform; back in 2000 I wrote that I thought that's what .Net was. But I don't see how this involves changing Windows in some fundamental way.

As it happens, Wired had an article this month called "Rebuilding Microsoft", which is about precisely this: Microsoft's "post-desktop" plans. So I figured the article would clear things up for me.

Or not. The article only offers hints of Ozzie's vision, and vacillates alarmingly between portents of doom if Microsoft blows this paradigm shift, and reminders that the company is still hugely successful (implying, perhaps, that the writer occasionally emerged from his Ozzie-induced thrall to wonder about the same kinds of things I am).

Specifics? The article mentions "a world where desktop applications would eventually work in concert with high-speed apps delivered over the Internet", but since there is plenty of this today and it mostly runs on Windows, I don't see what needs to change. Then it says, "In other words, instead of spending years working on giant, deeply integrated software packages...Microsoft needs to think more like Google...designing and releasing software faster and in smaller interchangeable pieces and then letting online user feedback guide improvements." OK, sure Vista took too long, but are they really claiming large customers would prefer Windows to emerge in dribs and drabs (if that even made technical sense), or have a single release every few years (actually later in the article it agrees that the current system makes more sense). This example doesn't help much (quoting Ozzie): "Wouldn't it be great if you could hit F5 when you finished preparing a presentation and have your PC automatically upload the file to a Web address?" Yes, that would be kind of cool...so why not talk to the Office team, they can probably scrounge up an intern to implement that.

The article later explains "The vision is simple: enable users to have access to their data and applications wherever they are and regardless of what device they're using". OK, this possibly hints that the point of Windows Live is to have an OS for the desktop and also for the cellphone and TV -- except Microsoft already has that, don't we? And the article goes on talking about ad-supported software, subscription software, data stored in the cloud, blah blah blah, but it's all application stuff. Sure, as I said, Microsoft needs to make a platform for Internet development, but that doesn't fundamentally change how Windows should work, any more than the arrival of the Internet did. You want big server farms? Fine, set them up and on them you'll run...Windows, I assume. You want an Installable File System for your CloudFS? Great, but what do the other 69,990 people work on? Have the server running per-client virtual machines, remoted to a browser-based Terminal Services client--doesn't that work right now (actually I don't know if it does, but it seems like it should)? Unless we're talking about truly zany, impossible-to-debug ideas like spreading the threads of a process across multiple machines (hardly seems worth it when the future is many-multi-core and people are quaking about getting it right on one box).

The Wired article is also interesting from a navel-gazing perspective because it's full of statements like the following:

  • "Half the staff - those who joined the ranks in the early '90s - are worth millions of dollars from stock options."
  • "Imagine being an airline mechanic. You're accustomed to waiting for planes to roll into the hangar to be fixed. One day, someone tells you that from now on, you're going to have to maintain the planes while they're in the air. That's what Microsoft is facing."
  • "In May, Microsoft changed its review process...It used to be that you were graded on a curve within your group; For every top performer there had to be a subpar one."
  • "Now each employee is graded on individual goals...These goals are reset as often as every month to encourage engineers to ship lots of little software modules and revise them online rather than spend an entire year on one huge release."
  • "The company has also...tripled the number of stock options an employee can receive as an annual bonus."
  • "In the Office division, for example, compensation is now directly linked to title so employees know roughly where every colleague stands in the ecosystem."
  • "Gtaes himself is trying to be more open. This year he made available to the whole company electronic copies of the papers he takes on his annual Thnk Week vacation. In the past, what Gates perused during his celebrated week of rumination was a closely held secret."
These are all sort of half-true--they have a fact embedded in them, but then they leap off on a flight of fancy in connecting Point A with Point B. The results should induce raised eyebrows in any Microsoft employee. No, I'm not going to explain which half of each sentence is correct; but stuff like this makes me realize that I should approach things I read about other companies with much more skepticism than I do.

Presumably, or maybe I should say hopefully, this will all become clear, but for now I remained confused in Redmond.

Posted by AdamBa at 09:22 PM | Comments (10) | TrackBack

September 23, 2006

Management Idea #3: Surfacing Ideas

The executive review is a typical scenario at Microsoft. A team wants approval for their plan, so they troop into a conference room and present to their local bigwig. The LB peppers them with questions about what they are doing, then says yea or nay.

The problem with this is that the discussion often boils down to whether the team is planning to do it the way the executive would have done it. That's fine if you think the executive is smarter than the rest of the team combined. But if I were such an executive, I would assume that my brain power applied over a one hour review was less than the collective brainpower of my team applied over weeks or months. Thus, I would not be so interested in the decision as I would be in the process behind the decision. How were ideas collected, which ones were seriously considered, and what were the factors driving the final decision.

More generally, the skill I would want in my team was something I'll call "idea surfacing". You can encapsulate it in the following scenario: "Imagine that there was a problem your team had to solve. One person on the team had a brilliant idea that would solve the problem. Nine other people on the team have ideas they thought were brilliant, but actually weren't. Do you have a process in place to ensure that the one brilliant idea will be discovered, that you won't be distracted by the other nine ideas, that you will act on the brilliant idea, and given that, how long will this process take?"

If I think people can answer that question well, then I won't feel the need to question their decisions too deeply. And if I don't think they can answer that question well, then my extra input in a review isn't going to help much.

Posted by AdamBa at 09:42 PM | Comments (3) | TrackBack

September 22, 2006

Management Idea #2: Two Degrees of Separation

Continuing my midnight musings on management, here is the second idea: is it reasonable to expect that every employee at Microsoft (or any company that size) could be two degrees of separation from the CEO, in terms of having a meaningful discussion about the future of the company--and if so, with what frequency?

Meaning, everybody has a meaningful conversation about the future with somebody who in turn has a meaningful conversation about the future with Steve Ballmer. In this way, Steve Ballmer gets a view of every employee's opinion, with only one level of indirection in between. Certainly today a lot of people talk to Steve about this--let's call those people the S Team. And lots of people talk about this kind of thing to someone up their management chain. But I am certain that for many people down the org chart there is a gap, where the highest-ranking person they talk to is not a member of the S Team.

The square root of 70,000 is about 265. Thus, if the company was grouped perfectly into 265 people who talked to Steve, and each of those 265 had 265 they were assigned to listen to, then you could cover everybody. The meetings would not have to be long, maybe 10 minutes (I'd rather have it be, say, six individual meetings in an hour rather than one hour-long group meeting with six people). That's enough time to discuss the thing that makes you the most excited, the thing that worries you the most, and one idea for making Microsoft better. So each of the top 265 would have to devote about 45 hours to this. In how short a time is it feasible for someone to devote 45 hours to this? Arguably it would be one of their higher-priority tasks, so I would say spending 2 hours a week isn't too much. Pad it out a bit and you arrive at the calculation that the chosen 265 could each meet with their assigned 265 once every 6 months. Then the top 265 would have to meet with Steve Ballmer every 6 months, but I'm not as concerned about that (for Steve, this would certainly be a high priority).

Naturally, things won't line up that precisely. According to Microsoft PressPass, we have 126 vice presidents right now. If you knock off the more senior VPs who have VPs reporting to them, at the edge of the VP cloud you probably have 100 people who have non-VPs reporting to them. If they each have 5 executives at the General Manager/Directory level working for them, that's 500 people. Looking at it another way, according to rumors on Mini-Microsoft, there are 800-900 partners. Since not all partners are high-level managers, you also get to about 500 people who are in the "just below a VP" level of management.

Let's take those 500 people and put them on the S Team. Meanwhile, each of the 500 has to meet with everybody who reports to them. Now, that averages out to 140 each. BUT, almost everyone I can think of at the General Manager or Director level has more than 140 people reporting to them. Not necessarily a lot more, but enough to make it clear that the distribution is not even (not that I expected it to be). So let's say some of the 500 can have up to 500 people working for them. In our theoretical slicing of the company into 265 265s, we decided that six months was enough time to meet everyone; now with some people having to meet with 500 people (not to mention Steve Ballmer having to meet with the top 500) we should extend the cycle time out to a full year.

So there you have it. Once per year, it should be possible for everybody at Microsoft to have a substantive conversation with somebody about the future of Microsoft, and for that person to synthesize all those conversations and have a substantive conversation with Steve Ballmer about the future of Microsoft. And wouldn't that be a good thing?

Posted by AdamBa at 06:52 PM | Comments (2) | TrackBack

September 21, 2006

Management Idea #1: Mr. Shake-Hands Man

For some reason when I was trying to to go sleep in my room at the Bellagio in Las Vegas, I started thinking about ideas for management. Since I have never (yet) had an idea at 2 a.m. that I didn't think was worth blogging out, I'll lay them out for you.

The first one is about a way to figure out what your employees think about their jobs ("employees" in this case meaning everybody who works under you--so for Steve Ballmer this would mean all of Microsoft, but it would apply to any smaller organization also). You could ask you direct managers, but they will probably give you fluffy feel-good answers, even if they knew otherwise, which they probably wouldn't. You could commission an internal anonymous poll, as Microsoft does, but your results are likely biased by who bothers responding.

So, here is my idea. All you do is shake hands and introduce yourself to every employee. Break it into chunks if your arm gets tired, but basically just line 'em up and go for it. Have everybody say their name and shake your hand, and see what vibe you pick up from them.

My theory is this will work because employees will see you, as someone up their management chain, as the personification of the organization they work in. If they like their job they will credit you for that, and if they don't they will blame you for not fixing the problem. Thus, if they are happy and enthusiastic about shaking your hand it means they like their job, and if they don't seem too thrilled about it, they are unhappy. (We had a little taste of this at the Microsoft Company Meeting today. At one point Steve Ballmer ran into the crowd and started high-fiving anybody would offered their hand for slapping. I have no doubt that all the people who did so are people who like their jobs--but not everybody wanted to high-five SteveB.)

This theory is also based on the interviewing "Blink" notion, that you make a decision about a candidate in about ten seconds just from the handshake and introduction. In the time it takes to introduce yourself to someone you should be able to make a decision about whether they really like you. And I doubt people would have the notion or the ability to disguise their true feelings. So run down the line and at the end of it, if you feel happy, then your employees are probably happy.

Posted by AdamBa at 09:23 PM | Comments (4) | TrackBack

September 20, 2006

What Does "Gank" Mean?

Remember back when ten @*$%ing levels was hard?
Now it's ten 60s ganking noobs in the yard.

- From "Wow" by Futuristic Sex Robotz

So vot eez zees "ganking" of which they speak? Let's head over to the Urban Dictionary and look it up. The UD has a different approach to multiple opinions than Wikipedia; rather than have the last revision be presented as the whole truth, it allows multiple definitions to be given, and people can vote "thumbs up" or "thumbs down" on them.

Click here to visit Windows MarketplaceIn the case of ganking there are 5 definitions. It's obviously a MMORPG term, but two of the definitions say it applies to any game, while the other three, as you might expect from the title of the FSR song I quote above, say it is a term specific to World of Warcraft (the game that Microsoft is hyping on Windows Marketplace--insert obligatory banner ad). The one rated +57-8 defines it as either a group of players ganging up on one player, or a high-level player attacking a powerless one. The next definition, +2-5, defines it as just the group gang-up, and mentions that rekilling someone right after they respawn is not ganking, it's "spawn rape". Definition #3, +11-30, claims that the group attack is a misuse of ganking and that the word for that is "ganging". The next definition, +11-44, states that it's any "unfair" kill. And the final definition, +4-43, defines it as killing someone after a respawn, which is precisely what definition #3 claimed was NOT ganking.

No surprise, given the Urban Dictionary's policy of allowing multiple definitions of a single word, you also see separate entries for related words. So there are 66 definitions for "gank", 11 for "ganked", 5 for "ganker", and a single solitary one for "gankage" (which therefore ties it with "gank artist", "gank bus", "gank busted", "gank move", "gankaholic", and the mellifluous "gankashanka", which is defined as "a random word i just made up").

If you wade through all the other claimed meanings of "gank", and discount the ones not related to WoW (such as stealing or some kind of drug), you get roughly ten referring to the gang nature of the attack, and thirteen referring to the unfair single attack (plus two, including the first one above, that say it is either). The "gang" proponents state that it is an abbreviation of "gang kill", which makes some sense, but their definition is in the minority.

The Wikipedia only allows a single entry at a given time, so what do we see if we look up gank? Well, basically you get a Wikipedia entry that isn't internally consistent, which I guess is the nature of the beast. The entry mentions several uses for the word; the MMORPG one starts out by confidently advancing the "gang kill" theory and the associated "gang" nature of ganking, but then goes on to state that it is now used in the "unfair" meaning.

I figured something like this would cause a Wiki editing battle. Sure enough, if you look through the recent history there was an attempt to say that ganking was killing someone when they were away from the keyboard, but that was quickly scotched. Before that, someone tried to claim that the "unfair" usage was actually a misuse of the term (this edit got inserted and booted a couple of times). And earlier there was a "debate" (in the Wikipedia sense, meaning somebody added something and someone else yanked it out) about whether the unfair gank was specifically an attack from the back.

And so it goes. The Internet, as they say, is not without its charms.

Posted by AdamBa at 08:16 PM | Comments (1) | TrackBack

September 14, 2006

Bye Bye NTDEV?

The Microsoft corporate network, as you might expect, is set up with a series of Windows domains. Most people in Redmond are in a domain called REDMOND, and then there are domains for other sites.

But, there are also some domains that exist for historical reasons. For example, my account is in a domain called NTDEV. I don't know the exact story but NTDEV is not an "official" domain managed by Microsoft IT; I believe it is managed by the NT (errr I mean Windows) team itself for test purposes. And there are other domains like this floating around.

It's not usually a big problem that I'm in NTDEV. The domains all trust each other so my single logon works. Occasionally when someone wants to give me permission somewhere they have to take two cracks at it because they assume I am in REDMOND.

But recently, a proposed change to a site that we use in Engineering Excellence would have meant that my NTDEV account wouldn't work and I would need to move to REDMOND.

At one level it's just a hassle; all the privileges I had been granted with my NTDEV account would need to be re-granted to my REDMOND account. But it also affected me at a deeper level. The reason I'm in NTDEV was because I was working on NT way back in the early 1990s when the domains were first set up, and there was no official IT management of domains, so the NT team had to manage its own domain. So being in NTDEV is a badge of old-fogeyness that I value (it could well be that new people who join Windows also wind up in NTDEV, but I got it way back when). So moving to REDMOND wouldn't just be a pain, it would be letting go of...something.

There's actually a related historical artifact that I'm clinging to. Since there are two people at Microsoft named Adam Barr, my name in the address book is decorated so it looks like "Adam Barr (WIN NT)". This extra bit was added in the late 1990s when the second AB showed up and I was working on NT (and it was still called NT). When I came back in 2003 they revived my old account and it still had the same name. I was working in Windows Server, not the core OS division, and it wasn't NT any more, but I still felt I had a reasonable excuse for keeping the "(WIN NT)" tag, which like the NTDEV domain I viewed as a badge of honor. Now I have moved to Engineering Excellence and the tag is even more obsolete, but I haven't changed it yet. Partly it's because if I changed it to "(EE)" or something it would confuse the people who were used to "(WIN NT)", but partly it's because I like the historical association--even if I haven't written production code for Windows in 6+ years.

On the domain change, I was tempted to beg the authors of the new site that was forcing the switch, explaining how I just couldn't leave NTDEV (possibly using the words "wither", "die", and "hothouse flower"). Luckily, it turns out that I can request a second account in REDMOND and use it only for connecting to this one site. I'll need to remember two accounts and two passwords, but at least I'll still be in NTDEV.

Posted by AdamBa at 08:32 AM | Comments (1) | TrackBack

September 10, 2006

Microsoft High School

A story has been floating around about how Microsoft designed a high school in Philadelphia (also discussed on Slashdot). Is this another case of ISTYS at work? It turns out that Philadelphia approached Microsoft, and there are some interesting aspects of what they (we?) are doing.

First of all you have the obligatory "I read a lot of science fiction and now I'm designing a high school" touches. From the CNN article: "There's no library, but an 'interactive learning center' where information is all digital and a 'multimedia specialist' will help out students." I'm constantly amazed that anybody who has ever actually watched a child read a book--body twisted into some pretel-like arrangement, head cocked at an angle that would induce vertigo in an adult, face a mask of concentration--can really believe that an interactive learning center is better than a library. But, whatever. You've got that nonsense, the laptops for every student, the intelligent whiteboards...zzzzzz clunk, gimme an E-27 without the motor...this is the same stuff Bill Gates has been dreaming about since his 1990 "Information at Your Fingertips" Comdex keynote, and probably before. It may be pointless or even harmful, but at least you have a $63 million high school that people are paying attention to that serves a primarily low-income student body.

What I found interesting, however, was this tidbit from the article: "The high school will use an 'education competency wheel,' patterned after a set of desirable traits Microsoft encourages among its employees. Officials, teachers and students are to be trained in dozens of skills, including organizing and planning, negotiating, dealing with ambiguity and managing relationships." Microsoft does use a set of competencies to guide interviewing and career development. I can't find them listed in an official spot but they do pop up on the Web; for example look at these job listings from Microsoft Turkey and search for "Microsoft Competencies", or here's an article from the International Trademark Association (whose site is iffy so I used the Google cache version) about interviewing that mentions the notion of core competencies that says "The existence of these core competencies is not necessarily kept a secret from applicants before or during the interview, but specific competency documentation is not shared with candidates ahead of time." It's actually not a fixed for everyone, it varies between disciplines (engineering vs. marketing etc). But we do have a notion of competencies and it's not just for interviewing, they are also used for monitoring your growth and deciding what new opportunities to pursue.

So it's interesting to think of a high school taking that approach--rather than think about teaching kids such-and-such specific skill, think about possible core competencies. And if you take it a step further, as Microsoft does, actually evaluate where people sit with each competency and use that to customize how they are trained.

The other thing that Microsoft tries to do in our training is do proper instructional design. You may scoff at this but there is some theory and experience out there about how to best transfer knowledge to students. The quick summary is: gain attention, present, reinforce, rinse/lather/repeat. It can sometimes come across as silly, as when we take our anti-harrassment training and each bit of information is followed up with an excruciatingly obvious question ("During a meeting, Joe whips out his penis and lassos Mary's coffee cup with it. Is this a) acceptable, b) not good, c) it depends?"). BUT it really does stand out in contrast to the way people would probably prepare training with no guidance, which is to just blast out the facts in order and then ask for questions at the end. I'm working on developing a new course for Engineering Excellence and after reading up on instructional design I find myself almost alternating one-for-one between a slide that presents information and a slide that has a quiz/discussion/story/etc to reinforce the previous slide.

Of course this involves teaching to adults, with material that they typically want to learn. The articles I have seen don't say if the new high school is going that far in applying corporate wisdom to the high school experience, and I don't know how applicable that wisdom is. But if they do try it, I think it would be different from the way high schools normally approach teaching, and I would be interested to see how it goes.

Posted by AdamBa at 09:58 PM | Comments (3) | TrackBack

September 08, 2006

The One Where I Got a Bad Review

Since it is review season and this has led to the annual complaint-fest over at Mini-Microsoft, I was reminded of the one time at Microsoft I received a bad review (NOTE: This happened during my first tenure at Microsoft; since I wrote a whole book about that I figure it's fair game to discuss now, even though I work there again. I wouldn't discuss anything like this about my current stint).

The time was August 1999 and in the six months leading up to the summer review, I had done the following:

  • Filled in for my boss while he was on leave for 2 months.
  • Represented our team at an IETF meeting in Minneapolis.
  • Followed a plan to boost my work output by working until midnight every Tuesday, leaving my 2 kids and (pregnant) wife alone for the evening.
  • Done my usual decent job of writing code (as far as I could tell).

I know, I'm wonderful aren't I...but nonetheless I was quite surprised to receive a 3.0. And quite annoyed also. Now, I think Microsoft has changed for the better since then, and what happened to me would not happen now:

  • Microsoft very strongly pushes employees to have regular one-on-ones with their managers and include discussions about their career plans. I was operating in the old mode where I did what I felt was right for the product, without worrying too much about personal growth and reviews.
  • Microsoft very strongly emphasizes that managers need to keep employees aware of their performance. So if I had been trending to a 3.0, I would have been aware of it and been given concrete steps to avoid it, and if I had still not improved I would not have been surprised.
  • Microsoft has made their review process more structured, where you are evaluated based on your progress against commitments, rather than a vaguely-defined overall score. Thus, even if I had done some particular thing badly the things I did well couldn't have been brushed aside.
  • And of course, Microsoft no longer has a curve for review scores, which I have to assume was the reason I got the 3.0. I was doing the same kind of work as in all other review periods, when I got a steady stream of 3.5 and 4.0 scores; this must just have been the time that my number came up, and it was bad luck that it also happened to be the time that I felt I had actually done a better job than normal.

Back then, I dealt with it and went back to doing my job.

And by the time the next summer's review period rolled around, I had left Microsoft.

Posted by AdamBa at 09:44 PM | Comments (3) | TrackBack

September 07, 2006

Windows Marketplace is Open

Click here to visit Windows Marketplace Microsoft just launched Windows Marketplace, which is "a safe and trusted environment to discover, learn, try, download and buy from the largest collection of quality Windows software, devices and hardware" (quoth the email from Will Poole). Basically this is a place to download all kinds of software, as well as purchase packaged software and hardware. Best of all, a lot of the downloads are free. And you can browse for only the free stuff. For example I found this excellent Sponge Bob Screen Toy there. It features Spongebob, Patrick, and Squidward wandering around your screen and interacting with the mouse and each other. I can imagine that our 4-year-old could spend hours with this thing.

As part of promoting this, Microsoft is running a site called Enter Azeroth which features a scavenger hunt based on the Microsoft campus. You go to different locations to find answers to questions, then enter them on the website. The free ice cream treats that were handed out on campus last week were also part of this promotion ("Azeroth" ties into this because per the the Oracle of St. Petersburg it is a world in World of Warcraft, which is an MMORPG that is being hyped on the Windows Marketplace site).

As further inducement for employees to pimp the site, if we link to it we get a free t-shirt. Which is the explanation for our green rectangular friend to my left. Did somebody say free? Did somebody say t-shirt? Windows Windows Windows! Marketplace Marketplace Marketplace! T-shirt t-shirt t-shirt!

Posted by AdamBa at 02:17 PM | Comments (1) | TrackBack

September 04, 2006

Mini-Microsoft in Wikipedia

Something strange going on; there are over 6.5 billion people in the world, and up until now not a single one of them has created a Wikipedia page for Mini-Microsoft.

Well, I don't know about the other 6.499 billion slackers, but I have personally taken it upon myself to remedy the situation. Mini now has his own li'l Wikipedia page. I wrote up some quick content but in the spirit of Wikipedia, everyone should now pile on and start fleshing it out. I hope there will be someone who actually wades through his old posts and starts filling in more details in the "History" section (main topics covered and when, graph of comments by month, etc); and I expect the "Effect on Microsoft" section to generate some Wiki-storms; but for me the true Arkenstone will be the evolution of the "Anonymity" section, where tidbits from his posts can be teased out and relentlessly micro-analyzed.

I'm hoping this will be a win-win-win; Mini gets the official Internet stamp of importantness, Wikipedia gains a bunch of new registered voters (who can now spread out and clean up the entries on pinot noir, unicycling, and whatnot), and Mini-hunters get a central place to pool their intelligence.

And before someone asks: NO, this is not a vanity page.

Posted by AdamBa at 10:35 PM | Comments (1) | TrackBack