Preface
Northern sea otters, such as the one featured on this book’s cover, are like software engineers, except more adorable. They wield tools—mainly rocks to break open seashells. They also collaborate—they form large “rafts” of many otters, clutching one another’s paws so they can stay afloat and avoid drifting apart.
Sea otters are also liminal creatures, meaning they float on the boundary between air and sea, belonging fully to neither. These marine mammals must get oxygen from the air, but their food comes from the ocean. They have paws like a land mammal, but their flippers adapt them for the sea.
Engineers are liminal creatures, too, except we inhabit the space at the border between systems and users. The software, with its databases, protocols, call stacks, and containers, is like the ocean. When we dive deeper to the ocean floor, we come to rest on the hardware that supports it all.
But users are our oxygen and our sunlit sky. We see farther by their light, and we must always stay afloat to do so.
Why This Book Exists
Thinking about software products boils down to two topics:
- System thinking
-
Considers topics like algorithms and data structures, programming languages, fault tolerance in distributed systems, memory constraints of firmware, and so forth.
- Product thinking
-
Comprises understanding users, their background knowledge and needs, their sequences of actions, and group dynamics—plus the design techniques and information architectures that serve them.
Software ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access