User Interfaces and Usability for Embedded Systems


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 and User Interface Design

Designing for Small Screens Studio 7.5
The Humane Interface Jef Raskin
Designing Visual Interfaces Kevin Mullet and
Darrell Sano
Designing from Both Sides of the Screen Ellen Isaacs and
Alan Walendowski
About Face: The Essentials of User Interface Design Alan Cooper
The Inmates are Running the Asylum Alan Cooper
The Design of Everyday Things Donald Norman
The Invisible Computer Donald Norman
User Interface Design Harold Thimbleby
Usability in Practice: How Companies Develop User Friendly Products Michael Wiklund
The Trouble with Computers: Usefulness, Usability and Productivity Thomas K. Landauer
The Icon Book William Horton
Information Appliances and Beyond Eric Bergman


Writing Solid Code Steve Maguire
The Art of Programming Embedded Systems Jack G. Ganssle
Zen of Graphics Programming Michael Abrash

Encyclopedia of Graphics File Formats

James D. Murray and William vanRyper
Design Principles for Interactive Software Christian Gram and Gilbert Cockton
Digital Audio Processing Doug Coulter
MicroC/OS-II Jean Labrosse


Safeware, System Safety and Computers Nancy Leveson
Computer Related Risks Peter G. Neuman
Human Factors in Alarm Design and Human Factors in Nuclear Safety Neville Stanton
The Software IP Detective's HandbookBob Zeidman 



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.



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.



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. 

[PanelSoft Home ]