27 November 2009

Instant Boot Bliss

Microsoft has worked the kinks out of Vista. To make a clean break with colossal failure, Microsoft has renamed their flagship OS Windows 7. Windows 7 hits the mark just in time to be arguably obsolete. The impact of Windows 7 will be marginalized in the coming year by Google's Chrome OS and by competing products like Jolicloud.
Chrome OS is an awakening.

I have been developing web apps since the late 1990s. I've been fond of bragging that we did ajax back when it was known as remote scripting and used an asynchronous JavaScript call back function.

I am all about making faster, richer web apps that leave native desktop apps in the rear-view mirror. Chrome OS is an instant boot operating system optimized for a superior web experience via superior local caching and zippy JavaScript.

When Acer and HP netbooks featuring Chrome OS hit the shelves in 2010 (HP, Acer Developing Google Chrome OS Netbooks), the death knell for file-based operating systems will begin.

File-based operating systems will give way to web-centric operating systems just like film-based photography gave way to digital imagery. Who remembers cameras with roll film?

Roll film cameras like the Brownie gained popularity because consumers love devices that are expedient and easy-to-use.
You push the button, we do the rest. ~ Kodak slogan circa 1900
One doesn't need the experience of loading 4x5 inch sheet film into a film holder, then sliding it into the back of a view camera to understand how revolutionary roll film was to consumers in the early 20th century.
Consumers dig easy to use and cheap
How many computing people ensconced in a coffee shop are not connected to the web? Yet, inexplicably, my 64-bit notebook with 8 gigs of RAM takes several minutes to boot. Adding a turtle-like virus scan to that startup time leads to significant thumb twiddling.

I have stopped being an apologist for Microsoft. Not because Microsoft doesn't make great products - I'd still rather develop in Visual Studio than Eclipse. Rather, Microsoft has squandered  near monopolies in several product areas by being slow on the uptake.
Why are most of the forward-thinkers working at Google?
Consumer devices whose primary function is easy access to internet services, such as the world wide web or e-mail, have been with us for a while. The term internet appliance was popularized in the late 1980s and 1990s. simPC, a web appliance for  grandma and grandpa to share with grandchildren, debuted as a proof of concept in 2004 running from a solid state drive, based on the Linux OS, and requiring an internet connection.

I am going to bite the bullet to upgrade to Windows 7 on my Vista notebook. But, I'm leaving Windows XP on my development box until further notice because Microsoft, in a consumer-unfriendly decision, hasn't made an effort to ease the leapfrog (over Vista) from XP to Windows 7.

As long as the boot time for Chrome OS, and other web-centric clones, remains almost instantaneous, the
  • technical hurdles, like richer & faster web apps and bigger internet pipes, and the
  • psychological hurdles, like data storage on the cloud rather than locally, 
will begin dropping like hapless male drones in autumn.

We have reached a turning point where
  • Price points for computers become affordable for most ($299), 
  • Web-centric operating systems are free, 
  • Software installation and virus protection becomes obsolete,
  • Software is online, and
  • Data storage is on some amorphous genie called the cloud.
Of Interest
  1. To Learn - See What We Need To Know About Chrome OS.
  2. To View - Watch Chrome OS Open Source Project Announcement video.
  3. To Join  - Register on Chrome OS Forums; a new discussion forum with valuable information about Chrome OS Install and Setup Guide and How-to Run Google Chrome OS From a USB Drive.
  4. To Speculate- Read Jolicloud aims to steal Chrome OS's netbook thunder to see how things are heating up in the web-centric OS space.
  5. To Follow - VP of Product Management for Chrome OS, Sundar Pichai, on Twitter at @sundarpichai
  6. To Follow - Lead Engineer for Chrome OS, Matthew Papakipos, on Twitter at @mpapakipos

19 November 2009

What We Need To Know About Chrome OS

A few industry journalists seemed confused about Google Chrome the browser and Google Chrome OS the operating system in today's webcast of Google Chrome OS Open Source Project Announcement. Make no mistake, Chrome OS boots your machine - in 7 seconds!
Chrome OS is a Linux-based operating system optimized for- and devoted to- the Web.

In the webcast, Google revealed several details of their Chrome OS product vision. Sundar Pichai, VP of product management said:
We want Google Chrome OS to be blazingly fast…
to boot up like a TV

Chrome OS
  • Targets users who spend most of their time on the web. Um... like everybody.
  • Is a fundamentally different model of computing -- relying on cloud computing (e.g., your computer does not manage data).
  • Runs web apps residing on remote servers, rather than on hardware devices.
  • Users won't install applications since the OS runs web apps.
  • Users won't install anti-virus protection since the OS monitors malicious activity via internal systems like verified boot and malware protection.
  • Runs javascript super fast
  • Supports the W3C notification API for real time notifications.
  • Is an open source project released to the public on November 19, 2009. The project is known as Chromium OS (Chromium OS is what Google calls developer builds of Chrome OS).
Every capability you want today, in the future it will be written as a web application
~ Sundar Pichai
  • Chrome OS targets netbook computers. It is tuned to run on hardware with x86 or ARM processors under the hood.
  • Hewlett-Packard and Acer are working with Google to create devices running Chrome OS (cf. HP, Acer Developing Google Chrome OS Netbooks).
  • Chrome OS supports keyboard, mice, standard storage devices (e.g., non-volatile flash memory), and droid phones.
  • Chrome OS will have printer support that will be announced in the future.

The wired.com post Five Things Google's Chrome OS Will Do for Your Netbook distills the attraction of Chrome OS to
  1. Cost;
  2. Speed;
  3. Compatibility;
  4. Portablity; and
  5. New Applications.
Business Strategy

Chrome OS is a bold move by Google in the competition between Google and Microsoft for the badge of digital dominance. I am a Microsoft whore, but I am betting on Google. Here's why...
Dude #1 fires up Windows 7 on notebook.
Dude #2 boots Chrome OS on a Netbook in 7 seconds
Dude #2 has GMail read before Dude #1 sees login prompt.
Asked about Google's strategic position with Chrome OS, Google co-founder Sergey Brin said
We really focus on user needs rather than think about strategy relative to other companies...a web platform on stateless machines that are performant.
Watch a 3:30 minute video excerpt of the Q&A from today's webcast from TechCrunch. Or, view the entire announcement video, including a live demo (~80 minutes).

Like a Hobo on a Ham Sandwich

What to get on Chrome OS running on a virtual machine using Sun's free software VirtualBox (for PCs, Macs, and Linux)? TechCrunch gives a step-by-step walk-through in the post Want To Try Out Google Chrome OS For Yourself?.

17 November 2009

Information Discovery & Chirpitude

My Professional Persona Primer for Twitter post didn't get a lot of play, but it did elicit a thoughtful comment or two.

I use Twitter for informational discovery - to find out who's working on what and what I should know.
I also use it for inspiration - for brain roughage, gray matter fuel, endorphin triggers, and to jostle my melon's opiate receptors.
The imagined value of most communication can be chalked up to hindsight bias or similar cognitive errors. ~Garry Smith
My informational snacking is often healthy, but I've had to work at choosing the right diet. Some examples of healthy snacks from today's TweetDeck are:
  1. Please do not name your #Agile Teams after products. When you sunset the product, the team freaks out. - 7thpixel
  2. The best decisions I ever made were when I decided to work with the smartest people I could find. - Marissa Mayer
  3. When writing the values section of a persona, if someone says "for example...", that's a test in disguise. - David Hussman
But unhealthy snacks abound in the informational grocery store. Some examples of junk food from today's TweetDeck included:
  1. Heading to convention center. Favorite red shirt activated and working nicely. - name withheld
  2. Still packing and moving things - name withheld
  3. It's Official: The Tesla Roadster Sport Is A Babe Magnet - Silicon Valley Insider
Just because nobody complains, doesn’t mean all parachutes are perfect ~Benny Hill
To cultivate and harvest heirloom info from Twitter, we knowledge gardeners must eradicate the invasive interlopers of chirpitude.

Unless you are visiting this post from a parallel universe via a topological space-time wormhole, chirpitude is new to your lexicon. As a courtesy, I invite consultation with The Dictionary...

13 November 2009

Story Board for Google Wave

What's a Google Wave Gadget?
A gadget is an application Google Wave (GW) participants can install and use. Gadgets can take advantage of live interaction with multiple participants. Gadgets are specific to individual Waves. That is, the gadget belongs to everyone within the Wave.

What's Taskboardy?
In my July post Google Wave and Collaborative Projects, I articulated wishful thoughts about using GW for agile projects. Now we have Taskboardy. Taskboardy is a storyboard (as used in Agile, XP, Scrum) gadget made by Federico Zuppa. Federico is a developer and Agilist. Fede's blog, Agile Booknote, includes updates about Taskboardy. Gracias Fede!

GW participants who have installed Taskboardy are able to maintain a storyboard  including the functionality to:
  • Create or Delete a User Story;
  • Create or Delete a Task;
  • Update Task Statuses; and
  • Assign Tasks.
Technical Aspects
Taskboardy uses Javascript that calls the Google Wave API to persist the state of the taskboard in the Wave,  which is then simultaneously broadcasted to all participants. Federico's gadget features drag & drop using the Google JQuery API.

  • Garry Smith got Taskboardy installed in a Wave we initiated for a new agile project (Shown above). We will run Taskboardy through the paces for our chartering and beyond. I will post a review later this week as we progress.

10 November 2009

Ain't No Code Monkey

I am not a code monkey. I am not a geek.

That's why I appreciated Nick Whiteley's post Code Monkeys and the Software Eunuchs.

Many of us are soup to nuts software product developers.

Many contract developers have a breadth of business knowledge unsurpassed by other knowledge workers. Our work day might include a range of tasks from crafting unit tests to coaching a product owner on backlog grooming.

In the past 15 or so years, I have learned about the publishing, financial, manufacturing, medical device, insurance, legal and environmental business sectors. Like other contractors and consultants, my knowledge is perhaps shallow, but like a delta it spreads to the horizon.

And, like many contractors, I run a small business. Running a small business, I know a bit about accounting QuickBooks style, a bit about marketing my company, and a bit about networking with peers and practitioners.

The most underrated contribution of agile is humanistic. In the inclusive world of agile, developers are welcomed to chartering table, the planning table, and the post-mortem table -- not just the workstation. We're players on the product team.

Whether you're stubbornly old-school or unknowingly ill-mannered, please retrain your brain to refrain from belittling notion that developer equals geek or code monkey.

In return for this courtesy, I pledge to bite my tongue the next time I am tempted to think of you as a pencil pusher, bean counter, snake oil salesman, or pointy-headed boss.

08 November 2009

Software Teams versus Groups

What's distinguishes a team from a group?

In the cultural sphere of my youth, basketball seemed the quintessential team game. I was a playground hoops rat who grew up tolerating ego-centric ball hogs. I'd wonder, why don't these rubes appreciate the team game?

I dreamed of a team game, modeling and emulating the unselfish play of the 1969-70 NBA champion N.Y. Knicks.

In retrospect, my hoop dreams chums and I were a motley collection of pubescent mouth-breathers missing that magic chunk of gray matter that enables a flock of humans to behave like the symphony of a single organism (e.g., Self-Organization: Flocks, Schools & Colonies).

Compare the shooting stats of the 1969 Knicks with the 2008 NBA runner-up Lakers -- a striking difference in the distribution of shots per game for the top 6 players of both clubs is evident.

1969 Knicks

Shots per Game

Willis Reed


Walt Frazier


Dave Debusschere


Bill Bradley


Dick Barnett


Cazzie Russell


Mean 13.2 and Std. Deviation 2.4

2008 Lakers

Shots per Game

Kobe Bryant


Pau Gasol


Andrew Bynum


Lamar Odom


Derek Fisher


Trevor Ariza


Mean 9.9 and Std. Deviation 5.2

For the Lakers, Kobe Bryant took 3 times the shots per game than 6th man, Trevor Ariza. For the Knicks, Willis Reed, took 1.7 time the shots per game than 6th man, Cazzie Russell. Which club feels like a team? Which feels like a group?  My apologies for leading the witness.

The '69 Knicks and the '08 Lakers, by all accounts, were wildly successful in their respective eras. Most people would probably choose to play on a team similar to the Knicks, where everyone was assured roughly the same number of shots. Is selflessness an indicator of team success?


I started this post thinking unselfishness was a defining characteristic of successful teams. I planned to compare a team player’s team, like the 1969 Knicks, with a ball hog team, like Kobe Bryant and the 2008 Lakers, but a funny thing happened:
The premise did not ring true.

Working Thesis

Most of us would rather play on an unselfish team, but unselfishness, while an attribute of a attractive team, is not an attribute that defines a successful team.
Teamwork is less concerned with democratic, unselfish distribution of tasks and skills, then with recognizing how best to combine the strengths and weaknesses of the players.

I suspect that successful teams determine - by a sometimes brutal mechanism akin to natural selection – which player should fill which role based on complementary strengths and weaknesses. These roles are not appointed, they emerge. Roles emerge as strengths and weaknesses are evaluated through trial and error. Appointed roles rarely work, but who doesn't know the go-to-guy 3 weeks into a project?
Avoid the trappings of appointing and anointing. Try letting roles emerge.
The Greek syn-ergos is the root of the English synergy meaning working together. Synergy describes conditions where entities cooperate advantageously for a final outcome. Synergy is an over-used word that feeds the old saw
The sum of a team's parts is more important than any individual

Groups begin the path of team transformation when each group member acknowledges and pursues a shared goal. When group members are able to subjugate personal ego in the pursuit of the most efficient path to a shared goal, they cross into the realm of team.

Teams display emergent behavior which is a collective behavior that is largely unpredicted by the behavior of individuals taken separately. Sometimes simple entities like individual players, form more complex behaviors as a collective. NBA teams assemble players based on roles like shooter, rebounder, defender, etc. They build around core players and skills that fit a style or vision with complementary players and skills.

Teams where players emerge into roles are not necessarily exclusive from the much ballyhooed cross-functional teams. On the best NBA teams, when the shooter gets hurt, other team members fill the void by taking more shots. Because you emerge as the best person to branch of your source code, doesn't mean you are - or should be - the team's exclusive branching dude.

I have heard the phrase self-directed teams used to describe teams that are given autonomy and take responsibility. Teams are self-directed by definition, so self-directed team is as redundant as Free Gift or Frozen Ice. Perhaps "self-direction" is merely another characteristic that distinguishes a team from a group.

Following is a working enumeration of some of the characteristics that might distinguish a team from a group:
  • Teams work toward shared goals
  • Teams have emergent roles based on the most efficient path to shared goals
  • Teams emerge as a single organism when advantageous
  • Teams have emergent behavior unpredicted by individuals
  • Team members subjugate individual ego for the sake of team efficiency
  • Teams are self-directed