Archive for the ‘General’ category

Getting back to work

August 3rd, 2010

I’m back working again – or I guess I should say je suis de retour. I took a few weeks off in southwestern France, one thing led to another, and I decided to stay a bit longer than I originally planned. I’m working remotely for a week or two before returning stateside. It’s nice to have a job that’s flexible enough to allow me to do this – and nicer to work on a product that enables this sort of thing to work seamlessly. Yesterday, for example, a colleague sent me an IM to see if I was free, a moment later were talking over the phone, and seconds later he was sharing his desktop while we discussed a document open on his computer – and all of this within the super-cool application my team is working on. I’m working from about 4:30 in the afternoon until 2:00am local time (with a dinner break in there with my family). That corresponds roughly with the workday back in Redmond (note, that I don’t have to line up my day with Redmond, it actually works out a  bit better for me to work the late hours).

Yesterday was my first day back, and I was able to get my inbox back to zero messages and make a pretty good dent in my to do list. I expect to get the backlog under control today and start making forward progress by the end of the day today or by tomorrow for sure.

I was able to get a chunk of reading done last week. I re-read Seth Godin’s Tribes and Pat Lencioni’s Five temptations of a CEO. I also finally finished Robert Austin’s book on measuring performance in organizations (additional comments on all of these in future blog posts). I’ve also done a lot more thinking about the state of the state of software testing and expect to discuss my thoughts openly in the coming weeks.

Some random vacation stories follow…

After a 4 hour flight to Chicago, followed by another 8+ hours to Paris, we had 24 hours to kill before taking a (very fast) train to Toulouse. My wife and I have very different approaches to dealing with jet lag. My approach is to get out in the daylight and get some exercise, and she can somehow sleep it off and adjust almost as quickly. The six-year old was up for an adventure, so off we went while the girls slept. We tried the Louvre first, but Cole just couldn’t handle the line. He did, however, suggest walking to the Eiffel Tower. I like to walk, so we went for it. Eventually, we made it, and the little guy decided we should hike the stairs. I tried to talk him out of hit, but he wouldn’t have anything to do with it. The line for the elevator was at least an hour long, but within 5-10 minutes, we were climbing stairs. I figured he’d get tired, and we could turn around. Nope – he made it to the first level without a break. After a quick pain au chocolat, he was ready to climb to the second level. He was completely ready to climb to the top, but the line was at least an hour long and he was getting tired, so we headed down. We agreed that a taxi was probably the best way to return to our hotel, and we arrived back around 5:00pm. We both took a short nap then woke up the ladies to head back out on the town. We walked over to Notre Dame, saw the Louvre again (the outside), and introduced the children to the joy of chocolate crepes.The next morning I grabbed the kids as soon as we got up and headed back to the Louvre (travel tip – there’s never a line in the morning). The kids and I had a whirlwind tour (pretty much walked straight to the Italian painters and showed them the Mona Lisa), then browsed a bit more before heading to the train station.

Last week we visited Carcassonne (kids loved it). It was a little “touristy”, but not nearly as much as I expected it to be . We had a great time yesterday at the Labyrinthe de Merville. The “labyrinth” is a huge hedge maze with a twist. Along the path, there are clues that you need to read – the clues help you solve puzzles, and you use the answers to the puzzles to unlock the big gates in your way (by entering the answer on the keypad). It was fun for me because I love puzzles, and the kids couldn’t get enough of it. We did pretty well, but got stuck a few times when my French failed me (forgot our dictionary at our house in Toulouse– oops). If you’re ever near Toulouse (or Bordeaux for that matter), I’d suggest checking this place out. We may even go back again before we head home.

There’s lot’s more, but nothing terribly interesting – if you want more thoughts, comment below or bug me on twitter.

More on careers

July 8th, 2010

I left out a couple of obvious things in my career post yesterday and thought I’d write them down before I forgot.

Managers

Yesterday, I wrote about the non-management career path for testers at MS. There is, indeed, a career path for managers – I just tend to talk about the non-management career path because that’s where I’ve tried to keep myself. We have two titles for people managers at Microsoft. We call managers who manage a team of non-managers Leads, and call managers who manage leads Managers. In other words, a Test Lead manages testers, and a Test Manager manages test leads. Got it?

Generally, Test Leads are in the Senior band, although it’s somewhat common to have leads in the upper ranks of the SDET IIs. The level of knowledge (and more importantly, amount of different testing experiences) testers have by the time they get to these levels gives them the confidence, ability, and credibility to be successful. Leads are expected to get some “real” work done in addition to managing their team. Test Managers are typically Principal or higher (although, as with Test Leads, may be in the upper bounds of Senior).

Something else to note is that the Lead role does not necessarily need to grow to the Manager role. If you are a lead, but never want to manage a large team of leads, you can grow to Principal+ levels as a lead. Or, you can be a lead for a while, bounce back to being an individual contributor, and bounce back to being a lead if you desire (and if the opportunities and business needs are there).

Another take on career stages

I recently re-read Spolsky’s Smart and Gets Things Done. That (the title, and the description from the book) is pretty much what SDETs and most of the SDET2s do. Senior SDETs (and SDET2s who are on their way) move to a stage of Smart, and Makes Stuff Happen. It’s one thing to know how to do stuff really well, but leaders are able to make stuff happen through influence (and the help and support of others). We expect Principal’s (and those about to be Principal) to think more about How Stuff Happens. Strategy, decision making and and solid systems thinking all feed into the “how”. Of course, you still need to dive into making stuff happen and getting things done once in a while, but setting the right direction, for the right reasons, is critical.

Why I Write and Speak

June 13th, 2010

I’m planning to give an internal presentation this week on what I do. I’ve been in my new job for three months, and although I’m still learning, I have enough of a routine that I’d like to share it with a few peers across the company to get feedback and ideas. Most of what I do is my job (that’s probably important, right?). I also still do a lot of cross company stuff (that’s probably pretty important too!).

With my remaining hours, I do “other stuff about testing” (I’ve been thinking about calling this “Project OSAT”, but it’s probably better to just call it “other stuff”). This includes writing books, contributing to other books, writing articles and blog posts, interacting on twitter, and participating in the overall testing community as much as I can find time for.

Sometimes, colleagues ask why I write, or why I speak at conferences. It’s not fame, and it’s certainly not for the money. It’s for ONE reason, and probably because of my lack of sleep due to 4:30am world cup matches, I’m going to share my motivation with everyone.

I write and speak because I’m lazy and cheap.

I suppose I should explain…

How We Test Software At Microsoft was written for one main reason. I talk to a LOT of people and companies about testing – many want to know Microsoft’s general approach to testing. I gave many of these companies the same answers. Over, and over and over again. Finally, I decided (with the help of a few colleagues) to write it all down and sell it for 25 bucks a pop (street price). There was just no way I could keep my sanity and continue to tell people about what testers do at Microsoft. Most of the articles and blog posts I’ve written have been for the same reason – I’m too lazy to give the same answer to multiple people, so when I start hearing the same question too many times, I write it down somewhere (NOTE: this is often also a good heuristic for automation).

Let’s not forget cheap. I hate paying to attend conferences (even if it’s technically my employer’s money). I do like to meet with other testers and talk shop (aka Project OSAT), but if I can get into the conference for free, I’m all over it (sometimes I even manage to get flights or more covered). So I submit proposals to a few conferences a year, and I typically get asked to speak at a few more. I do try to do a good job when I’m there (despite my laziness, I have a high bar for personal quality), but I go to conferences mostly because I get in for free.

Just because I’m lazy and cheap doesn’t mean I don’t care. I love writing, and I love speaking about testing and sharing what I’ve learned. I have worked, and continue to work extremely hard at both of these endeavors (see the note about my high bar for personal quality above). In fact, I’ve never taken money for any writing or speaking (some of probably think this is dumb, but it’s true). Way back when I first started writing for Better Software, I did this because not getting paid was easier than trying to decipher the company moonlighting policy. These days, I’ve found that I actually can get paid for most of this stuff, but I still don’t bother with it. When I consider how much I enjoy writing and speaking, doing it for free seems like the right thing to do (as long as you give me something free too – I’m still cheap).

This week’s conference

June 9th, 2010

Every year, Microsoft’s Engineering Excellence group holds an internal conference – five days of talks, panels, booths and receptions (in other words, it’s just like any other conference, except only Microsoftees are invited). This is the first year since 2004 where I’ve been at the conference and not in the EE group. You’d think that it would be a new experience, but somehow I managed to get myself signed up to present in more sessions than I’ve ever been involved in at this event.

But first, on Monday morning, as the opening keynotes were just ending, I was talking to a group of brand new Microsoft employees. I speak at Microsoft’s new employee orientation fairly often, and it’s something I really enjoy. In the afternoon, I was involved in two sessions. The first was called something like “what testers at MS should know about testing outside of MS”. I think a lot of testers in the industry think that all there is to know about testing and software development exists in their itty bitty tiny corner of the world. Because they never look outside of their little corner, they never realize the truth (if you’re reading this, this probably isn’t referring to you). A colleague of mine kicked off the discussion, and I handled the middle section on communities. I talked about many of the forum and discussion sites currently available, including a shout-out to weekend testers. The session closed with a discussion of non-MS testing tools, specifically in the open-source area.

The second talk was a panel discussion on “The Reality of Careers in Test”. I thought the talk had a good setup, when the “baby” of the panel announced that he had been testing for only 11 years (the range went to 24 years). We had just worked the q&a into a groove when it was time to wrap up – it would have been nice to have a longer session, but it went well.

I hosted a two hour session on Tuesday. We took a deep look at one class of tools used by testers at Microsoft and had panels of owners discuss features and answer questions. One sort of cool thing we tried was to display a feed of questions and comments from (an internal twitter-like tool) during the discussion section. I thought it worked out pretty well and will have to think about how I can do something similar at an external conference someday.

In a session today, I hosted a sixty minute roundtable discussion on test careers. The discussions went well (from my point of view at least), and it was fun. Tomorrow I’m invited to a “special leadership” session (no presenting, just listening). I’m going to try to attend the whole session, but I’m probably going to have to break to spend some time on my “day job”.

I’d love to say that next year I won’t give any talks, but I’m pretty sure that’s not going to happen. I like to take what I know, combine it with my experiences, and try to help people learn something new or get better at what they’re already doing, so I guess there’s no avoiding it for me.

But that’s ok!.

Time Flies

June 6th, 2010

I wrote a bit of a career retrospective just a few months before I joined the Communicator team at Microsoft (the series is captured in these posts: (part 1 is here, part 2 is here, part 3 is here, part 4 is here, and part 5 is here).

June 6, 1995 – exactly 15 years ago today – was my very first day at Microsoft. No need to retrospect again, but wow – what a variety of experiences I’ve had. I never thought I’d work at Microsoft this long, but I have no regrets.

Here are some non-traditional stats I thought I’d share.

  • Number of offices:15
  • Number of buildings I’ve worked in: 7 (Buildings 4, 10, 27, 118, 21, “Westpark”, and 30)
  • Most number of offices in one building: 5 (building 27)
  • Number of managers: 12 (including one manager for nearly 6 years)
    • Note: two of those managers lasted only a week
  • Number of projects I’ve worked on that were cancelled by BillG: 1 (in 1999 or so, I was part of a small virtual team working on some digitial tv stuff)
  • Number of programming and script languages I’ve learned 9 (in mostly chronological order: Visual Test, C, C++, Perl, VBScript, x86 Assembly, C#, Python (I’ve used all of these for testing except Python)
  • Number of shipping products I’ve worked on: 11 (not bad, considering that I spent 5 years in EE not working on products)

Update:

  • Number of employees at MS when I started: ~7500 (compared with ~90k today)
  • Number of those 7500 still at MS: ~4500
  • Number of those 4500 with the same start date as mine: 30

There’s probably more, but that’s all that comes to the top of my mind. Not bad for only 15 years.

It must be simple

May 31st, 2010

Many of you know that I’m a big fan of the five orders of ignorance (link is to my interpretation – the author’s original paper is here). I especially like the concept of “unknown unknowns” those bits of knowledge that are critical – despite the fact that we didn’t recognize those bits until they fell onto our laps.

I’ve been pondering over an interesting fuzzy line between Armour’s second level of ignorance (you know you don’t know something), and his third level of ignorance (you don’t know you don’t know). I’ve noticed that often, when you know nothing about a subject, you perceive it as simple. Then, as you learn more, it seems impossibly difficult; and then, as you master it, it become’s easier to manage (but probably never as simple as you imagined in the first place). The second and third levels of ignorance seem to play with each other as you try to move knowledge into the first level of ignorance (you know what you know)

An example would probably help here. Many years ago, I knew nothing about recording music, but I wanted to be able to record my own stuff, overdub, mix, edit, etc. Since I had never done it before, I was convinced it was easy, and that anyone with a brain and a halfway working set of ears should be able to do it.Within a few weeks of attempting to pick up this “easy task”, I realized it was extremely complicated and required a lot of meticulous work (this was pre-digital, so within a few weeks I was fixing timing issues with a razor blade). I didn’t think I’d ever get a handle on it, but eventually I figured enough stuff out for my own purposes, and to this day I still uncover areas of complexity I never imagined.

There’s another great example of this from my list of favorite movies that came out when I was 19 – Better off Dead. There’s a scene where John Cusack’s character is on top of a mountain ready to ski down and his friend gives him this advice:

Go that way, really fast. If something gets in your way, turn

That’s exactly the “expert” advice someone who doesn’t know the subject would give. Steve Martin used to tell a similar joke about skiing – I don’t remember it exactly, but it went something like this:

Skiing – you go to the top of a mountain with slippery things on each foot and go down. Try not to – that would be a sport!

Perhaps a better example for testers is Jerry Weinberg’s Perfect Software book. To me, it’s not so much a testing book, but it’s a wonderful book to give to people who don’t know anything about testing – mainly because most people who don’t know about testing often think it’s a simple activity that has something to do with banging on keys or pushing buttons. Once you learn a bit about software testing, you of course realize that it’s far more complex than you ever could imagine. Eventually (if you’re lucky), you fall in love with the challenge and never look back.

I see at least a few examples of this phenomenon every day. I have lost track of the times I’ve heard people critiquing the efforts to plug the oil leak in the Gulf and offering their own advice. However, the fact that they haven’t been able to solve it, and have tried to fix it several ways must mean it’s probably a more complex problem than most of us understand (or that the efforts are run by aliens from the planet Stupid).

I suppose the moral of all this is that nothing is as simple as it appears – especially with knowledge acquisition. Keep it in mind the next time you think you know something …

Are you a game changer?

May 18th, 2010

I took an internal training course last week where we heard lectures from a bunch of MS execs (I don’t do it justice – it was far more interesting than I anticipated and something I’d do again in a heartbeat).

Anyway, one of the lecturers was talking about software markets and showed a diagram that looked something like this:

Picture1The basic concept was that there’s a base set of functionality or features that a product has to have to compete, as well as areas where it needs to be better than (or at least as good as) competitors. “Hot” products also have something unique – a “game changer” that helps drive adoption.

With the iPhone for example, the foundation was that it had to make phone calls and play music.The touch controls, the camera and photo viewing and some of the other similar features made the iPhone competitive.

The apps, the appstore, and the “there’s an app for that” wildness is huge – I know dozens of people who use an iPhone only for the apps. That is a game changer.

 

Of course, this is a lot like Kano – same idea, different names.

imageKano has “must-haves” – the features you, well – must have. The “one-dimensional” properties in Kano are kind of like the differentiators in the chart above, and the “attractive” needs in Kano are sort of the game changers.

The thing I like about Kano is the way you plot the data. For each feature you’re considering, you ask customers (a focus group works great for this) the functional and dysfunctional form of their thoughts. For example, “How would you think of shimmery blue menus”, and “How would you feel if we didn’t have shimmery blue menus”. Their responses help you plot out where on the chart the particular feature lives.

Then it’s up to the decision makers to use the data and come up with the right mix of features that will satisfy customer needs – and give them enough “oomph” that they’ll want to give you money.

 

That’s all sort of interesting (or not), but I sat down here to write about something else. I’ve known about Kano for years, but when I saw the triangle version last week I had an insight.

The triangle also describes your career

If you want to be successful, at the very least you have to be able to do your job – that’s the foundation. Lot’s of people do just this and get by just fine. The next level (differentiation) is where you get good at your job – possibly even excel. There are a lot of people here too – these are your typical “great” performers. In many companies, these are the cream of the crop – and they should be.

Then, you have the game changers. There aren’t many of these, but they kick ass. They always have …something – something that only they bring to the table. These are the people that innovate and come up with the ideas that the differentiators use to get ahead (building, of course, on their execution and foundation of knowledge). Many people want to be game changers – some even proclaim they are game changers, but this level is reserved for people who earn it through great ideas and insanely hard work.

So how about you – do you want to be a game changer?

The truth about meetings

March 11th, 2010

I’ve been talking about meetings recently at work (I’m still giddy that have far fewer meetings to attend these days). I’ve had discussions about meetings for at least a decade, and they’re all about the same.People grumble about ineffective meetings, while others grumble about too many meetings. Some grumble about who should be in the meeting, while others grumble about the meeting they should have been invited to.

imageHere’s the deal (according to me at least). Meetings are necessary and a good use of time (as long as you don’t screw them up). Try as you might, you can’t get a team aligned as well or as efficiently over email. Some problems (and solutions) won’t be put on the table in email or over IM. As introverted as many software people are, sometimes you need to talk to other humans to make the most efficient progress.

Think, for a moment, what a good meeting looks (and feels like). Good meetings are engaging – you want to listen and participate (rather than type on your laptop or phone). In good meetings, you learn something new (or help someone else learn something) or you reach agreement and have a plan of action by the time you walk out the door). After a good meeting you should have a feeling that progress has been made.

Then, there are the other kinds. We’ve all been there – half the room is typing on laptops, looking up once in a while to ask the presenter to repeat the last five minutes of their presentation. People talk, but no decisions are made, and most people are more confused about what’s going on than when they walked in the door. When you leave, you don’t know what to do, or at best, you are assigned to go back to your office and come up with a plan of action on your own.

We can all recognize a good meeting vs. a bad meeting, but how do you change one into the other? You have few options. One is to cancel all of the “bad” meetings. Then, you’ll only have good meetings left and life will be great. The problem is that you may actually need most of those meetings – you just need them to be more effective. Another option is to ensure that each meeting has a flow (I didn’t say “agenda” on purpose – I believe that meetings with out agendas can be effective if you have a consistent way to let the agenda emerge (scrum daily stand-ups are a great example of this (unless you consider an “everyone talks about their stuff” an agenda)). Also make sure that every meeting has a facilitator (who may or may not be the owner of the meeting). The facilitator’s job is to keep the meeting on track, stop “rat hole” conversations, and to assign action items as they come up.

Another suggestion is to reduce the meeting length. My hunch is that most 60 minute meetings can be done in 30 minutes, and 90 minute meetings can be completed in 45 (or less)). Meetings are gaseous entities that expand to fit the available space, and I believe that if you reduce the meeting time, that within a few sessions you will be getting just as much done (in half the time). If it works for you, please send your checks to me – I accept paypal.

More collateral for you on the subject

Making Time

March 9th, 2010

Yesterday, a colleague asked me where I find the time to blog, twitter, etc. This is something I get asked often, but the only answer I have is that I just make time. I put blogging, presentations, sasqag work, and other community stuff right alongside my core work on my todo list. I’m heavily driven by my todo list (I use the tasklist in outlook), and anything I think is important makes it onto the list. I don’t work exceptionally long hours – I just make time for what I think is important. I don’t work exceptionally long hours either – my home life and my work life sort of blend together (I take care of personal stuff during the work day, and work most mornings and evenings from home. I’d estimate that I typically work about 50 hours a week at the most (although that number is a bit higher now as I ramp up on my new job).

I suppose it also helps that I think about work a lot. In fact, I write most of my blog posts (including this one) in my head before I sit down to type them out. I use my commute (20 minutes) to think through blogs, papers, projects, and whatever else I’m doing that requires a bit of thought before execution.I don’t have a lot of dead time during my day, but I think that helps keep me sharp.

I have one other bit of related advice to share (something I should have included in my gravy train presentation). There is always enough time. I’ve talked to people around the world (mostly testers), and I’m surprised how many tell me that there is some cool thing they want to do…but they just don’t have enough time. “I’d like to learn a new language,,,but I don’t have time”, or “I’d like to look ahead and build a strategy for our team…but we’re just too busy with execution right now”. When people tell me this, I ask- “What would happen if you were sick for a day? So sick you couldn’t even get out of bed?” “Would you be able to “catch up?” Sometimes they try to convince me the world would end, but the conversation always ends with a statement like “it would be inconvenient, but we’d survive”. “Fine”, I say, “if this is important, block some time off of your calendar and make it happen”. You will never get off of the treadmill if you don’t make that time, and if you don’t get off the treadmill, you’re never going to make great things happen.

And everyone should get a chance to make great things happen.

ed. Adam Goucher pointed me to this article on making time. A fantastic read – thanks Adam.

What comes with the gravy?

March 4th, 2010

I mentioned a week ago that I was giving a talk on career tips called “Ride the Gravy Train”. I gave the talk today (which had a remarkably large turnout), and think it’s a talk I’ll deliver again (with some tweaks).

Without going into details, here are the tips:

  • do the right thing
  • try different
  • speak up
  • learn your A-C-B’s
  • know that you don’t
  • know who you don’t
  • follow the leader – lead the follower
  • don‘t flip the bozo bit
  • …and don’t burn bridges either
  • find a mentor
  • ride the gravy train
  • find the steepest learning curve
  • the three p’s
  • be happy
  • a career is a journey, not a sprint
  • there’s nothing wrong with self-promotion

As  you can tell, there’s nothing Microsoft specific here (and probably nothing controversial either). As usual, of course, I use few words on my slides (this is the sum of all of the text), and the words I use are too obscure for most people to provide context.

Given that it’s my product now, I’m considering doing a live meeting version of this talk (and if that goes well, others). I thought about doing something like this before, but as soon as I suggested it, I got very, very busy. I’m still busy, but at least I can say I’m testing (and I promise to anyone who wants to listen to the talk that I will take every bit of feedback you give me on your experience with the product and get it to the proper people). Not sure when yet, but probably in  a few weeks. I’ll post something here and frequently on twitter when I get things squared away.