Network Appliance, Inc.-- 1999 to 2000
Network Appliance's sucessful NetCache line of network caching appliances are used by organizations around the world to cache (temporarily store) network-accessible data close to the consumers (end users) of that data.
To the end user this makes access faster, since the data is coming from a (relatively) local source rather than having to travel the length and breadth of the internet. To ISPs, network operators, and organizations that lease long-distance network lines, this reduces network traffic across internet trunks; resulting in higher effective bandwidth and lower capital and operating costs. Caching is particularly useful for global enterprises where field offices may not have reliable, high-speed access to the home-office servers, and to ISPs who wish to move large, high-demand, chunks of data such as video streams closer to regional clusters of subscribers.
NetCache appliances are usually rack-mounted in network equipment rooms, and are maintained by network administrators who typically also have to maintain routers, web servers, firewalls and other network equipment. Network administrators need to be able to access NetCaches both by web user interfaces and by terminal (command line) user interface, both onsite and from remote locations. In addition, it's highly desirable for trusted computers on the network to be able to "drive" NetCaches remotely. Particularly in large, geographically dispersed enterprises, this allows administrators to set up master computers to perform automated backups, performance measurements, scheduled "pushing" of updated data, and to monitor a system of NetCaches for trouble that might need an administrator's attention.
Despite the excellent performance and functionality of the NetCache hardware, customers were complaining that the web-based configuration and administratiion application was hard to use. At the same time, the competition's administrative web application(s) looked a lot better by comparison, and Network Appliance was preparing a major upgrade to the NetCache line -- with lots of new features that would need user interfaces. Clearly it was time to design a new web application from scratch, and Bill was hired to do this.
Bill made an exhaustive analysis of NetCache functionality, adminstrator tasks, and operational considerations, then architected a comprehensive, logical new web application which (as much as possible):
- made it possible for administrators new and old to find the features they wanted,
- led administrators to discover features they needed but hadn't known about,
- taught them the meaning and nature of each setting,
- had highly granular online help,
- gave sensible and in-context error messages,
- provided useful and comprehensive status and performance readouts,
- included a suite of essential troubleshooting tools,
- had quick page download times,
- was compatible with web browsers running on a number of platforms,
- could run on a wide variety of screen sizes,
- and was logically extensible for adding new features.
During this period Bill's assistance was spontaneously sought by several engineers responsible for developing new functional modules to help them work out dificult details of the feature sets, data structures, algorithms and paradigms for their functional modules.
And concurrently, Bill designed a complete command line interface (CLI) that paralled the functionality of the web user interface.
/p>The UI specification was delivered in the form of a complete, static prototype of the application implemented in HTML, which showed exacty how the pages should appear, be structured visibly, and laid out internally.
Despite the application having about 200 web pages and a five-level navigational hierarchy, it looks and feels much smaller and simpler. Below, you can see some screen shots of the prototype.
To play with a stripped-down version of the actual prototype, click here. Note that only a few pages are available on each tab, but each shows something different about how UI problems were handled.
The first thing you see after logging into the application is the Data tab, which shows you the current status of the NetCache and lets you review it's performance statistics. The rationale behind puttting this tab first is that over the long term the first question you'll almost always have is "is there any trouble with the cache?" and secondly "how had the cache been doing?"
After assuring yourself that all is right with the cache, the next most common reason you'd log into this application is to perform routine maintenence, such as backing up the configuration, or to install updates to its firmware, disk configuration, etc.
Here's where most of the user interface is buried. This is where you configure the myriad features of the NetCache. When you first set up your NetCache you'll spend most of your time here, but long term, once you've got your NetCache set up the way you want it, you'll probably spend most of your time on the Data and Maintenence tabs.
This tab contains all the built-in troubleshooting tools.