Sound advice rhyming

Back when I joined Documentum in 1998–later acquired by EMC, I can recall its first CEO, Jeff Miller, saying: “We may not always be right, but at least we’re not confused.” (Fast Company captured a slightly different quote: “It might not be the right plan, but at least we’re not confused.”)

So, when I read a recent quote from eBay’s CEO, Meg Whitman, I was reminded of Mark Twain’s word, “History doesn’t repeat itself, but it does rhyme.”

Actually, in defense of her company’s acquisition of Skype to Tim O’Reilly, Whitman appears to be quoting Meister Eckhart, German writer and theologian, 1260-1328: “The price of inaction is far greater than the cost of making a mistake.”

Smelling fresh asphalt (or repaving a PC)

Repaving – def. the computer-based act of reformatting the system partition followed by installing a fresh operating system followed by fresh application installations followed by user settings restoration

For starters, it’s a good idea to separate your data from your applications (e.g. C: has OS and software; D: has documents, pictures, music, videos, etc.). You can accomplish this separation via separate physical hard disk drives or drive partitions. (Given the amount of software I use regularly due to my professional as well as the volume of digital content I posses, I go the multiple drive route.) So, if you currently run a one-disk-and-one-partition environment (RAID 1 (mirror), RAID 0 (striped) or no RAID), consider creating two partitions in your new environment.

Any robust repaving process should begin with current backups. If you don’t already possess a current backup of your critical files, settings, software installers, etc., find your backup medium of choice and start that process. If your backup solution is online and off-premise, just make certain that you save the means to reconnect to your service from your new computing environment–same applies to your ISP. If you choose, for example, to backup to disc (DVD or (gasp) CD) be sure to validate written data is readable before calling it a day. Also, be sure to exit out of all applications before commencing backup–even to the point of confirming exits via Task Manager (e.g. OUTLOOK.EXE isn’t hanging around nor is any other desktop search software that maintain a lock on your PST file, etc.).

Recently I’ve found it useful to maintain a list of what I install on a machine, especially for work (software architecture). When I’m repaving, I simply review this list to trigger anything specific that may require backing up. This list also comes in handy further into the repaving process when I start re-installing software. As a cross-checking measure, I save the contents of my Start menu, my Quick Launch toolbar, and a listing from my Program Files directory, too. Be sure to save the means to reinstall each piece of software (e.g. URL’s, license keys, setup programs, access credentials, etc.).

Use care when your repave involves software or content with activation (e.g. Adobe) or other rights management (e.g. music). By “care” I mean take time to confirm that nothing OS-specific forms a basis for rights (e.g. seen as one machine under XP and a different, second machine under Vista, or not). Omar Shahine has a useful post about persistent application cache care and other concerns.

So, you have your current system backed up and your ready to repave.

First, restart your PC using your Windows operating system installation disc and not your existing OS. Select the existing system partition and perform a complete reformatting of this partition–nothing less than NTFS, of course. This reformatting should not affect any other partition or hard disk drive on your computer. Depending on the size of the system partition/drive, reformatting can take some time (i.e. window of opportunity to break for another activity of choice).

Next, install the software you require. Unlike looking over everything in your closet of garage before you get rid of it, take the time to consider whether or not you really need to restore a particular piece of software in your new computing home. If no compelling reason comes to mind, don’t install it–instead just save it for a later day (that may never come).

Finally, restore or apply your particular software configuration, app-by-app. Fortunately a growing amount of software provides an automated way to backup and restore user settings (e.g. Microsoft Office). For me, this also involves a review of my Start menu, Quick Launch bar, Windows environment variables, Windows Registry favorites, IE favorites, Firefox bookmarks, etc.

Once you have your new environment finally setup and configured to preference, it’s a good idea to create an image (e.g. built-in ImageX software on Windows Vista or third party software like Acronis True Image). By creating an image, should your system partition head south, you can restore your OS and applications back to a known state in minutes rather than hours. Of course, as your system changes over time, it’s worth periodically updating your system image.

One last tip: Increasingly I’m using virtualization as a means to partition my computing environments (e.g. I have several VMware-based virtual machine images for work-related projects). Virtualization allows me to keep my physical computing environment (i.e. host OS in VMware parlance) simple and more spartan. Virtual images compress well; so, I regularly archive these to my data partition/drive.

This process has served me well over the years. Fortunately as Windows has matured, my need to repave has decreased. Alas, it hasn’t gone away completely, though…  :-|

Dogfooding 101

Whether you like to think of it as “eating your own dogfood” or “drinking your own champagne”, you may appreciate the following succinct expression of why doing so is vital to your enterprise:

You sell what you know.
You know what you use.
You use what you have access to.

To be clear, “sell” isn’t merely limited to the traditional definition highly relevant to your sales force. In the context of creative, architectural and engineering staff, “sell” can be substituted with “innovate.” How can you innovate upon your current product offerings if you aren’t regularly using and stressing them?

Credit to Tod Tompkins for sharing this expression.

Stuff and information

Paul Graham’s essay last month, “Stuff,” really resonates with me. I strongly encourage you to take a few minutes and go read it. Good, isn’t it?!

Stuff appears to be a key contributing factor to the commoditization–er, evaporation–of my time. In fact, I can effectively replace “stuff” with “information” in Paul’s essay and feel equally downtrodden. I’m overwhelmed with information, probably just like you are.

To paraphrase and personalize some of Paul’s points:

  • Information has gotten a lot cheaper, but my attitude toward it hasn’t changed correspondingly. I overvalue information.
  • Once I’ve accumulated a certain amount of information, it starts to own me rather than the other way around.
  • A cluttered room [or computer file system or feed aggregator or ...] is literally exhausting.
  • Another way to resist acquiring information is to think of the overall cost of owning [or even just managing] it. The purchase price [or initial download, even free] is just the beginning. I’m going to have to think about the thing for years–perhaps even for the rest of your life. Every thing you own takes energy away from you. Some give more than they take. Those are the only things worth having.

I’m known to be a packrat, which has certainly saved me and others in the past. However, the burden that comes with this mountain of information (stuff) is wearing. Techniques I’ve described before end up involved more about paying in time lost than in real value gained (i.e. organization for no apparent long-term benefit).

Earlier this week I was meeting with several EMC colleagues to discuss the whole REST/POX/SOAP/RPC/SOA/ROA(/DOA) thing. During this candid discussion–a good subject for another post–someone remarked, and I’m paraphrasing, “Forget about organization; focus on good search. Organization is an intractable problem, and one that no one is willing to pay for to solve properly.” This gave me pause…so, how do I leverage search on the web and on my desktop? Has search truly replaced navigation for me? If not, why?

Back to Paul’s essay and the realization that I may overvalue information, I got to thinking about physical books, digital books and links to books online. Paper is pleasant to hold and read, but it can burn and consumes shelf space. PDFs are fine on a big display, but they require software to read (albeit free) and additional electronic storage themselves–not to mention that they’re fixed/frozen, not dynamic/living, in nature. Links consume far less storage then documents on my hard drive–even nothing when placed into del.icio.us–but they can break or become useful when my ISP decides to disappear. When I go offline, how do I access a particular document given only a link? When I’m away from my computer, PDA, smart phone, etc. how do I read my softcopy document? When I’m away from my home library and a nearby book seller, how do I thumb through a certain chapter for that particular key phrase or figure?

Given all my questions, I need something empirical to help me to change my ways. Ironically, it seems like more data could help my information overload. :-)

The kind of data I’m currently envisioning represents the number of browse, read and write related actions upon sets of electronic documents. For example, if I navigate to a folder that contains two documents but do nothing more, then each document gets a +1 in the browse column. If I navigate here again and open one of the documents, both documents get another +1 for browse and the opened document gets a +1 in the read column, too. If I edit the open document and save my changes, then that document also receives a +1 in the write column.

I say “columns” to represent this metadata due to my leverage of a useful Windows Explorer add-in (i.e. shell namespace extension), Folder Size for Windows, which presents a new Folder Size column within the main file system navigator:

 

On the other hand, I’m not sure that adding three columns of numbers would be terribly useful.

Fortunately there are lots of ways to project this kind of information. I circulated Visual Literacy’s A Periodic Table of Visualization Methods amongst my colleagues at work back in May and it garnered a fair bit of praise and admiration. More recently, Jeff Atwood blogged more generally about catalogs of data visualization. For example, maybe I could apply Crazy Egg‘s ”heat map” concept.

Perhaps I’m simply over-engineering the whole thing.

Taking a step back and returning to Paul’s essay, the following paragraph may represent the simplest way to my information tranquility:

A friend of mine cured herself of a clothes buying habit by asking herself before she bought anything “Am I going to wear this all the time?” If she couldn’t convince herself that something she was thinking of buying would become one of those few things she wore all the time, she wouldn’t buy it. I think that would work for any kind of purchase. Before you buy anything, ask yourself: will this be something I use constantly? Or is it just something nice? Or worse still, a mere bargain?

I’ve successfully applied this practice to physical books and music CD’s–I’m a sucker for both–but I’ve got a long way to go where general downloading and filing is concerned.

Update 8/24/2007: Not that TreeMaps are necessarily ideal, but I ran across a TreeMap-based disk drive content visualization software for Windows and MacOS recently: SequoiaView (Windows) and Disk Inventory X (MacOS).

Presentation has its price

Yesterday Laurence talked about the challenges that a multitude of interfaces can present a solution builder, specifically in the context of ECM, and today Billy added his thoughts. While both posts seem to be focused more on visual interfaces (UI) than non-visual interfaces, the concerns raised apply to interfaces in general.

Here are my thoughts:

  • I very much agree that it’s more a matter of should than can. Is the new UI or user experience relevant to my business? Does a new experience enable the retirement of any other experiences? Does a new experience lower training costs (e.g. is it more intuitive to my users)?
  • At some level, all user experiences from a vendor should be consistent. However, one must also consider where ultimate experience control resides. For example, I see at least two major categories of users where ECM applications are concerned: (1) those who prefer a standalone experience, typically within their web browser of choice, and (2) those who prefer that the vendor provide an integrated experience within the primary applications serving the business’s knowledge work (e.g. Office applications, a third party portal, etc.).
  • I agree with Laurence: UI should serve the task at hand; not the other way around. You have a job to accomplish and the provided experience should clarify and simplify that job–even anticipate next steps, etc.
  • How a business is run and wants to be run will determine whether or not a solution has one or more graphical/visual aspects. Knowledge work is becoming more specialized; so, each user experience should be tailored specifically to the particular link in the value chain it serves. Some have called this approach “purpose-built applications” or “task-centric experiences.” At the same time, there are horizontal (cross-cutting) concerns with visual needs, too (e.g. CIO dashboards, BAM, management consoles for admins, etc.).

When you provide presentation tier code as part of your solution–”whole cloth UI’s” as Billy calls them, you should acknowledge that users can be a fickle bunch (read: today’s Lexus experience will become a Yugo eventually–it’s a matter of when, not if).

So you should have a well-factored architecture that separates business logic and services, which serve all your UI’s, from application logic and services, which serve a particular UI (e.g. web-based, Office-based, etc.). Doing so, should produce a “thin veneer” for a presentation layer, which is easier to evolve or replace. Again, the UI serves the task at hand; over time, a new UI may serve the task better.