Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

Thanks for the Feedback: The Science and Art of Receiving Feedback Well


Douglas Stone - 2014
    Bosses, colleagues, customers—but also family, friends, and in-laws—they all have “suggestions” for our performance, parenting, or appearance. We know that feedback is essential for healthy relationships and professional development—but we dread it and often dismiss it.That’s because receiving feedback sits at the junction of two conflicting human desires. We do want to learn and grow. And we also want to be accepted just as we are right now. Thanks for the Feedback is the first book to address this tension head on. It explains why getting feedback is so crucial yet so challenging, and offers a powerful framework to help us take on life’s blizzard of off-hand comments, annual evaluations, and unsolicited advice with curiosity and grace.The business world spends billions of dollars and millions of hours each year teaching people how to give feedback more effectively. Stone and Heen argue that we’ve got it backwards and show us why the smart money is on educating receivers— in the workplace and in personal relationships as well.Coauthors of the international bestseller Difficult Conversations, Stone and Heen have spent the last ten years working with businesses, nonprofits, governments, and families to determine what helps us learn and what gets in our way. With humor and clarity, they blend the latest insights from neuroscience and psychology with practical, hard-headed advice. The book is destined to become a classic in the world of leadership, organizational behavior, and education.

Leadership and Self-Deception: Getting Out of the Box


The Arbinger Institute - 2000
    However well intentioned they may be, leaders who deceive themselves always end up undermining their own performance.This straightforward book explains how leaders can discover their own self-deceptions and learn how to escape destructive patterns. The authors demonstrate that breaking out of these patterns leads to improved teamwork, commitment, trust, communication, motivation, and leadership.

The Checklist Manifesto: How to Get Things Right


Atul Gawande - 2009
    Longer training, ever more advanced technologies—neither seems to prevent grievous errors. But in a hopeful turn, acclaimed surgeon and writer Atul Gawande finds a remedy in the humblest and simplest of techniques: the checklist. First introduced decades ago by the U.S. Air Force, checklists have enabled pilots to fly aircraft of mind-boggling sophistication. Now innovative checklists are being adopted in hospitals around the world, helping doctors and nurses respond to everything from flu epidemics to avalanches. Even in the immensely complex world of surgery, a simple ninety-second variant has cut the rate of fatalities by more than a third.In riveting stories, Gawande takes us from Austria, where an emergency checklist saved a drowning victim who had spent half an hour underwater, to Michigan, where a cleanliness checklist in intensive care units virtually eliminated a type of deadly hospital infection. He explains how checklists actually work to prompt striking and immediate improvements. And he follows the checklist revolution into fields well beyond medicine, from disaster response to investment banking, skyscraper construction, and businesses of all kinds.An intellectual adventure in which lives are lost and saved and one simple idea makes a tremendous difference, The Checklist Manifesto is essential reading for anyone working to get things right.

Nudge: Improving Decisions About Health, Wealth, and Happiness


Richard H. Thaler - 2008
    Thaler, and Cass R. Sunstein: a revelatory look at how we make decisionsNew York Times bestsellerNamed a Best Book of the Year by The Economist and the Financial Times Every day we make choices—about what to buy or eat, about financial investments or our children’s health and education, even about the causes we champion or the planet itself. Unfortunately, we often choose poorly. Nudge is about how we make these choices and how we can make better ones. Using dozens of eye-opening examples and drawing on decades of behavioral science research, Nobel Prize winner Richard H. Thaler and Harvard Law School professor Cass R. Sunstein show that no choice is ever presented to us in a neutral way, and that we are all susceptible to biases that can lead us to make bad decisions. But by knowing how people think, we can use sensible “choice architecture” to nudge people toward the best decisions for ourselves, our families, and our society, without restricting our freedom of choice.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Selling the Invisible: A Field Guide to Modern Marketing


Harry Beckwith - 1997
    A comprehensive guide to service marketing furnishes tips and advice on how one can apply one's business knowledge to any area of sales and marketing, from a home-based consultancy to a multinational brokerage firm.

Be Our Guest: Perfecting the Art of Customer Service


Walt Disney Company - 2001
    Reprint. 25,000 first printing.

Designing Your Life: Build a Life that Works for You


Bill Burnett - 2016
    Now in book form for the first time, their simple method will teach you how to use basic design tools to create a life that will work for you.Using real-life stories and proven techniques like reframing, prototyping and mind-mapping, you will learn how to build your way forwards, step-by-positive-step, to a life that’s better by a design of your own making.Because a well-designed life means a life well-lived.

Never Eat Alone: And Other Secrets to Success, One Relationship at a Time


Keith Ferrazzi - 2005
    As Ferrazzi discovered early in life, what distinguishes highly successful people from everyone else is the way they use the power of relationships--so that everyone wins. In "Never Eat Alone," Ferrazzi lays out the specific steps--and inner mindset--he uses to reach out to connect with the thousands of colleagues, friends, and associates on his Rolodex, people he has helped and who have helped him. The son of a small-town steelworker and a cleaning lady, Ferrazzi first used his remarkable ability to connect with others to pave the way to a scholarship at Yale, a Harvard MBA, and several top executive posts. Not yet out of his thirties, he developed a network of relationships that stretched from Washington's corridors of power to Hollywood's A-list, leading to him being named one of Crain's 40 Under 40 and selected as a Global Leader for Tomorrow by the Davos World Economic Forum. Ferrazzi's form of connecting to the world around him is based on generosity, helping friends connect with other friends. Ferrazzi distinguishes genuine relationship-building from the crude, desperate glad-handling usually associated with "networking." He then distills his system of reaching out to people into practical, proven principles. Among them: Don't keep score: It's never simply about getting what you want. It's about getting what you want and making sure that the people who are important to you get what they want, too. "Ping" constantly: The Ins and Outs of reaching out to those in your circle of contacts all the time--not just when you need something. Never eat alone: The dynamics of status are the same whether you're working at a corporation or attending a society event-- "invisibility" is a fate worse than failure. In the course of the book, Ferrazzi outlines the timeless strategies shared by the world's most connected individuals, from Katherine Graham to Bill Clinton, Vernon Jordan to the Dalai Lama. Chock full of specific advice on handling rejection, getting past gatekeepers, becoming a "conference commando," and more, "Never Eat Alone" is destined to take its place alongside "How to Win Friends and Influence People" as an inspirational classic.

Articulating Design Decisions: Communicate with Stakeholders, Keep Your Sanity, and Deliver the Best User Experience


Tom Greever - 2015
    The ability to effectively articulate design decisions is critical to the success of a project, because the most articulate person often wins. This practical book provides principles, tactics, and actionable methods for talking about designs with executives, managers, developers, marketers, and other stakeholders who have influence over the project with the goal of winning them over and creating the best user experience.

Presentation Zen: Simple Ideas on Presentation Design and Delivery


Garr Reynolds - 2007
    Presentation Zen challenges the conventional wisdom of making "slide presentations" in today’s world and encourages you to think differently and more creatively about the preparation, design, and delivery of your presentations. Garr shares lessons and perspectives that draw upon practical advice from the fields of communication and business. Combining solid principles of design with the tenets of Zen simplicity, this book will help you along the path to simpler, more effective presentations.--back cover

Microinteractions: Designing with Details


Dan Saffer - 2013
    With this practical book, you’ll learn how to design effective microinteractions: the small details that exist inside and around features. How can users change a setting? How do they turn on mute, or know they have a new email message?Through vivid, real-world examples from today’s devices and applications, author Dan Saffer walks you through a microinteraction’s essential parts, then shows you how to use them in a mobile app, a web widget, and an appliance. You’ll quickly discover how microinteractions can change a product from one that’s tolerated into one that’s treasured.Explore a microinteraction’s structure: triggers, rules, feedback, modes, and loopsLearn the types of triggers that initiate a microinteractionCreate simple rules that define how your microinteraction can be usedHelp users understand the rules with feedback, using graphics, sounds, and vibrationsUse modes to let users set preferences or modify a microinteractionExtend a microinteraction’s life with loops, such as “Get data every 30 seconds”

The Laws of Simplicity: Design, Technology, Business, Life


John Maeda - 2006
    We're rebelling against technology that's too complicated, DVD players with too many menus, and software accompanied by 75-megabyte "read me" manuals. The iPod's clean gadgetry has made simplicity hip. But sometimes we find ourselves caught up in the simplicity paradox: we want something that's simple and easy to use, but also does all the complex things we might ever want it to do. In The Laws of Simplicity, John Maeda offers ten laws for balancing simplicity and complexity in business, technology, and design—guidelines for needing less and actually getting more.Maeda—a professor in MIT's Media Lab and a world-renowned graphic designer—explores the question of how we can redefine the notion of "improved" so that it doesn't always mean something more, something added on.Maeda's first law of simplicity is "Reduce." It's not necessarily beneficial to add technology features just because we can. And the features that we do have must be organized (Law 2) in a sensible hierarchy so users aren't distracted by features and functions they don't need. But simplicity is not less just for the sake of less. Skip ahead to Law 9: "Failure: Accept the fact that some things can never be made simple." Maeda's concise guide to simplicity in the digital age shows us how this idea can be a cornerstone of organizations and their products—how it can drive both business and technology. We can learn to simplify without sacrificing comfort and meaning, and we can achieve the balance described in Law 10. This law, which Maeda calls "The One," tells us: "Simplicity is about subtracting the obvious, and adding the meaningful."

When Coffee & Kale Compete: Become Great at Making Products People Will Buy


Alan Klement - 2016