As our dependence on technology increases, the design of software matters more than ever before. Why then is so much software flawed? Why hasn鈥檛 there been a systematic and scalable way to create software that is easy to use, robust, and secure?
Examining these issues in depth, The Essence of Software introduces a theory of software design that gives new answers to old questions. Daniel Jackson explains that a software system should be viewed as a collection of interacting concepts, breaking the functionality into manageable parts and providing a new framework for thinking about design. Through this radical and original perspective, Jackson lays out a practical and coherent path, accessible to anyone鈥攆rom strategist and marketer to UX designer, architect, or programmer鈥攆or making software that is empowering, dependable, and a delight to use.
Jackson explores every aspect of concepts鈥攚hat they are and aren鈥檛, how to identify them, how to define them, and more鈥攁nd offers prescriptive principles and practical tips that can be applied cost-effectively in a wide range of domains. He applies these ideas to contemporary software designs, drawing examples from leading software manufacturers such as Adobe, Apple, Dropbox, Facebook, Google, Microsoft, Twitter, and others. Jackson shows how concepts let designers preserve and reuse design knowledge, rather than starting from scratch in every project.
An argument against the status quo and a guide to improvement for both working designers and novices to the field, The Essence of Software brings a fresh approach to software and its creation.
Awards and Recognition
- Finalist for the PROSE Award in Computing and Information Sciences, Association of American Publishers
Daniel Jackson is professor of computer science at the Massachusetts Institute of Technology, and an associate director of the MIT Computer Science and Artificial Intelligence Laboratory. He is the author of Software Abstractions and Portraits of Resilience.
"This book gives new answers to old questions, offering a fresh perspective on software design, with examples from over 100 familiar apps. It鈥檚 accessible to anyone鈥攕trategist, marketer, manager, designer, or programmer鈥攚ho wants software that is more empowering, dependable, and delightful to use."鈥MIT News
鈥淗ard to contain my excitement about this book. Its ideas are fresh yet familiar, radical yet obvious, deep yet simple. I will be reading it repeatedly for years to come. A profound landmark in our discipline.鈥濃擝ashar Nuseibeh, University of Limerick, and Chief Scientist, Lero
鈥淒aniel Jackson鈥檚 concepts are a breakthrough in computer system design, integrating software engineering with human computer interaction. This is a framework we should all be using that will be immediately valuable at all levels, from students to the most experienced.鈥濃擧al Abelson, coauthor of Structure and Interpretation of Computer Programs
鈥淎 provocative rethinking of software development as a design discipline. Too often software embodies confusing and inconsistent mental models. Taking a truly human-centered approach, with many rich examples, Jackson offers us the tools to rethink how we design software to be more usable and useful.鈥濃擡lizabeth Churchill, Director of User Experience, Google
鈥淒aniel Jackson鈥檚 The Essence of Software is a monumental work. It provides a new structure for thinking about software in terms of concepts. Wide-ranging, it uses modern examples the reader will know. And because the book (and its copious endnotes) is designed to be read along different paths, every software engineer will find something valuable in it.鈥濃擣rederick P. Brooks, Jr., author of The Mythical Man-Month: Essays on Software Engineering
鈥淚 cannot say enough good things about this book. The Essence of Software is essential reading for anyone concerned with making software that is responsive to human needs and purposes. Its profound, practical framework offers a broadly useful, enormously empowering way to think about and do software design.鈥濃擬itchell Kapor, founder, Lotus Development Corporation
鈥淒aniel Jackson鈥檚 The Essence of Software will join Fred Brooks鈥檚 The Mythical Man-Month as an influential guide to making great software products and tools. Designers will come to their work with more open minds, clearer thoughts, and the capacity to build excellent software.鈥濃擝en Shneiderman, University of Maryland
鈥The Essence of Software won鈥檛 just give you new ideas: Daniel Jackson鈥檚 novel and thoroughly worked-out software concepts will transform how you think about design, software, and programming鈥攚hatever systems or languages you use, whether you are a new programmer, professional programmer, or researcher. This is a landmark book that will make the digital world a better place.鈥濃擧arold Thimbleby, author of Fix IT: See and Solve the Problems of Digital Healthcare