The reason that good interfaces are few & far between is really quite simple: they are extremely difficult to design & build properly. This book elucidates an overarching framework for design that can be applied to the broad spectrum of existing domains.