Sunday, March 29, 2009

Commander's intent

This is an enabling concept and should be a key component of effective military (or business) doctrine. If every commander in the military had to ask the boss what they where supposed to do when they encountered an unspecified problem, how effective would they be?

Imagine the Tank Commander on halting his tank and radioing to the platoon leader "hey LT, there's a building in my way, what should I do?" and then the platoon leader radioing to the company commander... all the way up to the president. Wouldn't be a very effective fighting force would it?

The idea of "Commander's intent" is that it relies on subordinates having an understanding of what the overall mission is and how they fit into it. It specifically frees subordinates to act in accordance with their understanding of what they are being asked to accomplish. In essence, the commander formally recognizes that specific details are the responsibility of the lower echelon and it the the lower echelon's responsibility to make decisions about them. In our previous example, the company commander should have said "we need to get our tanks to the river. Responsibility for the specific maneuvers that are required to get there is in the hands of the individual tank commanders".

This is an effective tool, when used properly, that allows organizations to free themselves from the logjam of "lookup up" the hierarchy to discover what should be done. In essence, leaders at all levels have the responsibility for making their vision understood to those below them. They should resist the urge to constantly adjust the exact implementation details. In many ways, this is also way to reduce the amount of (micro)management that is necessary to get a job done and frees leaders to accomplish more strategic or visionary tasks.

I apologize to any tankers who might be offended by this silly example and I realize the terminology might be off, but hopefully the metaphor made sense.

Friday, March 27, 2009 has a stretchy layout now!

Update from previous blog post about retailers and their non-widescreen compatible layouts. I was commenting on how nobody seemed to get how to properly design a web page so it could be stretchy... has done it!

Congratulations guys! I also like the new experience, it really looks nice. I will say the left nav is a little disconcerting. I was initially confused when I clicked on the department and the popup disappeared and showed the details down below. It took a few seconds to understand what the heck actually happened.

Do the right thing...

I recently sat down with a group of technical people and I made a statement that now haunts me. The statement was:

"If a developer doesn't know exactly what they are supposed to do, they should just GUESS what they think should be done and move on. "

Once the words left my lips, a technical team lead at the table paled and began to argue about how that statement was totally incorrect. I was puzzled for a moment, but then realised this person probably thought I was implying that they should not EVER go back and ask what should be done. In addition, I think they heard me imply that developers shouldn't ever ask questions in general.

This was not really what I intended to communicate and in retrospect, my choice of words was unfortunate. To clarify, I obviously think people should ask questions, they should openly challenge requirements that are vague, ambiguous, or contradictory. More importantly, they should be free to use their best judgement in the absence of specific instructions. But if it is going to take 24+ hours for a business client (or the boss) to get around to answering your question, make an educated guess as to what you think they MIGHT say, make a note for future generations, fire of the question asynchronously, and continue to work toward a solution.

I'm not suggesting that this is ideal, but nothing ever really is ideal. As an example, a better situation might be that the business client or representative user is sitting within arms reach of the developer and they can simply answer any question immediately. If this is the situation then of course: ask away, have a rousing discussion, argue about it. My point is more that software development is a partnership and having the development team simply delegating every decision to their business partner (or the boss) is a sure fire recipe for disaster. In addition, it will very likely lead to a buffalo problem

In hindsight and to clarify, I think my statement really should have been:
"In the absence of specific instructions, coworkers (peers, subordinates) are authorised to exercise professional judgement to select the best course of action without fear of reprisal"

Friday, March 20, 2009

Buying a new keyboard via Bricks and Clicks

OK, I've had it with my old clunkly Dynex keyboard. Normally my typing speed is somewhere up around 80+ wpm, but with this keyboard it sinks down to around 70wpm... that's over 10% and just not acceptable when I'm knee deep trying to get ideas out of my head and into a computer before they disappear.

So I thought what I'd do is go online and see which local retailers have my product, and, more importantly, which one's had my product in stock in my local store. The only reason I would go to a Brick and Mortar site for electronics is because either:
  1. I want it NOW!!

  2. it's so expensive/heavy that I want to make sure I have a real person to yell at if something goes wrong

Off the top of my head I know I picked these stores due to their proximity and my inclination that they may have what I'm looking for.
  • Best Buy (800lb gorilla).. I have a bias toward them because it is very close to my house and I know they have keyboards I can test drive.

  • Wal Mart (close by, cheap, I THINK they have keyboards I can test drive)

  • Kmart (close by, I work for their parent company, I'm pretty sure they don't have them out where I can test drive them in the brick and mortar)

  • Staples (far away, expensive)

  • Office Max (far away, expensive)

I put the broadline retailers in the middle because my impression of Office Max and Staples is that they typically charge a premium, but I don't know if that's really true or not.

First, the raw results:
  • Best Buy results (A) 510 results, many computer keyboards, the actual type of product I'm looking for is dead smack in the middle of the screen

  • Walmart results (D) 164 results, some computer keyboards, have to scroll down quite a bit to find a computer keyboard among the chaff

  • Kmart results (A) 238 results, many computer keyboards, almost everything is computer keyboard related. Actual product is slightly below middle of screen.
  • Staples results (B) 156 results, many computer keyboards, single list, only two results immediately visible

  • Office Max results (B) 102 results, many computer keyboards, single list, only two results immeidately visible

Now for the big test. I want to now filter by things I can go and pick up right NOW.

  • Best Buy (F) there might be a way to do this, but after a minute or two, I couldn't find it
  • Walmart (A) - OK, I hate to say it (for obvious reasons given my employer) but these guys nailed this cold. Not only does it give me the UPC (which Is interesting to me for other reasons) it also tells me which stores in my area have it. Nice job guys.
  • Kmart (F)
  • Staples (F)
  • Office Max (F)

Well, this was disappointing for me. I fully expected it to be a no brainer and that Best Buy would blow me away, and for some reason, I felt certain had this functionality, but it was Wal Mart who actually came away the winner.

Frankly, this is a bit of an academic exercise because, after thinking about it, I'm still going to Best Buy because I want to be sure I can test drive the keyboard and I know they have a big display of them set up for me to play with.