Bookshelf
This page describes
many of the books that I have found useful in my work. Many of
the references from Front Panel
are listed here, with a short review. I have divided the books
into three categories:
Usability
Designing
for Small Screens by Studio 7.5
Ava Publishing SA, 2005. ISBN 2-940-373-07-8 Purchase
it from Amazon. Purchase
it from Amazon UK.
This book is lavishly
illustrated with sparse text, and often feels more like reading
a magazine than a book. It addresses mobile phone, PDA, game console
and other interfaces where the physical size or the resolution
means that the designer is dealing with a more limited interface
than that available on the desktop.
The coverage of usability
principles is not in-depth. For many topics, just as you feel
it is starting into something interesting, it switches topic leaving
the reader feeling short changed. For example, text input should
be a huge topic for these devices, but the topic only receives
a half dozen pages. Some other usability topics, such as paper
prototyping get discussed in spite of the fact that there is nothing
to say about it which is specific to small screens, and so the
topic should have been left to other usability books.
However this book has
one huge strength. It has an enormous amount of examples of real
consumer products. Many of them are from the Japanese market and
would not be familiar to western readers. This makes the book
a great browse when looking for new ideas on basic format. While
showing so many current devices means that the book will date
quickly, this huge array of examples, and the fact that there
are no other books out there addressing the topic of small screen
design, makes the book reasonable value for money.
The
Humane Interface by Jef Raskin
Adison-Wesley, 2001. ISBN 0-201-37937-6 Purchase
it from Amazon. Purchase
it from Amazon UK.
The Humane Interface
is an excellent book by the inventor of the mouse and the creator
of much of the macintosh interface. He has a unique insight into
how a better user interface us created.
The book is made up
of two halves. The first investigates certain principles for usable
design. There is some analysis of the amount of effort (e.g. keystrokes,
mouse movements etc.) it takes to perform an interaction and uses
this to select between possible interfaces. One interesting example
shows a forward and backward radio button, and a search button.
The author points out that dropping the radio buttons and having
a ‘search forwards’ and ‘search backwards’ button would simplify
the interface and reduce the human effort to do a search.
The second phase of the
book presents a number of proposed improvements to the conventional
desktop. Some of these ideas are excellent, like the idea, credited
to the EMACS editor, of beginning a string search as soon as the
first character of the search-string is entered. This means that
you often select your desired target before you complete typing
the search string.
Other ideas discussed,
I think are a bit too radical. He discusses ZoomWorld, an interface
where you have a distant view of a flat set of files, with, for
example, the titles and sections of documents visible. The user
could then scroll and zoom-in to view a subset of the material or
a particular document. While such an interface may be a match for
specific applications, I do not see it as a feasible option for
general purpose computer use. However, these more radical ideas
are great food for thought if you are faced with new and challenging
interfaces to design. This is why the book is a good read for embedded
designers. The PC designer who is confined to the restrictions of
conventional PC programming does not have the option to consider
most of the ideas in this book, because they contradict the Microsoft
model. Embedded programmers may have fewer tools available, but
they have a free hand on any UI conventions they choose.
The ideas presented in
this book may not be instantly usable in the presented form, but
they show great insight into how usability problems should be tackled.
The book also makes fascinating reading because so many of the problems
discussed are the same problems we face every time our PC makes
a simple activity hard.
Designing
Visual interfaces by Kevin Mullet and Darrell Sano.
SunSoft Press., Mountain View, CA, 1995. ISBN 0-13-303389-9
Purchase
it from Amazon. Purchase
it from Amazon UK.
This book focuses on
the appearance and layout of the user interface, with little coverage
given to interactivity. The narrow focus of the book allows it
to explore the subtle effects of layout in great detail. Topics
such as alignment of elements and symetry seem simple, until you
see how many interfaces get these things wrong.
Since the book focuses
on the purely aesthetic element of GUI design, of the texts reviewed
here, it is probably the most alien to computer programmers, and
for that reason the most valuable. Most programmers will think about
interactive interfaces in terms of how many steps it takes to achieve
a goal, but it is not in the character of engineers to think that
appearance matters. But it does. It matters because a good layout
allows the user to absorb more information in less time, or to find
the one item of information that matters to them. It also matters
because the feeling of wellbeing experienced by the user because
the interface was easy on the eye helps the overall experience and
helps sell the product.
While reading this book,
I thought that many of the topics were slightly too abstract to
apply in practice, but the next time I was involved in a GUI design,
I realized how this book improved my ability to detect bad layout
- overall highly recommended reading if you a have to do GUI layout
design, whether you are an engineer or a graphical designer.
Designing
from Both Sides of the Screen by Ellen Isaacs and Alan Walendowski.
New Riders Publishing., Indianapolis, Indiana, 2002. ISBN
0-672-32151-3 Purchase
it from Amazon. Purchase
it from Amazon UK.
This book is authored
by a software engineer and an interaction designer. Throughout,
the reader is given both points of view when solving problems
where there is a tradeoff between programming effort and improved
usability.
The introduction of this
book iterates through a set of GUI design principles with examples
from various web sites and Windows applications. There is an emphasis
on the amount of physical and mental effort imposed on the user
to achieve a goal - this is a point of view I have not seen in other
usability books, and it is quite interesting.
The majority of the rest
of the book focuses on one particular project - and Instant Messaging
application. The fact that this application runs on a Palm Pilot
as well as on Windows means that there are many cases where the
designers have to consider the small amount of pixels available
on the Palm. This makes much of the discussion more relevant to
the embedded engineer than it would have been otherwise - since
many embedded products have small GUIs.
The IM project is described
at all phases of design, and then the user trials. The design went
through many iterations of improvements, which gives valuable insight,
since many books present examples of final products, but you are
left with no sense of how they got from a blank page to the final
brillian (or lousey) design.
The emphasis on one project
means that the examples are less diverse, but it does means that
examples are realistic, and always in the context of the entire
project. I often feel that I learn some lessons from each of the
projects that I have worked on. After reading this book I feel that
I gleaned some of the valuabe lessons from the authors' project,
without having been a part of it. Few books manage that.
Overall the usability
lessons here are not that advanced, but the fact that they are put
in the context of a complete project makes is a valuable read. I
think it would be an ideal first book for someone starting to explore
GUI design, be they engineer or interaction designer.
About
Face: The Essentials of User Interface Design by Alan Cooper.
IDG Books Worldwide Inc., Foster City, CA, 1995. ISBN 1-56884-322-4
Purchase
it from Amazon. Purchase
it from Amazon UK.
This book is one of
the best books around on usability. Much of the discussion is
devoted to different variations of Windows, but the discussion
is general enough to apply to any graphical user interface. Cooper
has an uncanny insight into the way users of all levels think.
Even if your only interest in user interfaces is as a casual Windows
user, you will find fascinating explanations of why many of the
features work the way they do. In some cases Cooper describes
at length alternative mechanisms that Microsoft could have employed.
Some of this discussion might be considered academic, in that
Microsoft are unlikely to change to follow many of these suggestions,
but the principles being applied to come to his conclusions are
still an education on general usability.
There is an excellent
exploration of the difficulties inherent in making the user aware
of the file system. Cooper contends that this is the single biggest
barrier to software usability for the novice, because most do
not have any mental model of what directories are. He distinguishes
the types of user: the novice versus the expert, the mouse user
versus the user who prefers keyboard control and so on. In a similar
fashion applications are broken down into categories. Some applications
dominate the user and occupy the whole screen, others are transient
and are more appropriately run in a smaller window, for a short
time. Other applications run in the background, only occasionally
interacting with the user.
Cooper is a good critic
and many of the examples he uses are familiar to us from our own
PC's. Exploding an application into many windows, that waste valuable
screen real-estate on borders and scrollbars, is one of the crimes
he punishes most severely.
The weighty volume
runs to 580 pages, but Coopers anecdotal style makes it quite
readable. If you only ever read one book on usability, read this
one.
The
Inmates are Running the Asylum by Alan Cooper.
Sams, Indianapolis, Indiana, 1999. ISBN 0-672-31649-8
Purchase
it from Amazon. Purchase
it from Amazon UK.
In this book Alan
Cooper makes the case that engineers are not the best judges of
the usability of their own work. Seems a simple notion. Cooper
makes it well worth a complete book with many anecdotes from his
own usability work. In the process he introduces many good examples
of design and design processes.
The focus of this book
is very different from Cooper's more technical tome, About
Face, which dealt purely with desktop, windows based interfaces.
The Inmate are Running the Asylum deals with more diverse
products and many of them are embedded systems. - an area where
many users are screaming for fewer features, but more usability.
One gem in this book
is Cooper's description of a better way to crop an image. On a
typical PC application you draw a rectangle around the area to
be cropped by dragging the mouse corner to corner. However, if
one edge is wrong you have to deselect and start over. Cooper
provides a solution where each side is adjusted individually -
seems so obvious after the fact.
Cooper draws a great
distinction between interaction design and after-the-fact usability
studies. He also provides good insight into the conflicts and
misunderstandings that arise between software engineers and usability
professionals (or marketing departments) in their attempts to
improve a product. An excellent read.
The
Design of Everyday Things by Donald
Norman.
DoubleDay, New York, NY., 1990. ISBN 0-385-26774-6
Purchase
it from Amazon. Purchase
it from Amazon UK.
No list of books on
usability would be complete without a mention of a book that was
originally entitled, 'The Psychology of Everyday Things'. Norman
discusses the use of many of the items that we use all of the
time. Kettles, cars, radios, and even things as simple as doors
are examined to see if the designers really gave some consideration
to the people who would have to use their inventions. While computers
are mentioned only briefly the broad principles of good design
discussed here are very applicable to software controlled user
interfaces.
Norman's emphasis
is on the way people think about things. There is much discussion
on improving visual clues to aid the user in making the right
choices. Some of the examples are quite simple. In one case a
row of light switches is changed to a layout that represents their
position in the room. So logical, but so rarely done in the real
world.
Norman sharply criticizes
the industrial designers who have given us buildings and tools
that are designed to look good, but often hide their function
in the interest of having smoother lines, or a more abstract shape.
Norman gives many examples of the cues that people take from appearance.
For example a horizontal handle on a door suggests that you push
it, while a vertical handle suggests that it should be pulled.
Norman devotes one
whole chapter to mistakes, since he correctly assumes that many
of us spend a large portion of our lives making them. He divides
errors into a number of categories depending on whether the mistake
was a bad decision or an unintended slip. He then discussed
how devices can be made error proof. He discusses forcing functions.
This is the property of blocking an action which might be troublesome.
For example car locks could be designed so that the car has to
be locked from the outside with the key, forcing the owner to
have their keys with them when they lock the car. This would prevent
may cases of people locking their keys in the car.
Overall this is a
very easy read, and is worthwhile for anyone who, at any stage
in their lives, has to use anything.
The
Invisible Computer by Donald
Norman
MIT Press, Boston, 1998, ISBN 0-262-14065-9 Purchase
it from Amazon. Purchase
it from Amazon UK.
After reading "The
Design of Everyday Things", this is a big disappointment. Norman
has two main ideas in this book, and they seem quite unrelated.
One is that many of the jobs performed by the PC will be passed
on to 'information appliances', such as a dedicated word processor,
web browser, music system, etc. He is unconvincing here, as the
examples are not solid enough to convince me that having a separate
physical device will be sufficiently different from the keyboard/mouse/screen
format to have advantages over a standard PC. Certainly none of
the examples suggest anything new. Items such as in-car computers
and wearable computers have been researched, and discussed in
the press many times before. The second idea he discusses is the
evolution of PC technology from a technology driven industry to
a consumer driven one. In the process he points out many of the
difficulties of the modern PC, but again his solution, the information
appliance, is unconvincing. A better interface to MS Word will
not suddenly appear because we have packaged the word processor
system separately from the home games system and the e-mail system.
Unfortunately much of the book is given over to the discussion
of the evolution of technology industries, which is mildly interesting,
but is certainly not what you would expect from reading the marketing
information on the cover. Overall, it has all been said before,
and most of it said better, even by Norman himself.
User
Interface Design by Harold Thimbleby.
ACM Press, New York, New York, 1990. ISBN 0-201-41618-2
Purchase
it from Amazon. (hard to get)
Thimbleby defines
many properties of user interfaces allowing the reader to become
better at recognizing those properties in his own interfaces,
and allowing those properties to be sought or avoided depending
on the needs of particular application. For example an interface
that provides only one path to follow, as in a question and answer
session, is considered directed. An interface that provides
more choice in considered less directed.
This book takes a
very mathematical approach to usability and describes many attributes
of user interfaces in terms that would more usually be used to
describe a computer program. For example the commutativity property
in mathematics means that the result, of say addition, is the
same regardless of the order in which the operations are performed.
The same property may be present in an interface. On a text window,
moving a cursor right and then left has the same result as moving
it first to the left and then to the right. This text window is
displaying the property of commutativity, though the programmer
should be conscious of whether this property is lost as the cursor
reaches the ends of the line of text.
While Thimbleby's
approach might seem a bit too theoretical for some, this book
will definitely make you think about interfaces in a different
way. After reading this book you will realize that there is as
much science as art to designing a good interface.
Usability
in Practice: How Companies Develop User Friendly Products,
edited by Michael Wiklund.
Academic Press, Cambridge, MA., 1994. ISBN 0-12-751-250-0
Purchase
it from Amazon. (hard to get)
This book contains
chapters written by usability professionals in a number of prominent
companies: Hewlett-Packard, Eastman Kodac, Apple, Microsoft, American
Airlines among others. Each writer describes the companies policies
and strategy in the area of usability, and the resources allocated
to it. The emphasis in this book is not on usability itself, but
on how to manage a usability program. It offers many revealing
insights into real approaches to usability in many companies.
The
Trouble with Computers: Usefulness, Usability and Productivity
by Thomas K. Landauer.
MIT Press, Cambridge, MA. 1995 ISBN 0-262-12186-7 Purchase
it from Amazon. Purchase
it from Amazon UK.
This book gets fewer
points for usefulness than the other books in this category, but
much higher points for being interesting. The book puts forward
the controversial thesis that computers have not really contributed
to the economy. Companies are not getting a better return on the
dollars that they put into technology, than they did when the
companies investments did not include computers. Some of the technology
provides competitiveness, rather than actual productivity. For
example the advent of automatic teller machines did not add to
the banks productivity much, since the staff which were freed
up from dealing with customers, were replaced by the staff maintaining
the machines and the networks that they depend upon. Competitiveness
dictated that once one bank had one, they all had to have one,
and so the total number of customers that any one bank has is
not going to change. The technology is installed simply to maintain
the status quo.
While some of Landauer's
arguments are sound I would take issue with some of them. For
example the automatic teller machine provides a convenience for
people that is not expressed on the bottom line for the bank.
That may not be good for the bank, but it is definitely good for
people. Anyone working in the technology industry who ever wondered
if they are really making a difference will find this read an
eye-opener.
The
Icon Book by William Horton.
John Wiley & Sons, New York, MA. 1994 ISBN 0-471-59901-8
Purchase
it from Amazon. Purchase
it from Amazon UK.
This is not strictly
speaking a usability book, but I have included it because I have
found it so useful. As a software engineer I consider designing
icons to be a graphic designers job. However on many occasions
software engineers have to design, convert or comment on icons,
if the suitable graphics talent is not available.
This book provides
valuable insight into the tricks of drawing pictures with a small
number of pixels. It also discusses a variety of looks, or themes
that a set of icons may have. It discusses basics like the use
of color, and more subtle cues such as emphasis and symmetry.
It also discusses the relationships between different icons that
form a set within one product. Most importantly the book contains
enough examples to get the creative juices flowing.
Information
Appliances and Beyond edited by Eric Bergman.
Morgan Kaufmann Publishers, San Francisco, NY. 2000 ISBN
1-55860-6009 Purchase
it from Amazon. Purchase
it from Amazon UK.
This book is a collection
of essays from developers of a number of information appliances,
in the broadest meaning of the term. There is a chapter on each
of the Nokia mobile phones, Psion, Windows CE and the Palm Pilot
as well as a number of less well know devices. Like many compendiums
there are good chapters and not so god ones, and some chapters
where the author does a certain amount of flying the company colors,
but overall this is a good buy.
A lot of the discussion
revolves around design decisions made in the course of development.
An interesting contrast can be seen between PSION and Palm, on
one hand and Windows CE on the other. The Psion and Palm camps
try to make things much simpler than the PC, even if that means
throwing out concepts that PC users would be familiar with. Windows
CE developer go to the other extream where compatability with
the mental model formed while using MS-Windows is kept intact
whereever possible, even when it may not be appropriate to the
smaller format.
The book is not a design
guide for information appliances, but offers interesting insight
into the development of some of the most important small interfaces
on the planet. It is a topic that is sparsly covered elsewhere.
Programming
Writing
Solid Code by Steve Maguire.
Microsoft Press, Redmond, WA, 1993. ISBN 1-55615-551-4
Purchase
it from Amazon. Purchase
it from Amazon UK.
This book describes
in a very down to earth fashion many of the biggest problems faced
by programmers. While this text is geared towards C programming,
the lessons are generic enough to be applied to any programming
language. Maguires address the issues of using assertions to confirm
that the program is functioning as expected, testing and debugging
strategies, making the best use of compiler options and warnings,
and designing robust function call interfaces. Everyone who wishes
to write industrial strength programs should read this book.
The
Art of Programming Embedded Systems by Jack G. Ganssle.
Academic Press Inc., San Diego, CA, 1991. ISBN 0-12-274880-8.
Purchase
it from Amazon. Purchase
it from Amazon UK.
This book is an ideal
primer for newcomers to the world of embedded systems programming,
while at the same time assuming that the reader has some programming
experience. The areas of interrupts, memory management, real time
operating systems and handling I/O devices are all discussed.
Signal filtering is a topic that most desktop system programmers
will not be familiar with, but it is the bread and butter of a
lot of embedded systems. Some of the mathematical routines such
as square roots and sine functions are also explored, since on
many embedded systems you can not afford to use the routines supplied
from a standard library, if there are any. The reason is that
you sometimes want to carefully tune the trade-off between speed
and accuracy.
While this book does
not break any new ground, it provides a very good introduction
to the world of embedded systems programming for the newcomer,
and may help fill a few gaps for the not-so-newcomer.
Zen
of Graphics Programming by Michael Abrash.
The Coriolis Group Inc.,Scottsdale, AZ, 1996. ISBN 1-883577-89-6
Purchase
it from Amazon. Purchase
it from Amazon UK.
(Republished as "Graphics
Programming Black Book")This book is a collection of columns written
by Abrash for Dr. Dobbs since 1990. It contains a huge wealth
of information for anyone who programs VGA devices directly. While
this may becoming a dying art on desktop computers with Windows
tools and libraries being the easier alternative, some VGA programming
is necessary for high speed games. Abrash worked on the game Quake
and dedicates a chapter to it here. Many embedded systems will
directly control the VGA device, since the commercial libraries
may not be available for the combination of hardware and operating
system in use.
My one small criticism
of this book is that it is exceedingly long, sometimes because
Abrash trails off into anecdotes and war stories. While these
do make the text less dull, it can take quite some time to get
through a chapter.
Encyclopedia
of Graphics File Formats by James D. Murray and William vanRyper
O'Reilly and Associates., Sebastopol, CA, 1996. ISBN 1-56592-161-5
Purchase
it from Amazon. Purchase
it from Amazon UK.
This is the difinitive guide to graphics file formats. The book
includes a CD with the entire text of the book and a number of
programs to manipulate and convert the formats discussed. Apart
from the sections on every graphics format you could think of,
part 1 explains the principles of storing graphics and format
conversion.
Design
Principles for Interactive Software edited by Christian Gram
and Gilbert Cockton.
Chapman & Hall,
London, England, 1996. ISBN 0 412 72470 7. Purchase
it from Amazon. Purchase
it from Amazon UK.
This slim volume also
takes a formal approach to the design of software for user interfaces.
Here the influence is not quite so mathematical. The book divides
its attention between the software construction and the design
of the interactions. A number of properties, such as flexibility
and robustness are identified for a number of example interfaces.
The interesting point is made that some user interface design
tools may support, or enforce such properties.
There is also an interesting
treatment of software architecture. Most user interface designers
have come across the Model-View-Controller paradigm at some point,
but this book covers a whole range of alternative approaches.
While a number of the approaches are similar to the Model-View-Controller
paradigm, with a couple of extra layers added, to remove the application
even more from interaction, it is an education to see how they
can be applied.
Overall, the language
used in this book is quite dry; it is not a lighthearted read.
But if you persevere you will be well rewarded by the taught provoking
ideas that it contains.
Digital
Audio Processing by Doug Coulter.
R&D Books,
Lawrence KA 2000. ISBN 0 87930 566 5. Purchase
it from Amazon. Purchase
it from Amazon UK.
As a newcomer to the
world of software for audio processing I found Doug Coulter's
book an engaging introduction to this area. The area is, by its
nature, very mathematically challenging, and Coulter does a good
job of making it approachable with his conversational light-hearted
style. The accompanying CD provides a sound wave editor. The most
useful part of this is that you can apply a particular filter
or effect while you are reading about to get a better feel for
the transformation beyond its mathematical definition. Sure to
become a classic in its niche.
MicroC/OS-II
by Jean Labrosse.
R&D Books,
Lawrence KA 1999. ISBN 0 87930 543 6. Purchase
it from Amazon. Purchase
it from Amazon UK.
MicroC/OS is an RTOS that is provided on the companion disk
of this book. The book itself describes the workings of the RTOS
along with plenty of rational on the way this RTOS is designed.
It is an excellent introduction in that the RTOS is small enough
to get to grips with, and yet complete enough tobe used in real
projects, and judging by the number of platforms that this kernel
has been ported to, it has been used in many real projects.
This is probably the most popular free RTOS in the world, though
it does need to be licenced for commercial use. Compared to most
books on embedded systems, this book choose to concentrate solely
on the single topic of the RTOS and benifits greatly from being
so focused.
I used MicroC/OS in my own book, Front Panel, and it was the
ideal choice for that project.
Safety
Safeware,
System Safety and Computers by Nancy Leveson.
Addison-Wesley
Publishing, Reading, MA, 1995. ISBN: 0-201-11972-2 Purchase
it from Amazon. Purchase
it from Amazon UK.
This book provides
a thorough treatment of the area of safety related computer systems,
covering many incidents, as well as detailing the analysis techniques
that can be used during the design phase to reduce the risk associated
with the final system. Leveson takes a very scientific approach
to this area defining many terms in great detail. Many of the
incidents discussed are analyzed to find the root cause of the
accident, which is often a failure of the system or of management,
rather than a simple case of identifying a failed component, or
identifying one individuals incorrect actions. The benefit of
this is that the conclusions can easily be transferred to industries
other than the one involved in the accident described.
This is a very highly
researched book, and the reader is not left with any loose ends.
All of the hypotheses proposed are backed up by references to
work by Leveson herself, or by others. While reading this book
is heavy going in some places, it reflects the complexity of the
area. It is vital reading for engineering professionals involved
in any life-critical projects.
Computer
Related Risks by Peter
G. Neuman.
Addison-Wesley,
Reading MA, 1995. ISBN 0-201-55805-X Purchase
it from Amazon. Purchase
it from Amazon UK.
Peter Neuman is the
moderator of the comp.risks
newsgroup, and as such is familiar with a huge array of computer
related accidents. This book chronicles many of those incidents.
While this book lacks the in depth analysis of Leveson's Safeware,
System Safety and Computers, it provides a valuable source
of information. Because the incidents are described in full, they
are almost as readable as short stories, making this an easy book
to dip into when a particular topic strikes your interest.
This book contains
chapters on privacy and financial security as well as covering
the more obvious areas or risk, such as the medical and aviation
industries. While you may learn a lot from your own mistakes,
it can often be more expedient to learn from other's, and this
book provides many opportunities to do just that.
Human
Factors in Alarm Design and Human Factors in Nuclear Safety,
both by Neville Stanton.
Stanton, Neville,
'Human Factors in Alarm Design', Taylor & Francis Ltd., 1994.
ISBN 0-74840-0109-1 Purchase
it from Amazon. Purchase
it from Amazon UK.
Stanton, Neville,
'Human Factors in Nuclear Safety', Taylor & Francis Ltd., 1996.
ISBN 07484-0166-0 Purchase
it from Amazon. Purchase
it from Amazon UK.
Books on usability
often concentrate on the topic of how the user instructs the machine
and on how the machine responds to those instructions. Events
that are not a response to the users actions, such as alarms are
neglected. In these two texts Stanton redresses the balance. Many
of the usability issues that arise when designing the alarm annunciation
system are discussed. Should alarms be visual, audible or both?
Should they be color coded? Can you assume that the user is at
the machine, or could the user be in another room? How do operators
react to too much information?
Stanton's books address
these questions with many examples for real life and academic
studies. A little dated, but generally both well worth reading. The Software IP Detective's Handbook, by Bob Zeidman.
Zeidman, Bob,
'The Software IP Detective's Handbook', Pearson Education Inc., 2011.
ISBN 0-13-703533-0 Purchase
it from Amazon. Purchase
it from Amazon UK.
This
book gives some insight into the word of copyright and patent
infringement and the lawsuits that result. Zeidman's anecdotes about
cases, some of which he worked on, and others that set significant
precedents, give a good context to the world of protecting IP through
the courts. However
the book is also a shameless advertisement for Zeidman's consulting
services and the tools that he sells to automate the process of
comparing two bodies of software for signs of code theft. Whether you
are interested in using these tools or not, it is useful to know what
techniques are out there in case your opposite number is going to use
them to make a case. The tools are effectively a sophisticated set of
differencing tools that try to detect where code has been copied even
if the culprit has made attempts to hide the fact that it was copied,
for example by renaming files, variables and function names, or
reordering functions. While
the principles of these comparison methods are good to understand, some
chapters delve deep into the implementation of the software. These
chapters also contain a warning that some of the algorithms described
are covered by patents. Perhaps part of the purpose of the book is to
publish his patents in great detail so that this publication
could be used as a reference if the patents are being defended at
some later date. If that is the case then the author should have stated
that intention, since that might be as valuable a lesson as many of the
other tips in the book. Overall
it was an interesting read, though the emphasis is very much on
discovering copied code and is light on other aspects of IP that do not
relate to copied code, such as patent infringement. |