Wednesday, October 29, 2008

More Win7 Previews

Previews of some specific parts of Windows 7 which are of interest to me:


Media Center

Tuesday, October 28, 2008

Win7 Previews Starting To Appear

Windows 7 is being unveiled for the first time at PDC and the initial previews are starting to hit the net.  Here is a sampling:

Gizmodo (covers Device Stage with lots of pictures)

WinSuperSite (lots of pictures of the shell)

Ars Technica (mostly new UI)

NeoWin (UI plus Device Stage)

Tuesday, October 21, 2008

The MUD is 30 Years Old

Back before World of Warcraft or even Everquest there existed an entity called a MUD or Multi-User Dungeon.  These were a lot like today's MMOs except that they were text-only interfaces.  Most of the concepts were the same.  Build a character, kill lots of bunnies/elves/etc. to grind out levels, get cool gear, group with your friends.  They were just as addicting as modern MMORPGs.  I recall playing something like 24 hours of game in a 2-day period during finals week.  That's when I decided I should quit.  It was my grades or the MUD and the grades won.  That's probably why I'm writing this blog today instead of asking, "Would you like fry's with that?"  The first MUD I ever played seriously was called Crystal Shard.  As most MUDs, it shared a common code base with others but was heavily customized. 

Anyway, the MUD turned 30 this week.  It was October 20, 1978 that the first MUD came into existence.  It took a while for them to make it to the mainstream...

Saturday, October 18, 2008

Some useful traveling gear

I just returned from a trip to the University of Illinois, Urbana-Champaign.  I brought some items with me that turned out to be very useful so I thought I'd pass along the tips in case you are in the market for such items.

Headphones - I brought several pairs along, but I really enjoyed my Sennheiser HD 280 Pros.  They are full-size headphones, not earbuds or anything.  This gives them much better sound than most smaller headphones.  They also provide a lot of sound isolation.  They are not actively noise canceling, but keep out most external noise due to their design.  What makes these better than most full-size headphones is that the earpieces both pivot so that they are aligned with the body of the headpiece.  This allows them to be stored in 1 1/2-2" of space rather than the 4-inches or so that would be required of other headphones.

Jacket - I wore my Scottevest Evolution jacket.  This jacket has 15 functional pockets (and several other smaller ones) which makes it great for packing things.  Instead of trying to put a backpack or laptop back under the seat, I just put all the items I want for a plane flight into my jacket which stows easily and still leaves room for my feet to move.  There is a pocket perfectly sized for a paperback book, one just right for a magazine (in the back), one that perfectly fits my Eee PC (below), space for a water bottle, plus pockets for Zune, phone, etc.  In addition, the arms come off turning it quickly into a vest.  I found the full jacket a bit warm for most airports and airplanes, but the vest to be quite comfortable.  The arm pieces stow easily in the back pocket and attach quickly when you are ready to leave the airport and face the elements.

Laptop - I brought along my Asus Eee 1000h on the trip.  It has several benefits over the Lenovo and Dell laptops I have brought on previous trips.  First, it is very light.  It weight around 3 lbs which is a lot nicer to lug through an airport than the 6+ lb notebooks I was accustomed to.  Second, the battery life is amazing.  I'm currently looking at 75% of my battery left and an estimated 5 hours, 27 minutes of time remaining.  The time drops when doing more than reading papers and typing blog posts, but it is still very respectable.  The third advantage is the size.  The 1000h is big enough to have a functional keyboard, but small enough that it is easy to stow in a backpack or even the inside pocket of my Evolution jacket.  It's also small enough to comfortably open in a coach airplane seat.  A 15" laptop can't fully open in those cramped quarters.  The problem gets even worse if the person in front of you decides to recline.  The 1000h suffers from no such problem.

[Updated SEV link - Thanks Bill]

Friday, October 17, 2008

The Five Why's and Testing Software

Toyota was able to eclipse the makers of American cars in part due to its production and development systems.  The system has been popularized under the rubric of "Lean" techniques.  Among the tenets of the Lean advocates is asking the "Five Why's."  These are not the W's of journalism:  Who, What, Why, Where, and When?  They are not specific questions even.  Asking five why's means asking why 5 times.  Why was the production of cars down?  Because there were missing screws.  Why were there missing screws?  Because the production robots were bumping them.  Why were the robots bumping?  Because the programming was faulty.  Why was the programming faulty?  Because the programmer didn't take into account a metric->English conversion.  Why didn't the the programmer consider conversions?  Because... 

There is no magic in the number 5.  It could be 4 or 6.  The importance is to keep asking why until the root cause is understood and fixed.  Fixing anything else is just alleviating the symptoms of a deeper problem.  Not solving the root problem means it will likely cause other problems later and more time will be wasted later.

How does this apply to testing?  It goes to the core of the role of test in a product team.  Think about what happens when your team finds a bug in your software.  What do you do?  Hopefully someone on the test team files a bug report and either the tester or the developer root cause the problem and fix it.  This usually means determining the line of source code causing the issue and changing it.  Problem solved.  Or is it?  Why was that line of source code incorrect in the first place?  We rarely--if ever--ask.

What if we began to view our role as testers as trying to eliminate bugs from the system instead of from the source code.  In that case we would be asking what coding techniques or early testing systems the team could employ to stop the bug from entering the source code at all or at least detecting it while the code was still under development (better unit testing might be a solution in this category).

Wednesday, October 15, 2008

Change Your Environment

As people grow in maturity in their jobs, the way they interact with their environment changes.  I have had this discussion a few times during the recent review cycle so it's probably time to pass it along to a wider audience.  As I see it, there are three stages most people go through during their career.

Stage 1 - Rejection

A new person in an environment will often chafe at that environment.  Things aren't the way they would do it.  They find it wrong and complain about it.  Sometimes loudly.  The trouble is, they don't do anything about it.  Complaining doesn't help.  Suggestions do.  At this lowest maturity level, suggestions are rare.

Stage 2 - Acceptance

The next stage of maturity is acceptance.  A person at this stage stops complaining.  They see value in the way the system works and willingly participate.  People at this maturity level still consider the rules to be an external force.  They are to be followed, but not questioned. 

Stage 3 - Change

By stage 3, the person is comfortable enough in their environment to begin changing it.  He sees something imperfect and, rather than complaining like a stage 1 person or just putting up with it like a stage 2, he takes steps to improve the environment.  Mature employees will come with solutions, not complaints.

Use these levels to help mature in your career.  Assess where you are at and then decide on the behaviors that will take you to the next level.  Many times I've seen people bogged down in their careers and not understanding how to advance it.  The trouble was often that they were not taking initiative.  They were in stage 2 and not progressing to stage 3.  When was the last time you went to your manager with a solution?  Not a complaint, but a way to improve the system?  What did you do when it wasn't immediately adopted?  The right response is to persevere.  If the change is worth making, it is worth expending energy on.

Monday, October 13, 2008

Windows 7 Will Be Officially Called... "Windows 7"

After Millenium, XP, and Vista comes... Windows 7.  Yep.  Not a lot of imagination in this one.  As unexciting as the name is, I'm excited that we're finally starting to talk about it.  It's shaping up to be a really nice OS.  I can't wait until you all get to experience it.


Sunday, October 12, 2008

Review: Tribal Leadership

I just finished the book Tribal Leadership by Dave Logan et al.  It's one of the better leadership books I've run across.  The authors stress the need for leadership to develop a "we" culture instead of an "I" culture.  The authors call this a stage 4 culture and the leadership style Tribal Leadership.  The advantage of moving to a culture that embraces group success over individual success is the ability to accomplish more.  A group of individuals acting as induhviduals cannot reach the heights that a group acting in concert can.

The authors identify five group cultures:

Stage 1 - Life Sucks - People in stage one believe that all of life sucks.  The world is oppressive and there is nothing the individual can do to fix it.  This is the culture most likely to be found in prison or the projects.  It is not something seen often in corporate life.

Stage 2 - My Life Sucks - People in stage two acknowledge that life can be good, just theirs isn't.  The blame is externalized.  Something is in the way of their success.  It might be their manager or the company's rules.  Stage two is marked by complaining, but not action.  Employees in a stage two company will form bonds of shared oppression.  If you've seen The Office, you've seen a stage two culture in action.

Stage 3 - This is much of corporate America today.  People in Stage 3 say "I'm great" and mean "I'm great and you aren't."  Stage three is all about individual excellence.  People in this stage can produce amazing results, but it is tiring.  Everything is a struggle against those less excellence than one's self.   Power is hoarded.  Help is unidirectional.  People at stage three tend to burn out because every success take such great personal investment.  This is the hero culture typical of companies like Microsoft for much of its history.

Stage 4 - "We're great" is the mantra of stage four.  The corollary is "You are not."  Cultures at this stage work together--putting the good of the group above the good of the individual--against a common foe.   This might be Apple's operating system group against Microsoft or the Live Search team as it comes together to take on Google.  Cultures at Stage 4 can operate more efficiently because they can share information and build upon each others' successes.  People are happy about the success of others instead of being jealous.

Stage 5 - "Life is great."  This is stage 4 without the common foe.  It is working together for the betterment of mankind (or some such) without the need of a common foe to unite the tribe.

The book focuses primarily on the Stage 4 culture and the leadership style necessary to achieve it.  It should be noted that the "Tribal Leadership" style of these authors is very similar to the "Level 5 Leader" described in the book Good to Great.  Stage Four cultures and leaders exhibit the following behaviors:

  1. A desire to work together.  To get to stage 4, you have to have gone through stage 3 and become disenchanted with the limitations of personal success.
  2. Shared core values.  People must be on the same page.  It is important that each member of the group be able to make decisions in line with all the others.  Having a shared set of values enables this.  Each decision can be reached by asking "What do our values have to say about this situation?" and following  where that leads. 
  3. A "noble cause."  The group needs a shared goal.  If core values are how a company operates, a noble cause is what it shoots for.  The authors say this cause must be "noble" but I'm not convinced it does. Any shared vision that all are bought into would seem to do.  Noble is, of course, better than ignoble. 
  4. The use of "triads."  Communication should be decentralized.  Imagine the situation where a manager is trying to coordinate the work of two employees--Jane and John.  If the manager goes to John and then takes that information to Jane, this is an example of 2 dyadic relationships.  Manager::John and Manager::Jane.  Instead, the manager should encourage John and Jane to work together or perhaps for the three of them to meet together.  This sort of communication does not happen in a stage 3 culture because knowledge is power and having knowledge flow through you is a way to concentrate said power.
  5. Using values and cause to work toward an outcome.  Actions must be informed by the values toward the cause.

A recent management talk I attended made the point that leaders set direction and then let their employees determine the best path toward success.  The job of the leader is to set the direction, align the team members around that direction, set the values for the group, and then be responsible for the growth of the team.  This sounds a lot like Tribal Leadership.

The end of the book feels a little utopian, but if you ignore the final chapter, there's a lot of useful ideas here.

Thursday, October 2, 2008

James Whittaker on Why MS Software "Sucks" Despite Our Testing

A friend turned me on to this post by James Whittaker.  I didn't know he had a blog so now I'm excited to read it.  He has a lot of really interesting things to say on testing so I encourage you to read his blog (now linked on the left) if you are intrigued by testing.

Microsoft prides itself on the advanced state of its testing operations.  This leads to the inevitable question, "If Microsoft is so good at testing, why does your software suck?"  James Whittaker was once a person who asked this question and now that he's at Microsoft he is in a good position to try to answer it.

James gives basically three reasons:

  • Microsoft's software is really complex.  Windows, Exchange, Office, etc. are really, really big projects.
  • Microsoft's software is used by a whole lot of people.  Eric Raymond once made the comment that all bugs are shallow if you have enough eyes.  This applies to closed source software just as much as open source.  Within the first few days of a release of Microsoft software, millions of people are using them.  Windows has an install base in the hundreds of millions.  With so many people looking at it, all bugs are likely to be hit by someone.
  • Microsoft testers are not involved early enough in the process.  This varies throughout the company, but there is still a lot of room for improvement.