Lessons Learned in Software Testing: A Context-Driven Approach


Cem Kaner - 2001
    Along the way, there is an abundance of traps that one can fall into, which can derail the best-laid plans and put your projects behind schedule.Cem Kaner, James Bach, and Bret Pettichord know this all too well. Between them, they have over fifty years of testing experience, and know what it takes for successful testing. In this groundbreaking new book, they have compiled 293 pieces of experience-tested advice for you to put to work in your testing projects. They reveal insights on how to do the job well, how to manage it, and how to steer clear of common misunderstandings in software testing. Each lesson is an assertion related to software testing, followed by an explanation or example that shows you the how, when, and why of the testing lesson.The ultimate resource for software testers, developers, and managers at every level of expertise, this guidebook also features:- Useful practices and helpful ways of evaluating situations gleaned from over fifty years of combined testing experience from the world's leading software testing experts- Lessons for all key topic areas including test design, test automation, test management, testing strategies, and bug reporting- Advice on how to match the selection of practices to the circumstances of your project

The Organized Mind: Thinking Straight in the Age of Information Overload


Daniel J. Levitin - 2014
    Levitin shifts his keen insights from your brain on music to your brain in a sea of details.The information age is drowning us with an unprecedented deluge of data. At the same time, we’re expected to make more—and faster—decisions about our lives than ever before. No wonder, then, that the average American reports frequently losing car keys or reading glasses, missing appointments, and feeling worn out by the effort required just to keep up.But somehow some people become quite accomplished at managing information flow. In The Organized Mind, Daniel J. Levitin, PhD, uses the latest brain science to demonstrate how those people excel—and how readers can use their methods to regain a sense of mastery over the way they organize their homes, workplaces, and time.With lively, entertaining chapters on everything from the kitchen junk drawer to health care to executive office workflow, Levitin reveals how new research into the cognitive neuroscience of attention and memory can be applied to the challenges of our daily lives. This Is Your Brain on Music showed how to better play and appreciate music through an understanding of how the brain works. The Organized Mind shows how to navigate the churning flood of information in the twenty-first century with the same neuroscientific perspective.

Design for the Real World: Human Ecology and Social Change


Victor Papanek - 1972
    Translated into twenty-three languages, it is one of the world's most widely read books on design. In this edition, Victor Papanek examines the attempts by designers to combat the tawdry, the unsafe, the frivolous, the useless product, once again providing a blueprint for sensible, responsible design in this world which is deficient in resources and energy.

Engineering Long-Lasting Software


Armando Fox - 2012
    NOTE: this Alpha Edition is missing some chapters and may contain errors. See http://saasbook.info for details.

Hoover Dam: An American Adventure


Joseph E. Stevens - 1988
    Through the worst years of the Great Depression as many as five thousand laborers toiled twenty-four hours a day, seven days a week, to erect the huge structure that would harness the Colorado River and transform the American West.Construction of the giant dam was a triumph of human ingenuity, yet the full story of this monumental endeavor has never been told. Now, in an engrossing, fast-paced narrative, Joseph E. Stevens recounts the gripping saga of Hoover Dam. Drawing on a wealth of material, including manuscript collections, government documents, contemporary newspaper and magazine accounts, and personal interviews and correspondence with men and women who were involved with the construction, he brings the Hoover Dam adventure to life.Described here in dramatic detail are the deadly hazards the work crews faced as they hacked and blasted the dam’s foundation out of solid rock; the bitter political battles and violent labor unrest that threatened to shut the job down; the deprivation and grinding hardship endured by the workers’ families; the dam builders’ gambling, drinking, and whoring sprees in nearby Las Vegas; and the stirring triumphs and searing moments of terror as the massive concrete wedge rose inexorably from the canyon floor.Here, too, is an unforgettable cast of characters: Henry Kaiser, Warren Bechtel, and Harry Morrison, the ambitious, headstrong construction executives who gambled fortune and fame on the Hoover Dam contract; Frank Crowe, the brilliant, obsessed field engineer who relentlessly drove the work force to finish the dam two and a half years ahead of schedule; Sims Ely, the irascible, teetotaling eccentric who ruled Boulder City, the straightlaced company town created for the dam workers by the federal government; and many more men and women whose courage and sacrifice, greed and frailty, made the dam’s construction a great human, as well as technological, adventure.Hoover Dam is a compelling, irresistible account of an extraordinary American epic.

Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices


Harry Percival - 2020
    Many Python developers are now taking an interest in high-level software architecture patterns such as hexagonal/clean architecture, event-driven architecture, and strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.With this practical guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity. Each pattern is illustrated with concrete examples in idiomatic Python that explain how to avoid some of the unnecessary verbosity of Java and C# syntax. You'll learn how to implement each of these patterns in a Pythonic way.Architectural design patterns include:Dependency inversion, and its links to ports and adapters (hexagonal/clean architecture)Domain-driven design's distinction between entities, value objects, and aggregatesRepository and Unit of Work patterns for persistent storageEvents, commands, and the message busCommand Query Responsibility Segregation (CQRS)Event-driven architecture and reactive microservices

Computer Organization & Design: The Hardware/Software Interface


David A. Patterson - 1993
    More importantly, this book provides a framework for thinking about computer organization and design that will enable the reader to continue the lifetime of learning necessary for staying at the forefront of this competitive discipline. --John Crawford Intel Fellow Director of Microprocessor Architecture, Intel The performance of software systems is dramatically affected by how well software designers understand the basic hardware technologies at work in a system. Similarly, hardware designers must understand the far reaching effects their design decisions have on software applications. For readers in either category, this classic introduction to the field provides a deep look into the computer. It demonstrates the relationship between the software and hardware and focuses on the foundational concepts that are the basis for current computer design. Using a distinctive learning by evolution approach the authors present each idea from its first principles, guiding readers through a series of worked examples that incrementally add more complex instructions until they ha

Software Estimation: Demystifying the Black Art


Steve McConnell - 2006
    In fact, generating accurate estimates is straightforward—once you understand the art of creating them.In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation—distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency.

The Decision Book: Fifty Models for Strategic Thinking


Mikael Krogerus - 2011
    

How to Fly a Horse: The Secret History of Creation, Invention, and Discovery


Kevin Ashton - 2014
    Now, in a tour-de-force narrative twenty years in the making, Ashton leads us on a journey through humanity’s greatest creations to uncover the surprising truth behind who creates and how they do it. From the crystallographer’s laboratory where the secrets of DNA were first revealed by a long forgotten woman, to the electromagnetic chamber where the stealth bomber was born on a twenty-five-cent bet, to the Ohio bicycle shop where the Wright brothers set out to “fly a horse,” Ashton showcases the seemingly unremarkable individuals, gradual steps, multiple failures, and countless ordinary and usually uncredited acts that lead to our most astounding breakthroughs.Creators, he shows, apply in particular ways the everyday, ordinary thinking of which we are all capable, taking thousands of small steps and working in an endless loop of problem and solution. He examines why innovators meet resistance and how they overcome it, why most organizations stifle creative people, and how the most creative organizations work. Drawing on examples from art, science, business, and invention, from Mozart to the Muppets, Archimedes to Apple, Kandinsky to a can of Coke, How to Fly a Horse is a passionate and immensely rewarding exploration of how “new” comes to be.

Adaptive Code Via C#: Agile Coding with Design Patterns and Solid Principles


Gary McLean Hall - 2014
    Your process may be agile, but are you building agility directly into the code base? This book teaches .NET programmers how to give code the flexibility to adapt to changing requirements and customer demands by applying cutting-edge techniques, including SOLID principles, design patterns, and other industry best practices.Understand why composition is preferable to inheritance and how flexible the interface really can be Gain deep knowledge of key design patterns and anti-patterns, when to apply them, and how to give their code agility Bridge the gap between the theory behind SOLID principles, design patterns, and industry best practices by pragmatically solving real-world problems Get code samples written in upcoming version of Microsoft Visual C# Topics include: Agile with Scrum process; dependencies and layering; the interface; patterns and anti-patterns; introduction to SOLID principles, including open/closed and dependency interjection; and using application templates

Succeeding with Agile: Software Development Using Scrum


Mike Cohn - 2009
    Leading agile consultant and practitioner Mike Cohn presents detailed recommendations, powerful tips, and real-world case studies drawn from his unparalleled experience helping hundreds of software organizations make Scrum and agile work. "Succeeding with Agile" is for pragmatic software professionals who want real answers to the most difficult challenges they face in implementing Scrum. Cohn covers every facet of the transition: getting started, helping individuals transition to new roles, structuring teams, scaling up, working with a distributed team, and finally, implementing effective metrics and continuous improvement.Throughout, Cohn presents “Things to Try Now” sections based on his most successful advice. Complementary “Objection” sections reproduce typical conversations with those resisting change and offer practical guidance for addressing their concerns. Coverage includes: - Practical ways to get started immediately–and “get good” fast - Overcoming individual resistance to the changes Scrum requires - Staffing Scrum projects and building effective teams - Establishing “improvement communities” of people who are passionate about driving change - Choosing which agile technical practices to use or experiment with - Leading self-organizing teams - Making the most of Scrum sprints, planning, and quality techniques - Scaling Scrum to distributed, multiteam projects - Using Scrum on projects with complex sequential processes or challenging compliance and governance requirements - Understanding Scrum’s impact on HR, facilities, and project managementWhether you've completed a few sprints or multiple agile projects and whatever your role–manager, developer, coach, ScrumMaster, product owner, analyst, team lead, or project lead–this book will help you succeed with your very next project. Then, it will help you go much further: It will help you transform your entire development organization.

Paper Prototyping: The Fast and Easy Way to Design and Refine User Interfaces


Carolyn Snyder - 2003
    Written by a usability engineer with a long and successful paper prototyping history, this book is a practical, how-to guide that will prepare you to create and test paper prototypes of all kinds of user interfaces. You'll see how to simulate various kinds of interface elements and interactions. You'll learn about the practical aspects of paper prototyping, such as deciding when the technique is appropriate, scheduling the activities, and handling the skepticism of others in your organization. Numerous case studies and images throughout the book show you real world examples of paper prototyping at work.Learn how to use this powerful technique to develop products that are more useful, intuitive, efficient, and pleasing:* Save time and money - solve key problems before implementation begins * Get user feedback early - use it to focus the development process * Communicate better - involve development team members from a variety of disciplines * Be more creative - experiment with many ideas before committing to one

User Story Mapping: Discover the Whole Story, Build the Right Product


Jeff Patton - 2012
    With this practical book, you'll explore the often-misunderstood practice of user story mapping, and learn how it can help keep your team stay focused on users and their experience throughout the development process.You and your team will learn that user stories aren't a way to write better specifications, but a way to organize and have better conversations. This book will help you understand what kinds of conversations you should be having, when to have them, and what to keep track of when you do. Learn the key concepts used to create a great story map. Understand how user stories really work, and how to make good use of them in agile and lean projects. Examine the nuts and bolts of managing stories through the development cycle. Use strategies that help you continue to learn before and after the product's release to customers and usersUser Story Mapping is ideal for agile and lean software development team members, product managers and UX practitioners in commercial product companies, and business analysts and project managers in IT organizations—whether you're new to this approach or want to understand more about it.

Thinking, Fast and Slow


Daniel Kahneman - 2011
    System 1 is fast, intuitive, and emotional; System 2 is slower, more deliberative, and more logical. Kahneman exposes the extraordinary capabilities—and also the faults and biases—of fast thinking, and reveals the pervasive influence of intuitive impressions on our thoughts and behavior. The impact of loss aversion and overconfidence on corporate strategies, the difficulties of predicting what will make us happy in the future, the challenges of properly framing risks at work and at home, the profound effect of cognitive biases on everything from playing the stock market to planning the next vacation—each of these can be understood only by knowing how the two systems work together to shape our judgments and decisions.Engaging the reader in a lively conversation about how we think, Kahneman reveals where we can and cannot trust our intuitions and how we can tap into the benefits of slow thinking. He offers practical and enlightening insights into how choices are made in both our business and our personal lives—and how we can use different techniques to guard against the mental glitches that often get us into trouble. Thinking, Fast and Slow will transform the way you think about thinking.