Writing Effective Use Cases


Alistair Cockburn - 2000
    Cockburn begins by answering the most basic questions facing anyone interested in use cases: What does a use case look like? When do I write one? Next, he introduces each key element of use cases: actors, stakeholders, design scope, goal levels, scenarios, and more. Writing Effective Use Cases contains detailed guidelines, formats, and project standards for creating use cases -- as well as a detailed chapter on style, containing specific do's and don'ts. Cockburn shows how use cases fit together with requirements gathering, business processing reengineering, and other key issues facing software professionals. The book includes practice exercises with solutions, as well as a detailed appendix on how to use these techniques with UML. For all application developers, object technology practitioners, software system designers, architects, and analysts.

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.

Thinking in Systems: A Primer


Donella H. Meadows - 2008
    Edited by the Sustainability Institute’s Diana Wright, this essential primer brings systems thinking out of the realm of computers and equations and into the tangible world, showing readers how to develop the systems-thinking skills that thought leaders across the globe consider critical for 21st-century life.Some of the biggest problems facing the world—war, hunger, poverty, and environmental degradation—are essentially system failures. They cannot be solved by fixing one piece in isolation from the others, because even seemingly minor details have enormous power to undermine the best efforts of too-narrow thinking.While readers will learn the conceptual tools and methods of systems thinking, the heart of the book is grander than methodology. Donella Meadows was known as much for nurturing positive outcomes as she was for delving into the science behind global dilemmas. She reminds readers to pay attention to what is important, not just what is quantifiable, to stay humble, and to stay a learner.In a world growing ever more complicated, crowded, and interdependent, Thinking in Systems helps readers avoid confusion and helplessness, the first step toward finding proactive and effective solutions.

The Passionate Programmer


Chad Fowler - 2009
    In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.

Fearless Change: Patterns for Introducing New Ideas


Mary Lynn Manns - 2004
    It contains a collection of eye-openers that is a treasure chest for pioneers of new organizational ideas, A fantastic toolbox for use in future missions!"--Lise B. Hvatum, product development manager, Schlumberger"If you have need of changing your organization, and especially of introducing new techniques, then you want to understand what is in this book. It will help you avoid common pitfalls that doom many such projects and will show you a clear path to success. The techniques are derived from the experience of many individuals and organizations. Many are also fun to apply. This stuff is really cool--and really hot."--Joseph Bergin, professor of computer science, Pace University, New York"If change is the only guarantee in life, why is it so hard to do? As this book points out, people are not so much resistant to change itself as they are to being changed. Mary Lynn and Linda have successfully used the pattern form to capture and present the recurring lessons of successful change efforts and have placed a powerful knowledge resource in the hands of their readers."--Alan O'Callaghan, researcher, Software Technology Research Laboratory, De Montfort University, United Kingdom"The most difficult part of absorbing patterns, or any technology, into an organization is overcoming the people issues. The patterns in this book are the documentation of having gone through that experience, giving those that dare push the envelope a head start at success."--David E. DeLano, IBM Pervasive Computing"If you have ever wondered how you could possibly foster any cultural changes in your organization, in this book you will find a lot of concrete advice for doing so. I recommend that everyone read this book who has a vast interest in keeping his or her organization flexible and open for cultural change."--Jutta Eckstein, Independent Consultant, Objects In Action Author of "Agile Software Development in the Large"48 Patterns for Driving and Sustaining Change in Your OrganizationChange. It's brutally tough to initiate, even harder to sustain. It takes too long. People resist it.But without it, organizations lose their competitive edge. Fortunately, you can succeed at making change. In "Fearless Change, " Mary Lynn Manns and Linda Rising illuminate 48 proven techniques, or patterns, for implementing change in organizations or teams of all sizes, and show you exactly how to use them successfully.Find out how toUnderstand the forces in your organization that drive and retard changePlant the seeds of changeDrive participation and buy-in, from start to finishChoose an "official skeptic" to sharpen your thinkingMake your changes appear less threateningFind the right timing and the best teaching momentsSustain your momentumOvercome adversity and celebrate successInspired by the "pattern languages" that are transforming fields from software to architecture, the authors illuminate patterns for every stage of the change process: knowledge, persuasion, decision, implementation, and confirmation. These flexible patterns draw on the experiences of hundreds of leaders. They offer powerful insight into change-agent behavior, organizational culture, and the roles of every participant.Best of all, they're easy to use--"and they work!"

Joel on Software


Joel Spolsky - 2004
    For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Product Leadership: How Top Product Managers Launch Awesome Products and Build Successful Teams


Richard Banfield - 2017
    Yet, managing human beings and navigating complex product roadmaps is no easy task, and it's rare to find a product leader who can steward a digital product from concept to launch without a couple of major hiccups. Why do some product leaders succeed while others don't?This insightful book presents interviews with nearly 100 leading product managers from all over the world. Authors Richard Banfield, Martin Eriksson, and Nate Walkingshaw draw on decades of experience in product design and development to capture the approaches, styles, insights, and techniques of successful product managers. If you want to understand what drives good product leaders, this book is an irreplaceable resource.In three parts, Product Leadership helps you explore:Themes and patterns of successful teams and their leaders, and ways to attain those characteristicsThe best approaches for guiding your product team through the startup, emerging, and enterprise stages of a company's evolutionStrategies and tactics for working with customers, agencies, partners, and external stakeholders

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.

Soft Skills: The Software Developer's Life Manual


John Z. Sonmez - 2014
    In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.Soft Skills: The software developer's life manual is a guide to a well-rounded, satisfying life as a technology professional. In it, developer and life coach John Sonmez offers advice to developers on important "soft" subjects like career and productivity, personal finance and investing, and even fitness and relationships. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. A Taking Action section at the end of each chapter shows you how to get quick results. Soft Skills will help make you a better programmer, a more valuable employee, and a happier, healthier person.What's InsideBoost your career by building a personal brandJohn's secret ten-step process for learning quicklyFitness advice to turn your geekiness to your advantageUnique strategies for investment and early retirement

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability


Steve Krug - 2000
    And it’s still short, profusely illustrated…and best of all–fun to read.If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.

Scrum: A Pocket Guide: A Smart Travel Companion


Gunther Verheyen - 2013
    The book covers all roles, rules and the main principles underpinning Scrum, and is based on the Scrum Guide Edition 2013. A broader context to this fundamental description of Scrum is given by describing the past and the future of Scrum. The author, Gunther Verheyen, has created a concise, yet complete and passionate reference about Scrum. The book demonstrates his core view that Scrum is about a journey, a journey of discovery and fun. He designed the book to be a helpful guide on that journey. Ken Schwaber, Scrum co-creator says that this book currently is the best available description of Scrum around. The book combines some rare characteristics: It describes Scrum in its entirety, yet places it in a broader context (of past and future). The author focuses on the subject, Scrum, in a way that it truly supports the reader. The book has a language and style in line with the philosophy of Scrum. The book shows the playfulness of Scrum. David Starr and Ralph Jocham, Professional Scrum trainers and early agile adopters, say that this is the ultimate book to be advised as follow-up book to the students they teach Scrum to and to teams and managers of organizations that they coach Scrum to."

A Practical Approach to Large-Scale Agile Development: How HP Transformed LaserJet FutureSmart Firmware


Gary Gruver - 2012
    However, large-scale agile development is difficult, and publicly available case studies have been scarce. Now, three agile pioneers at Hewlett-Packard present a candid, start-to-finish insider's look at how they've succeeded with agile in one of the company's most mission-critical software environments: firmware for HP LaserJet printers.This book tells the story of an extraordinary experiment and journey. Could agile principles be applied to re-architect an enormous legacy code base? Could agile enable both timely delivery and ongoing innovation? Could it really be applied to 400+ developers distributed across four states, three continents, and four business units? Could it go beyond delivering incremental gains, to meet the stretch goal of 10x developer productivity improvements?It could, and it did--but getting there was not easy.Writing for both managers and technologists, the authors candidly discuss both their successes and failures, presenting actionable lessons for other development organizations, as well as approaches that have proven themselves repeatedly in HP's challenging environment. They not only illuminate the potential benefits of agile in large-scale development, they also systematically show how these benefits can actually be achieved.Coverage includes: - Tightly linking agile methods and enterprise architecture with business objectives- Focusing agile practices on your worst development pain points to get the most bang for your buck- Abandoning classic agile methods that don't work at the largest scale- Employing agile methods to establish a new architecture- Using metrics as a "conversation starter" around agile process improvements- Leveraging continuous integration and quality systems to reduce costs, accelerate schedules, and automate the delivery pipeline- Taming the planning beast with "light-touch" agile planning and lightweight long-range forecasting- Implementing effective project management and ensuring accountability in large agile projects- Managing tradeoffs associated with key decisions about organizational structure- Overcoming U.S./India cultural differences that can complicate offshore development- Selecting tools to support quantum leaps in productivity in your organization- Using change management disciplines to support greater enterprise agility

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Toyota Kata: Managing People for Improvement, Adaptiveness and Superior Results


Mike Rother - 2009
    Womack, Chairman and Founder, Lean Enterprise Institute. This game-changing book puts you behind the curtain of Toyota, providing new insight into the legendary automaker's management practices and offering practical guidance for leading and developing people in a way that makes the best use of their brainpower. Drawing on six years of research into Toyota's employee-management routines, Toyota Kata examines and elucidates, for the first time, the company's organizational routines--called kata--that power its success with continuous improvement and adaptation. The book also reaches beyond Toyota to explain issues of human behavior in organizations and provide specific answers to questions such as: How can we make improvement and adaptation part of everyday work throughout the organization? How can we develop and utilize the capability of everyone in the organization to repeatedly work toward and achieve new levels of performance? How can we give an organization the power to handle dynamic, unpredictable situations and keep satisfying customers? Mike Rother explains how to improve our prevailing management approach through the use of two kata: Improvement Kata--a repeating routine of establishing challenging target conditions, working step-by-step through obstacles, and always learning from the problems we encounter; and Coaching Kata: a pattern of teaching the improvement kata to employees at every level to ensure it motivates their ways of thinking and acting. With clear detail, an abundance of practical examples, and a cohesive explanation from start to finish, Toyota Kata gives executives and managers at any level actionable routines of thought and behavior that produce superior results and sustained competitive advantage.