Technical Debt in Practice

Technical Debt in Practice PDF Author: Neil Ernst
Publisher: MIT Press
ISBN: 0262362279
Category : Computers
Languages : en
Pages : 305

Get Book Here

Book Description
The practical implications of technical debt for the entire software lifecycle; with examples and case studies. Technical debt in software is incurred when developers take shortcuts and make ill-advised technical decisions in the initial phases of a project, only to be confronted with the need for costly and labor-intensive workarounds later. This book offers advice on how to avoid technical debt, how to locate its sources, and how to remove it. It focuses on the practical implications of technical debt for the entire software life cycle, with examples and case studies from companies that range from Boeing to Twitter. Technical debt is normal; it is part of most iterative development processes. But if debt is ignored, over time it may become unmanageably complex, requiring developers to spend all of their effort fixing bugs, with no time to add new features--and after all, new features are what customers really value. The authors explain how to monitor technical debt, how to measure it, and how and when to pay it down. Broadening the conventional definition of technical debt, they cover requirements debt, implementation debt, testing debt, architecture debt, documentation debt, deployment debt, and social debt. They intersperse technical discussions with "Voice of the Practitioner" sidebars that detail real-world experiences with a variety of technical debt issues.

Technical Debt in Practice

Technical Debt in Practice PDF Author: Neil Ernst
Publisher: MIT Press
ISBN: 0262362279
Category : Computers
Languages : en
Pages : 305

Get Book Here

Book Description
The practical implications of technical debt for the entire software lifecycle; with examples and case studies. Technical debt in software is incurred when developers take shortcuts and make ill-advised technical decisions in the initial phases of a project, only to be confronted with the need for costly and labor-intensive workarounds later. This book offers advice on how to avoid technical debt, how to locate its sources, and how to remove it. It focuses on the practical implications of technical debt for the entire software life cycle, with examples and case studies from companies that range from Boeing to Twitter. Technical debt is normal; it is part of most iterative development processes. But if debt is ignored, over time it may become unmanageably complex, requiring developers to spend all of their effort fixing bugs, with no time to add new features--and after all, new features are what customers really value. The authors explain how to monitor technical debt, how to measure it, and how and when to pay it down. Broadening the conventional definition of technical debt, they cover requirements debt, implementation debt, testing debt, architecture debt, documentation debt, deployment debt, and social debt. They intersperse technical discussions with "Voice of the Practitioner" sidebars that detail real-world experiences with a variety of technical debt issues.

Managing Technical Debt

Managing Technical Debt PDF Author: Philippe Kruchten
Publisher: Addison-Wesley Professional
ISBN: 0135645964
Category : Computers
Languages : en
Pages : 327

Get Book Here

Book Description
“This is an incredibly wise and useful book. The authors have considerable real-world experience in delivering quality systems that matter, and their expertise shines through in these pages. Here you will learn what technical debt is, what is it not, how to manage it, and how to pay it down in responsible ways. This is a book I wish I had when I was just beginning my career. The authors present a myriad of case studies, born from years of experience, and offer a multitude of actionable insights for how to apply it to your project.” –Grady Booch, IBM Fellow Master Best Practices for Managing Technical Debt to Promote Software Quality and Productivity As software systems mature, earlier design or code decisions made in the context of budget or schedule constraints increasingly impede evolution and innovation. This phenomenon is called technical debt, and practical solutions exist. In Managing Technical Debt, three leading experts introduce integrated, empirically developed principles and practices that any software professional can use to gain control of technical debt in any software system. Using real-life examples, the authors explain the forms of technical debt that afflict software-intensive systems, their root causes, and their impacts. They introduce proven approaches for identifying and assessing specific sources of technical debt, limiting new debt, and “paying off” debt over time. They describe how to establish managing technical debt as a core software engineering practice in your organization. Discover how technical debt damages manageability, quality, productivity, and morale–and what you can do about it Clarify root causes of debt, including the linked roles of business goals, source code, architecture, testing, and infrastructure Identify technical debt items, and analyze their costs so you can prioritize action Choose the right solution for each technical debt item: eliminate, reduce, or mitigate Integrate software engineering practices that minimize new debt Managing Technical Debt will be a valuable resource for every software professional who wants to accelerate innovation in existing systems, or build new systems that will be easier to maintain and evolve.

Technical Debt in Practice

Technical Debt in Practice PDF Author: Neil Ernst
Publisher: MIT Press
ISBN: 0262542110
Category : Computers
Languages : en
Pages : 305

Get Book Here

Book Description
The practical implications of technical debt for the entire software lifecycle; with examples and case studies. Technical debt in software is incurred when developers take shortcuts and make ill-advised technical decisions in the initial phases of a project, only to be confronted with the need for costly and labor-intensive workarounds later. This book offers advice on how to avoid technical debt, how to locate its sources, and how to remove it. It focuses on the practical implications of technical debt for the entire software life cycle, with examples and case studies from companies that range from Boeing to Twitter. Technical debt is normal; it is part of most iterative development processes. But if debt is ignored, over time it may become unmanageably complex, requiring developers to spend all of their effort fixing bugs, with no time to add new features--and after all, new features are what customers really value. The authors explain how to monitor technical debt, how to measure it, and how and when to pay it down. Broadening the conventional definition of technical debt, they cover requirements debt, implementation debt, testing debt, architecture debt, documentation debt, deployment debt, and social debt. They intersperse technical discussions with "Voice of the Practitioner" sidebars that detail real-world experiences with a variety of technical debt issues.

Software Design X-Rays

Software Design X-Rays PDF Author: Adam Tornhill
Publisher: Pragmatic Bookshelf
ISBN: 1680505807
Category : Computers
Languages : en
Pages : 356

Get Book Here

Book Description
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.

The Mikado Method

The Mikado Method PDF Author: Daniel Brolund
Publisher: Simon and Schuster
ISBN: 1638353182
Category : Computers
Languages : en
Pages : 373

Get Book Here

Book Description
Summary The Mikado Method is a book written by the creators of this process. It describes a pragmatic, straightforward, and empirical method to plan and perform non-trivial technical improvements on an existing software system. The method has simple rules, but the applicability is vast. As you read, you'll practice a step-by-step system for identifying the scope and nature of your technical debt, mapping the key dependencies, and determining the safest way to approach the "Mikado"—your goal. About the Technology The game "pick-up sticks" is a good metaphor for the Mikado Method. You eliminate "technical debt" —the legacy problems embedded in nearly every software system— by following a set of easy-to-implement rules. You carefully extract each intertwined dependency until you expose the central issue, without collapsing the project. About the Book The Mikado Method presents a pragmatic process to plan and perform nontrivial technical improvements on an existing software system. The book helps you practice a step-by-step system for identifying the scope and nature of your technical debt, mapping the key dependencies, and determining a safe way to approach the "Mikado"—your goal. A natural by-product of this process is the Mikado Graph, a roadmap that reflects deep understanding of how your system works. This book builds on agile processes such as refactoring, TDD, and rapid feedback. It requires no special hardware or software and can be practiced by both small and large teams. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. What's Inside Understand your technical debt Surface the dependencies in legacy systems Isolate and resolve core concerns while creating minimal disruption Create a roadmap for your changes About the Authors Ola Ellnestam and Daniel Brolund are developers, coaches, and team leaders. They developed the Mikado Method in response to years of experience resolving technical debt in complex legacy systems. Table of Contents PART 1 THE BASICS OF THE MIKADO METHOD Meet the Mikado Method Hello, Mikado Method! Goals, graphs, and guidelines Organizing your work PART 2 PRINCIPLES AND PATTERNS FOR IMPROVING SOFTWARE Breaking up a monolith Emergent design Common restructuring patterns

Refactoring for Software Design Smells

Refactoring for Software Design Smells PDF Author: Girish Suryanarayana
Publisher: Morgan Kaufmann
ISBN: 0128016469
Category : Computers
Languages : en
Pages : 259

Get Book Here

Book Description
Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue. - Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects

Agile Processes in Software Engineering and Extreme Programming

Agile Processes in Software Engineering and Extreme Programming PDF Author: Hubert Baumeister
Publisher: Springer
ISBN: 331957633X
Category : Computers
Languages : en
Pages : 311

Get Book Here

Book Description
This book is open access under a CC BY license. The volume constitutes the proceedings of the 18th International Conference on Agile Software Development, XP 2017, held in Cologne, Germany, in May 2017. The 14 full and 6 short papers presented in this volume were carefully reviewed and selected from 46 submissions. They were organized in topical sections named: improving agile processes; agile in organization; and safety critical software. In addition, the volume contains 3 doctoral symposium papers (from 4 papers submitted).

An Elegant Puzzle

An Elegant Puzzle PDF Author: Will Larson
Publisher: Stripe Press
ISBN: 1953953336
Category : Computers
Languages : en
Pages : 281

Get Book Here

Book Description
A human-centric guide to solving complex problems in engineering management, from sizing teams to handling technical debt. There’s a saying that people don’t leave companies, they leave managers. Management is a key part of any organization, yet the discipline is often self-taught and unstructured. Getting to the good solutions for complex management challenges can make the difference between fulfillment and frustration for teams—and, ultimately, between the success and failure of companies. Will Larson’s An Elegant Puzzle focuses on the particular challenges of engineering management—from sizing teams to handling technical debt to performing succession planning—and provides a path to the good solutions. Drawing from his experience at Digg, Uber, and Stripe, Larson has developed a thoughtful approach to engineering management for leaders of all levels at companies of all sizes. An Elegant Puzzle balances structured principles and human-centric thinking to help any leader create more effective and rewarding organizations for engineers to thrive in.

Proceedings of Sixth International Congress on Information and Communication Technology

Proceedings of Sixth International Congress on Information and Communication Technology PDF Author: Xin-She Yang
Publisher: Springer Nature
ISBN: 9811623805
Category : Technology & Engineering
Languages : en
Pages : 1002

Get Book Here

Book Description
This book gathers selected high-quality research papers presented at the Sixth International Congress on Information and Communication Technology, held at Brunel University, London, on February 25–26, 2021. It discusses emerging topics pertaining to information and communication technology (ICT) for managerial applications, e-governance, e-agriculture, e-education and computing technologies, the Internet of things (IoT) and e-mining. Written by respected experts and researchers working on ICT, the book offers a valuable asset for young researchers involved in advanced studies. The book is presented in four volumes.

Continuous Architecture in Practice

Continuous Architecture in Practice PDF Author: Eoin Woods
Publisher: Addison-Wesley Professional
ISBN: 0136523684
Category : Computers
Languages : en
Pages : 449

Get Book Here

Book Description
Update Your Architectural Practices for New Challenges, Environments, and Stakeholder Expectations "I am continuously delighted and inspired by the work of these authors. Their first book laid the groundwork for understanding how to evolve the architecture of a software-intensive system, and this latest one builds on it in some wonderfully actionable ways." --Grady Booch, Chief Scientist for Software Engineering, IBM Research Authors Murat Erder, Pierre Pureur, and Eoin Woods have taken their extensive software architecture experience and applied it to the practical aspects of software architecture in real-world environments. Continuous Architecture in Practice provides hands-on advice for leveraging the continuous architecture approach in real-world environments and illuminates architecture's changing role in the age of Agile, DevOps, and cloud platforms. This guide will help technologists update their architecture practice for new software challenges. As part of the Vaughn Vernon Signature Series, this title was hand-selected for the practical, delivery-oriented knowledge that architects and software engineers can quickly apply. It includes in-depth guidance for addressing today's key quality attributes and cross-cutting concerns such as security, performance, scalability, resilience, data, and emerging technologies. Each key technique is demonstrated through a start-to-finish case study reflecting the authors' deep experience with complex software environments. Key topics include: Creating sustainable, coherent systems that meet functional requirements and the quality attributes stakeholders care about Understanding team-based software architecture and architecture as a "flow of decisions" Understanding crucial issues of data management, integration, and change, and the impact of varied data technologies on architecture Architecting for security, including continuous threat modeling and mitigation Architecting for scalability and resilience, including scaling microservices and serverless environments Using architecture to improve performance in continuous delivery environments Using architecture to apply emerging technologies successfully Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.