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.

Rolling Rocks Downhill: Accelerate Agile using Goldratt's TOC


Clarke Ching - 2012
    What if your software-intensive projects delivered on time - or early - without sacrificing quality? 2. What if your IT department's job was to deliver profits, through software, rather than just software? 3. What if your software developers worked in a way they loved - that didn't feel as if they spent their days ROLLING ROCKS UPHILL? ROLLING ROCKS DOWNHILL is a business novel in the tradition of Eli Goldratt's "The Goal". It introduces Throughput-Driven Development - the combination of Lean, Agile and Goldratt's Theory of Constraints (TOC) thinking to corporate software development.

Patterns of Enterprise Application Architecture


Martin Fowler - 2002
    Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. Patterns of Enterprise Application Architecture is written in direct response to the stiff challenges that face enterprise application developers. The author, noted object-oriented designer Martin Fowler, noticed that despite changes in technology--from Smalltalk to CORBA to Java to .NET--the same basic design ideas can be adapted and applied to solve common problems. With the help of an expert group of contributors, Martin distills over forty recurring solutions into patterns. The result is an indispensable handbook of solutions that are applicable to any enterprise application platform. This book is actually two books in one. The first section is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#. The entire book is also richly illustrated with UML diagrams to further explain the concepts. Armed with this book, you will have the knowledge necessary to make important architectural decisions about building an enterprise application and the proven patterns for use when building them. The topics covered include - Dividing an enterprise application into layers - The major approaches to organizing business logic - An in-depth treatment of mapping between objects and relational databases - Using Model-View-Controller to organize a Web presentation - Handling concurrency for data that spans multiple transactions - Designing distributed object interfaces

The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.

Scaling Up Excellence: Getting to More Without Settling for Less


Robert I. Sutton - 2014
    Sutton and Rao have devoted much of the last decade to uncovering what it takes to build and uncover pockets of exemplary performance, to help spread them, and to keep recharging organizations with ever better work practices. Drawing on inside accounts and case studies and academic research from a wealth of industries – including start-ups, pharmaceuticals, airlines, retail, financial services, high-tech, education, non-profits, government, and healthcare -- Sutton and Rao identify the key scaling challenges that confront every organization. They tackle the difficult trade-offs that organizations must make between “Buddhism” versus “Catholicism” -- whether to encourage individualized approaches tailored to local needs or to replicate the same practices and customs as an organization or program expands. They reveal how the best leaders and teams develop, spread, and instill the right mindsets in their people -- rather than ruining or watering down the very things that have fueled successful growth in the past. They unpack the principles that help to cascade excellence throughout an organization, as well as show how to eliminate destructive beliefs and behaviors that will hold them back. Scaling Up Excellence is the first major business book devoted to this universal and vexing challenge. It is destined to become the standard bearer in the field.

A Vulgar Display of Power: Courage and Carnage at the Alrosa Villa


Chris Armold - 2007
    evil. Heavy Metal guitarist, Dimebag Darrell Abbott, was attacked and murdered on stage, December 8th, 2004 at the Alrosa Villa Nightclub. Erin Halk, Jeff Thompson and Nathan Bray each lost their lives trying to help Dimebag and others from the attack of an armed madman. While Dimebag is certainly a part of the story contained within the book, the focus is squarely on the background of Halk, Bray & Thompson, in addition to the killer, his motives and the actual incident at the venue. "A Vulgar Display Of Power: Courage And Carnage At The Alrosa Villa" is a deep, moving story which does an amazing job of honoring the memories Jeff, Nate, Erin, and Darrell. Of the victims who lost their lives, Nathan Bray is the only person who is survived by a wife and child. MJS Music Publications is contributing proceeds from every copy sold to a college fund set up for his son, Anthony. Music History/True Crime/Biography 352 pages, 240+ pictures.

Advanced Swift


Chris Eidhof - 2016
    If you have read the Swift Programming Guide, and want to explore more, this book is for you.Swift is a great language for systems programming, but also lends itself for very high-level programming. We'll explore both high-level topics (for example, programming with generics and protocols), as well as low-level topics (for example, wrapping a C library and string internals).

Pearls of Functional Algorithm Design


Richard S. Bird - 2010
    These 30 short chapters each deal with a particular programming problem drawn from sources as diverse as games and puzzles, intriguing combinatorial tasks, and more familiar areas such as data compression and string matching. Each pearl starts with the statement of the problem expressed using the functional programming language Haskell, a powerful yet succinct language for capturing algorithmic ideas clearly and simply. The novel aspect of the book is that each solution is calculated from an initial formulation of the problem in Haskell by appealing to the laws of functional programming. Pearls of Functional Algorithm Design will appeal to the aspiring functional programmer, students and teachers interested in the principles of algorithm design, and anyone seeking to master the techniques of reasoning about programs in an equational style.

Little Girl Leaving: A Novel Based on a True Story


Lisa Blume - 2018
    . . enlightening . . . A disturbing and illuminating tale.”—KIRKUS REVIEWSThe 1960s have come to a close—it’s 1972, and America is changing. So is Deidi’s world; she’s seven, and her family is moving. As she packs her room and unearths precious objects from her past, her thoughts begin to stray to the years before—to her first memories in 1968, and all that followed.From these reveries unfolds a story of terrible abuse and incredible survival. We see Deidi grow from a three-year-old whose understanding of the world is just beginning to form to a child whose courage, compassion, and sense of wonder persist despite every obstacle. Through her vivid recollections, the stark landscape of rural America, the political and social turmoil of the era, and the brutal power dynamics of adults come into sharp focus. Deidi’s story reveals the darkness roiling beneath the surface of American life and the way children are forced to confront it themselves, weaponless and alone. For Deidi, whose family continues to fall into deeper and darker cycles of sexual abuse and violence, survival is a matter of clinging desperately to the light in the world around her—no matter how dim it grows.By turns heartbreaking and stunningly beautiful, Little Girl Leaving is a reminder of the incredible power and fragility of a child’s spirit, and a call to action to protect it at all costs.  “Insightful, poignant, and riveting. I believe that everyone living with or around children should read this book.”—Judith Landau, MD, former president, International Family Therapy Association; senior Fulbright scholar; consultant to the UN and World Health Organization"Little Girl Leaving, Lisa Blume's debut novel, is sadly tragic but deeply moving and evocative."—Gabrielle Glaser, New York Times bestselling author, Her Best-Kept Secret; winner of the Award for Excellence in Journalism, American Psychoanalytic Association“An enthralling read, a brilliant read. You will never forget it.”—Mary Dispenza, educator, activist, and national distinguished principal; author, Split: A Child, a Priest, and the Catholic Church“A sensory barrage. A convincing and disturbing narrative. Most wonderful is how variously the child’s goodness of spirit tries to maintain itself. This is a page-turner.”—Sharon Solwitz, author, creative writing professor, Purdue University; winner, Carl Sandburg Prize, Doheny Award, The Center for Fiction“A must-read. A compelling story of a wise girl who tries to do good, no matter how painful and frightening life becomes, with the beauty of her essence always somehow enduring.”—Rocío Chang-Angulo, PsyD, co-director, Center for Trauma Recovery and Juvenile Justice; steering committee, National Child Traumatic Stress Network"Awake and alive to the unending beauty of the world juxtaposed with its secret horrors—an extraordinarily powerful punch to the heart.”—Katherine Ketcham, author, The Only Life I Could Save, A Memoir and Broken: My Story of Addiction and Redemption, with William Cope Moyers“As innovative as it is disturbing. The narrative captures elements of child abuse which, all too often, are lost or not understood by justice systems. A skillful portrayal.”—Raymond McMenamin, Shrieval Convener, Mental Health Tribunal for Scotland; former spokesperson, Law Society of Scotland’s vulnerable witness legislation“How does one turn the unfathomable into the believable without sounding vengefulor outrageous—in a voice, even, of great tenderness? This novel has done just that.”—Sally Anderson, editor-in-chief, Strategic News Service, FiReBooks, and FiReFilms

Fast Like Daniel: 21 Days That Will Change Your Life


Scott Williams - 2017
    This devotional is your definitive guide to… • Unpacking the Daniel Fast • A Closer Connection with God • The Four Keys to Powerful Prayer • How Fasting and Prayer Produces Breakthrough The book you’re holding walks you through Pastor Scott Williams’ own discovery of the Daniel Fast and the amazing life change, breakthrough, and success that followed. Since then, he’s done it on an annual basis for over a decade and has taught others to do the same. The results have been staggering! All 21 days come power packed daily dose of... • Scripture • Devotionals • Journal Ideas • Prayers • Fasting Tips Start a journey toward more intimacy with God as you learn to Fast Like Daniel.

97 Things Every Programmer Should Know: Collective Wisdom from the Experts


Kevlin Henney - 2010
    With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and principles that you can apply to all kinds of projects.A few of the 97 things you should know:"Code in the Language of the Domain" by Dan North"Write Tests for People" by Gerard Meszaros"Convenience Is Not an -ility" by Gregor Hohpe"Know Your IDE" by Heinz Kabutz"A Message to the Future" by Linda Rising"The Boy Scout Rule" by Robert C. Martin (Uncle Bob)"Beware the Share" by Udi Dahan

The Secret Language of Leadership: How Leaders Inspire Action Through Narrative


Stephen Denning - 2007
    It shows why this is key to the central task of leadership, what its dimensions are, and how you can measure it. The book's lucid explanations, vivid examples and practical tips are essential reading for CEOs, managers, change agents, marketers, salespersons, brand managers, politicians, teachers, parents--anyone who is setting out to the change the world.

Co-Active Leadership: Five Ways to Lead


Karen Kimsey-House - 2015
    And they waste the leadership ability that is present throughout an organization, not just at the top. In this visionary book, Karen and Henry Kimsey-House provide a model that harnesses the possibility of many rather than relying on the power of one. They begin with a new definition of leadership itself: “Leaders are those who are responsible for their world.” Which, of course, we all are, or should be—so everyone is a leader. Co-Active Leadership is a deeply collaborative approach but the first of its five dimensions focuses on the individual: leading from within. We must be fully present and live lives of integrity, openheartedness, and self-awareness if we are to make the kind of conscious, creative choices Co-Active Leadership demands. Each of the remaining four dimensions work together holistically. Depending on the situation, you may lead from the front, offering guidance and inspiration; from behind, supporting and encouraging others; from beside, partnering with and supporting other members of your team; or from the field, drawing on insights and wisdom available beyond the rational mind.Co-Active Leadership is the only model to celebrate and honor these different expressions of leadership. It invites all of us to share our expertise and allows collaborative solutions to emerge that would never have been possible otherwise.

The Scrum Field Guide: Practical Advice for Your First Year


Mitch Lacey - 2012
    If you're one of them, The Scrum Field Guide will give you skills and confidence to adopt Scrum more rapidly, more successfully, and with far less pain and fear. Long-time Scrum practitioner Mitch Lacey identifies major challenges associated with early-stage Scrum adoption, as well as deeper issues that emerge after companies have adopted Scrum, and describes how other organizations have overcome them. You'll learn how to gain "quick wins" that build support, and then use the flexibility of Scrum to maximize value creation across the entire process. In 30 brief, engaging chapters, Lacey guides you through everything from defining roles to setting priorities to determining team velocity, choosing a sprint length, and conducting customer reviews. Along the way, he explains why Scrum can seem counterintuitive, offers a solid grounding in the core agile concepts that make it work, and shows where it can (and shouldn't) be modified. Coverage includes Getting teams on board, and bringing new team members aboard after you've started Creating a "definition of done" for the team and organization Implementing the strong technical practices that are indispensable for agile success Balancing predictability and adaptability in release planning Keeping defects in check Running productive daily standup meetings Keeping people engaged with pair programming Managing culture clashes on Scrum teams Performing "emergency procedures" to get sprints back on track Establishing a pace your team can truly sustain Accurately costing projects, and measuring the value they deliver Documenting Scrum projects effectively Prioritizing and estimating large backlogs Integrating outsourced and offshored components Packed with real-world examples from Lacey's own experience, this book is invaluable to everyone transitioning to agile: developers, architects, testers, managers, and project owners alike.

The Rollout: A Novel about Leadership and Building a Lean-Agile Enterprise with SAFe


Alex Yakyma - 2016
    Caught between a traditional approach to program and portfolio management, and half-baked Agile methods at the team level, he struggles to help his company find a way out. Faced with a nearly impossible quest, he attends a conference desperately seeking a solution. There he finds a glimpse of hope—a method that applies the notion of Agility at a much higher scale. Inspired by this discovery, Ethan charges into action, launching the rollout of a new method at his company. But in no time, he runs into a brick wall which puts the rollout, and his own career, in grave danger. He comes to realize that the basic culture and his enterprise’s way of thinking are its biggest impediments to success. His quest leads him to understand that his own mindset is also part of the problem.... The reader will be pulled into the exciting action unfolding as Ethan leads his organization towards enterprise agility. Fictional, but based on a broad range of real-life implementations, this novel by Alex Yakyma provides a war chest of techniques and tools to support large-scale rollouts of Lean and Agile methods.