I've been creating software for over twenty years, primarily around helping people communicate and pushing the edges of user interface design.
1996 - now
Most recently, I led the MX initiative at Macromedia which unifies our tool, server and player software. Studio MX resulted from this effort, which has been adopted faster than any product in Macromedia history. About 4 million people use the tools we create, and over 400 million people have the client player technology we develop.
When I first joined Macromedia, I had the pleasure of defining and leading the creation of Dreamweaver with an incredibly talented development team, now led by Sho Kuwamoto. Since then I have helped develop many Macromedia products and businesses, including evolving Flash from animations to rich internet applications, and growing the team in the early days from two people (Jon Gay and Robert Tatsumi) to thirty times its size without losing its soul.
I've also championed efforts such as openly publishing the Flash file format, joining the W3C, helping to convince Netscape to be the first to bundle the Flash Player, starting our usability initiatives and mobile initiatives, and blending more server DNA into Macromedia with Allaire Corporation.
1992 - 1996
I don't have enough space on my server to write about all the stories and people at General Magic. It was an incredibly ambitious project to build handheld personal communicators supporting multimedia email, network services, and mobile agents, along with a platform for developers to build their own communicating applications.
We worked around the clock to build an entire communication system from scratch, building a new operating system, hardware platform, application framework, handheld user interface, applications, communication protocols, software modem, communications server, and communication application language. We did usability testing with hundreds of people from kids to grandmothers over these years, iterating on the interaction design. We shipped the Sony MagicLink personal communicator in 1995, which worked with an AT&T communication service, followed shortly by the Motorola Envoy wireless communicator. The company went public as we were delivering the first products.
The web was born while we were totally occupied in our own world. I remember the first time I saw Mosaic in the winter of 1993, which we had on a single machine that was allowed access through our firewall. I remember browsing around most of the web sites at the time (a couple hundred total), and thought it was pretty cool, but it wasn't as rich as FrameMaker's hypertext capability and certainly not as rich as the multimedia communications system we were building, and the content was really unprofessional. Of course, that was the beauty of it—anyone could put anything on the worldwide web using a simple markup language. You didn't need to get large companies to agree first.
After shipping the first devices, we began an effort to redesign the system to support standard internet technologies such as TCP/IP, HTTP, HTML, POP, MIME, etc., which looking back on it now was of course what we should have used in the first place. Many systems of the time were not using these protocols, such as CompuServe, AOL, or Microsoft (MSN was not a web site initially), but the interconnectedness and overwhelming growth of the web forced these systems to change to common standards.
1988 - 1992
I moved to California from Illinois, and joined up with Frame Technology, a small company led by Steve Kirsch which went public and was later bought by Adobe. I helped bring FrameMaker to the Macintosh, which was the first non-Unix version of the product—it ran on over twenty platforms at the time and had a terrific cross-platform architecture to enable us to share code across them all. I then led the core technology effort for Frame.
Our arch-enemy in the publishing space was a company called Interleaf. One of our easter eggs was in the spelling checker, which may still be there today—if your document contains the word "Interleaf" it will suggest you replace it with "FrameMaker".
We used primarily Sun workstations at Frame, and it was the first totally networked company I experienced. Before, network connections were occasional events, but at Frame it was always on. Well, except when the network was down. You could tell when this happened, because all the engineers would no longer be able to work and would instead begin wandering around the hallways.
Years before the web, FrameMaker supported hypertext and you could link documents to each other over the network—our internal team documents were all created this way. There was a lightweight viewer application called FrameViewer that you could use to view these pages and follow links, and a markup language called MML that you could use to author pages using human readable tags like <par> and <begintable>. Like many things, this was so very close to being what the web became but before internet access was common and without a free distribution model for the client viewer.
1984 - 1988
The Macintosh was introduced in 1984. I happened to walk by a television and saw the airing of the 1984 commercial during the Superbowl and it stopped me in my tracks. I remember the first time I used this machine, and a few things struck me initially:
First, there were two cursors—one was a pointer operated by a mouse and the other was an insertion point, blinking away. This seems trivial now, but up to this point all systems I'd used had a single cursor controlled by the keyboard and this was an entirely new level of interaction.
Second was the simulation of paper on the screen — rather than a black screen with green or amber text, this machine had a white screen with black text, and that text was in a wide number of fonts from Helvetica to Cairo! Some computers at this time still had only uppercase characters, much less a choice of fonts.
Next, the system was chock full of metaphors—applications and documents were tangible icons, disks looked like disks on screen, things were deleted by throwing them in the trash, and applications shared common elements like menu bars, dialog boxes, windows, and tools. Before this, most software was completely random, with each application defining its own ways of interacting with the user. There were now actual human interface guidelines for developers, and a common toolbox of functionality to make them easier to follow than to vary. I felt like it was a machine sent from the future.
That summer after high school some friends and I began developing software for the Macintosh, which at the time required using a Lisa. We were among the first third party developers, working from three-ring binders of photocopied documentation called Inside Macintosh. Developing applications at this time was quite challenging, and we used to meet with other developers in the Chicago area to demo our work and discuss it. This is when I first met Marc Canter and the folks at Macromind who were building VideoWorks, eventually to become Macromedia and Director.
The first commercial application I worked on was a graphic adventure game called Legacy which shipped in 1984. The game was so big we needed to use two 400K floppy disks to distribute it, and since the Macintosh did not have a hard drive, applications were run directly from the floppy disk. We had to invent a way to launch an application from one disk to another when the user advanced far enough in the adventure. The second application was a 3D modelling tool called Mac3D in 1985, using a technique for hidden surface removal called the Warnock algorithm (who later went on to create PostScript and found Adobe). The third application was a desktop publishing tool which was licensed to MicroPro in 1988.
During this same period of time, I studied computer graphics at the University of Illinois and worked in the Electronic Visualization Lab with advisors Tom DeFanti and Dan Sandin. I first encountered the PLATO system here, which had plasma-touchscreen graphics terminals that were a portal to a networked community of students and professors. It was supposed to be for teaching purposes, but of course the most popular applications were the discussion/chat areas and Avatar, a multiplayer adventure game which used so much time it was banned during the day. This was a strong virtual community, with users able to use part of their space to create accounts for new members, adding them to the community in a viral fashion.
1980 - 1984
Learned to program on a DEC PDP-11 minicomputer. My first program was written on Hollerith cards with a #2 pencil. I soon gained access to a wonderful VT100 terminal and created a large number of little applications in the morning, at night, during lunch, and at every other opportunity courtesy of Richard Nally and Ron Vavrinek.
One application was local email for users of the PDP-11, allowing us to leave messages for each other. Unfortunately, a common prank at the time was to send each other so much mail that it filled up that user's disk quota, causing the operating system to refuse to allow them to log off until it was resolved—a total hassle. A kind of early spam which resulted in the demise of the messaging app.
Another was a chess pairing application for competitions, which I designed using the command line metaphor of the PDP-11—users were presented with a simple ">" prompt and they could type in their command and arguments. This seemed so efficient and consistent with the rest of the computer's operating system, but was of course a total failure in terms of usability. The day of chess competitions, all the judges were having a horrible time with it, so I redesigned it during the matches to present far more effective multiple choice menu items. This was the first time I learned about the importance of usability testing, the distinction of learnability vs. usability, and the dangers of foolish consistency.
Most of these applications were short-lived experiments, though one, a simple contact list management utility that supported printing mailing labels, ended up being used for over a decade, stopping only when the PDP-11 was finally decomissioned. It also ended up becoming part of the office machines curriculum—I came in one day and discovered a classroom of students being trained on it.
This period was a boom in personal computing. All these new machines had wildly different operating systems with unique graphics, storage, and communications capabilities. A group of friends and I dived into writing software on most of the systems of the day, including the Apple II, Atari 800, IBM PC, TRS-80, Sinclair ZX80, Morrow MD2 CP/M, Commodore Pet and Commodore 64.
A Hayes 1200 baud modem was the gateway to the online world, which at the time was largely a loose confederation of BBS's (begun by Ward Christianson and Randy Suess in Chicago) that you could dial into if you found the numbers and your autodialer could get through the busy signals. There was also the CompuServe Information Service that charged by the minute for connectivity. CompuServe's CB Simulator was the first online chat system where you identified yourself by a handle, modelled on the citizen's band radio craze of the 70s. I spent too much money on CompuServe during this time, including playing an early online multiuser game known as Islands of Kesmai.
Pong and Atari 2600 delivered the wonders of Adventure, Space Invaders, Missile Command, Galaxian, Frogger and many others, transforming the television from a passive medium to a highly interactive one. Games continue to inspire my work in human-computer interaction design with their experimental designs balanced with their need to be quickly understandable and enjoyable.
Many thinkers and inventors developed the foundations that influence what we do today, with a tremendous amount of innovation beginning in the aftermath of World War II. Some that inspire me beyond the recent decade include:
As We May Think by Vannevar Bush (July 1945)
Man-Computer Symbiosis by J.C.R. Licklider (1960)
Spacewar by Stephen Russell, Peter Samson, Dan Edwards and Martin Graetz, together with Alan Kotok, Steve Piner and Robert A. Saunders. (1962)
Augmenting Human Intellect: A Conceptual Framework by Douglas Engelbart, SRI (October 1962)
Sketchpad: A Man-Machine Graphical Communication System by Ivan Sutherland, MIT (1963)
The Computer as a Communication Device by J.C.R. Licklider (1968)
The Xerox Star: A Retrospective about the team of Alan Kay, Larry Tesler, Charles Irby, John Warnock, Chuck Geschke, Charles Simonyi, Butler Lampson, David Liddle, Ed Satterthwaite, and many others at Xerox (1975-1981)
The Soul of a New Machine by Tracy Kidder, about a team building a new computer at Data General (1981)
Inventing the Lisa User Interface developed by Larry Tesler, Bill Atkinson, and the Lisa team at Apple (1979-1983)
Macintosh developed by Andy Hertzfeld, Bill Atkinson, Susan Kare, Bud Tribble, Burrell Smith, Mike Boich, Joanna Hoffman, Mike Murray, George Crow, Bruce Horn, Steve Capps, Caroline Rose, Jef Raskin, Steve Jobs and many more (1984)
The Desktop of Tomorrow by Norm Meyrowitz, Brown University (July 1989)
Information Management: A Proposal by Tim Berners-Lee, CERN (1989)
The Computer for the 21st Century by Mark Weiser, Xerox PARC (September 1991)