Saw this at the used bookstore, and it looked sufficiently interesting that I picked it up. Ullman worked as an independent computer programmer contractor throughout the dot-com years, and this book is a sort of memoir of her dedication to the machine, sometimes at the cost of losing track of the people involved. She confronts the problem I mentioned where real users are so much more messy than dealing with the software:
Before this meeting, the users existed only in my mind, projections, all mine. They were abstractions, the initiators of tasks that set off remote procedure calls; triggers to a set of logical and machine events that ended in an update to a relational deatabase on a central server. Now I was confronted with their fleshly existence… I wished, earnestly, I could just replace the abstractions with the actual people. But it was already too late for that. The system pre-existed the people. Screens were prototyped. Data elements were defined. The machine events already had more reality, had been with me longer, than the human beings at the conference table.
And even after meeting the users, it doesn’t take long to fade back into the code zone, where she boils their objections down to easily makeable changes to the code. Her meditations on programming are pretty observant, I thought. One passage I particularly liked was comparing the internet to a spreadsheet:
What is it about the Internet, with its pretty graphics and simple clicks, that makes users feel so inundated; and about the spreadsheet – so complicated a tool – that makes them bold? The received wisdom about user-friendliness is challenged here. Human beings, I think, do not like to be condescneded to.
The spreadsheet presumes nothing. It has no specific knowledge, no data, no steps it performs. What it offers instead is a complex vocabulary for expressing knowledge. It is, literally, a blank sheet of paper with a notion of columns and rows – and everything held on that sheet is presumed to come not from the program but from the human user. In the relationship between human and computer that underlies ths spreadsheet, the human is the repository of knowledge, the smart agent, the active party. The user gives data its shape – places it in columns and rows – and eventually turns data into more knowledge. It is the end user who creates information, who gives form to data, who informs the spreadsheet.
This is a stab in the back to most user-friendly design guides I’ve read. And it makes a lot of sense. Insulting the user’s intelligence is not a good thing – that’s why everybody hates the Microsoft paper clip. People don’t necessarily want things easier, to be talked down to. They want things sensible. It’s all about consistent usable feedback. The spreadsheet is a great example. The idea of leaving the user in charge is a point I am pondering a lot in the design of the user interfaces I’m helping to develop at work.
The book was a surprisingly touching meditation on the life of a programmer in the dot-com era, when unreality always beckoned. When it didn’t seem unreasonable that everybody knew somebody who had made millions. When people really believed that computers would change everything. Unfortunately, the computers eventually ran into the reality of people, and slammed to a halt. People change slowly. They will adopt new technology, but only if it fits into their life. This is why radically new technology and ideas typically have to wait twenty years for a generation of kids to grow up with those tools. Anyway. Good book. Interesting thoughts. Good writing.