Heroes of software design
Bill Atkinson is probably one of my biggest heroes of software design (Steve Wozniak and Burrell Smith being my heroes of hardware). Another one of my heroes of software (or really computing) design is Douglas Engelbart. In my mind the time frame from one to the other was huge, but it's really only 15 years or so - and Bill met Douglas Engelbart - astonishing!
So, I said at '68, the windows and mouse were invented by Englebert, and I actually went to visit Englebart. It was a wonderful visit, and I think he gave a really good argument which was that when you design for the beginner, sometimes you shortchange the experienced user. If you were designing only for a walk-up-and-use-it experience, you would never design a bicycle because it takes a while to learn to use a bicycle, although it gives you good power. So, he was designing more for a professional knowledge worker, and he's willing for people to learn this five-key chord thing and lots of new ways of working with stuff.
Now very few of the facts in the interview were news to me like that, but discussed as such a compact timeline of the birth of the GUI and desktop application as we know it (taking in the foundational elements of Engelbart's NLS and Xerox Parc's Smalltalk) makes a number of things really stand out. Those notes are below, along with some nice little one liners I have quoted or paraphrased.
- The entire design of what is used productively today on every PC in the world was designed by technology people. I mean *really* technical people, but people who also really cared about the purpose - how it would help peoples' lives. Today many environments don't allow their technology people to design a newsletter without some sort of external designer or consultant, and by organising this way we discourage technology people from becoming engaged and involved - instead restricting themselves to mechanical implementation.
- Sometimes you do a lot of work just to throw it away - but the later things you do wouldn't have happened any other way. And you never know which is going to be the important thing that flops, the thing that just flops, or the thing that succeeds - so you have to put your all into it anyway. The Lisa was a total flop. Everyone knows that. But Apple spent a lot of time investing in the Lisa product, and the legacies of that were Bill Atkinson's (and other's) familiarity with the 68000, the foundations of QuickDraw, the testbed hardware for the mouse driven GUI, etc.
- You're never too busy for a fun outing. Imagine if Steve Jobs et al had been "too busy" to take a tour around Xerox Parc. They would be forgiven for saying their filofax was full.
- Your biggest competitor is not a big corporate, it's a three person research team
- Computer processing cycles aren't valuable. People's time is valuable.
- If you find yourself thinking "what would anyone use that for?" think harder ("Apple was offered lock, stock and barrel exclusive
rights on a spreadsheet for $50,000, and they turned it down. ... What would anyone use it for? They could have owned the whole spreadsheet concept.")
- Sometimes the crazy genius is right instead of the conservative committee.
- Sometimes your boss is wrong and he'll thank you later for ignoring him (Steve Jobs insisted that "the Mac would only be 128K ever, and that it was not okay to have it expandable to 512. Actually, Burrell went behind Steve's back to make it so there was one trace you could cut, and you could stick in the 512K chips. Steve later had to apologize and say he was wrong. ")
- Think about things a lot. Try some things. Try different things.
- Some mistakes you make will stick around for a very long time (Atkinson: Well, a design I regret is the double click.)
- Sometimes a non-optimal solution is the best one.
- Brain surgeons are really smart.
- Code should be beautiful (Atkinson: I would spend time rewriting whole sections of
code to make them more cleanly organized, more clear.)
- Code comments shouldn't have to say what something does - instead should say why it is being done.
- Employ great graphic designers and writers.
- Having to teach somebody how a piece of software works forces you to clean it up.
- Sometimes you make a product better by leaving features out.
- technology is very cool, and
there's beauty in the software, but software is ultimately a human experience.
- If you want to get it smooth, you've got to rewrite it from scratch at least five times.
And have a lot of user testing. Because you can't see the things that you can't see.
Footnote: It's interesting that Grady starts using the word 'heroes' part way through the interview, because I had already come up with the title for this blog before I got that far.
Benchmarking a 1986 Mac
Classic - literally.
For the functions that people use most often, the 1986 vintage Mac Plus beats the 2007 AMD Athlon 64 X2 4800+: 9 tests to 8! Out of the 17 tests, the antique Mac won 53% of the time! Including a jaw-dropping 52 second whipping of the AMD from the time the Power button is pushed to the time the Desktop is up and useable.
Is this to say that the Mac Plus is a better computer than the AMD? Of course not. The technological advancements of 21 years have placed modern PCs in a completely different league of varied capacities. But the "User Experience" has not changed much in two decades. Due to bloated code that has to incorporate hundreds of functions that average users don't even know exist, let alone ever utilize, the software companies have weighed down our PCs to effectively neutralize their vast speed advantages. When we compare strictly common, everyday, basic user tasks between the Mac Plus and the AMD we find remarkable similarities in overall speed, thus it can be stated that for the majority of simple office uses, the massive advances in technology in the past two decades have brought zero advance in productivity.
I wouldn't say zero - the pivot table alone has improved savvy spreadsheet users efficiency a lot, and they didn't mention that Word 3 didn't have any real table support. But that's not really the point. It's still outrageous how little improvement the average user of office productivity software has gained from the billions expended on so-called software development.
Incongruous search terms
I noticed a disturbing search term this month though:
evolution of programming languages in power point
What are they thinking??!
Of course should they be interested in programming languages they will find a feast in this blog: perl, SQL, ruby, emacs elisp, smalltalk, java, C, 6502, arm,NLS, Cocoa/Objective-C, future issues for theoretical computer science and even visual basic! I'm sure there's more there, and erlang and haskell are sure to follow...
But *never* will there be a good thing to be said about powerpoint on this blog :)
Keyspan remote + EyeTV + iTunes
All you need is a mac, some powered speakers, and a screen. Now this is nothing new - people have been doing it with Mac Minis ever since they were released. I prefer a laptop since some things are just easier to do with a keyboard and mouse - and I can do them without stopping playback on the main display.
One thing that was missing was unifying control - by that I mean sitting on my couch, using one remote to do everything without getting up. What point is home entertainment if you can't drive it from your couch?!
There's a bunch of projects that aim to do this, but I wanted something simple. No on-screen menu, just the standard features from a remote.
So I bought the excellent Keyspan Express remote. I would have preferred an RF remote (rather than infra-red), but the affordable RF models have less buttons.
Then the challenge was to use the limited number of buttons to achieve an understandable (to non-technical people) set of functions that would let you do most things.
Over some coming posts I'll explain what actions I chose for what reasons, but the curious can take a look at some applescripts in the mean time.
Blog Categoriessoftware (40)
..heads up 'tunes (5)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
Book Review (2)