• Complain

Neil Ernst - Technical Debt in Practice : How to Find It and Fix It

Here you can read online Neil Ernst - Technical Debt in Practice : How to Find It and Fix It full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2021, publisher: MIT Press, genre: Romance novel. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

No cover

Technical Debt in Practice : How to Find It and Fix It: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Technical Debt in Practice : How to Find It and Fix It" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

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.

Neil Ernst: author's other books


Who wrote Technical Debt in Practice : How to Find It and Fix It? Find out the surname, the name of the author of the book and a list of all author's works by series.

Technical Debt in Practice : How to Find It and Fix It — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Technical Debt in Practice : How to Find It and Fix It" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Contents
Guide
Pagebreaks of the print version
Technical Debt in Practice How to Find It and Fix It Neil Ernst Rick - photo 1

Technical Debt in Practice

How to Find It and Fix It

Neil Ernst, Rick Kazman, and Julien Delange

The MIT Press

Cambridge, Massachusetts

London, England

2021 The Massachusetts Institute of Technology

All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher.

The MIT Press would like to thank the anonymous peer reviewers who provided comments on drafts of this book. The generous work of academic experts is essential for establishing the authority and quality of our publications. We acknowledge with gratitude the contributions of these otherwise uncredited readers.

Library of Congress Cataloging-in-Publication Data

Names: Ernst, Neil, author. | Kazman, Rick, author. | Delange, Julien, author.

Title: Technical debt in practice : how to find it and fix it / Neil Ernst, Rick Kazman, and Julien Delange.

Description: Cambridge, Massachusetts : The MIT Press, 2021. | Includes bibliographical references and index.

Identifiers: LCCN 2020041281 | ISBN 9780262542111 (paperback)

Subjects: LCSH: Computer softwareDevelopmentQuality control. | Software failuresPrevention. | Project management. | Maintainability (Engineering)

Classification: LCC QA76.76.Q35 E76 2021 | DDC 005.3028/7dc23

LC record available at https://lccn.loc.gov/2020041281

d_r0

For Kieran, Elliott, and Kambria, who toured our old hometown while we labored on this. N.E.

For Hong-Mei, who humored our rants and cheered us on. R.K.

For Alejandra and Chewie. J.D.

Contents
  1. List of Figures
  2. Technical debt quadrants.
  3. Fishbone diagram of the causes of technical debt, per software lifecycle phase. A fishbone (or Ishikawa) diagram represents a problem on the right (head) and causes of that problem on the left.
  4. Technical debt and the software value curve.
  5. A value stream model, with sample tools. The arrows show how the idea moves from an issue tracker all the way to an A/B test result. This visualization can highlight bottlenecks, where a feature takes the most time to progress.
  6. A DSM of an industrial project showing structural dependencies.
  7. A DSM of the project in figure 4.1, now showing evolutionary dependencies.
  8. Design complexity and design flaws in the real world.
  9. Source: left image: https://pxhere.com/en/photo/996703 ; right image: Rick Kazman.
  10. Example of a cyclic dependency.
  11. Architecture antipatterns in Apache Hadoop.
  12. Data collection and analysis for the SS1 project.
  13. Debt calculation for the SS1 project.
  14. Architecture debt calculation.
  15. Good commit messages explain the change and include other details.
  16. Bad commit messages dont explain the change.
  17. Dashboard from code-inspector showing trends in a codebase. (a) Metrics and trends; (b) categorized violations; (c) duplicated code.
  18. Example dashboard offered by coveralls.io: coverage metrics are showing which files have appropriate levels of testing and which files require more testing.
  19. Example of metrics trends (CPU and Memory utilization) over a day.
  20. Winston Churchill giving the V (for Victory) sign in 1943.
  21. The machine learning ecosystem. Note the small size of the machine learning codethe modelrelative to the entire system.
  22. Exponential growth in communication networks.
  23. Technical debt and the software value curve.
  24. List of Tables
  25. Industrial benchmark data. Higher DL and lower PC are better.
  26. Architectural measures for the platform with and without co-change information.
  27. Architecture root analysis
  28. Design flaws in Brightsquids platform
  29. Architecture flaws in the platform before and after refactoring
  30. Productivity measures for Brightsquids platform
  31. Project context and documentation approaches
  32. Approaches to documentation
  33. Community smells (adapted from [Tamburri 2016] and [Tamburri 2019])
  34. Community smell mitigations
  35. List of Boxes
  36. Financial Literacy Test
  37. Voice of the Practitioner: Andriy Shapochka
  38. Types of Requirements
  39. Requirements Traceability in Chromium
  40. Lean and Agile and Requirements Debt
  41. Coupling and Cohesion: A Primer
  42. Design Principles
  43. Finding Security Design Flaws in Chromium
  44. Software Metrics and Lines of Code
  45. Voice of the Practitioner: Marco Bartolini
  46. To Use or Not to Use a Security Framework
  47. Code and Bug Duplication
  48. Voice of the Practitioner: Nicolas Devillard
  49. Voice of the Practitioner: Andriy Shapochka
  50. Voice of the Practitioner: Marco Bartolini
  51. Voice of the Practitioner: Julien Danjou
  52. Cost Estimation and Technical Debt
  53. Voice of the Practitioner: Andriy Shapochka
Acknowledgments

This book would not have happened without the help and inspiration of a lot of different people. The three of us met while working at the Carnegie Mellon University Software Engineering Institute in Pittsburgh. Thanks to all our coworkers at the SEI, including Robert Nord, Peter Feiler, Ipek Ozkaya, James Ivers, Felix Bachmann, John Klein, Stephanie Bellomo, Phil Bianco, and Chuck Weinstock. Linda Northrop remains an inspiration.

Rick Kazman would especially like to thank his research collaborators, including Yuanfang Cai, Damian Tamburri, Humberto Cervantes, and the group at SoftServe, including Serge Haziyev and Andriy Shapochka.

Julien would like to thank Julien Danjou and Nicolas Devillard for their time.

Neil would like to thank his collaborators, as well as the anonymous reviewers of this manuscript, who although causing more late nights, doubtless improved the final version.

1Introduction

There is scarcely anything that drags a person down like debt.

P. T. Barnum

1.1What Is Technical Debt?

If you have a credit card or a mortgage or a car loan, you already know a bit about debt. You are also probably familiar with the many metaphors that surround the ways we think about and talk about debt: crushing debt, drowning in debt, buried in debt. We talk of debt in relationships, or the social debt that you feel after your neighbor invited you to dinner and you have not reciprocated. Metaphors are pervasive in our lives. So it should come as no surprise that we also apply this metaphor to the technical world. The fact that you cracked the cover of this book suggests that this metaphor is already speaking to you. The metaphor of technical debt is something that every software developer has at least heard of. But metaphors only take you so far. Our purpose in writing this book is to move us all beyond just the metaphor into actionable insights, methods, and tools that allow us to deal with technical debt as software engineers.

Every organization that creates nontrivial software systems has technical debt, and the software development world is becoming increasingly conscious of this debt. Take Facebook, for example: the company originally used the PHP language to prototype and deliver their product quickly as a young company, but then as they grew they had to face the limitations of their early technical decisions. PHP simply was not able to scale and provide the kind of performance that they needed to support their ever-growing userbase, and so Facebook had to find solutions to pay this debt back; in their case, the solution was to create a PHP transpiler. Almost all companies face such issues, and this book provides many concrete examples of technical debtfrom Boeing and Airbus to Twitter and many others. But we do not just provide horror stories (although there are plenty). We provide a concrete set of practical solutionsmethods, tools, and techniquesfor dealing with technical debt. An important message of this book is not that you should never incur debt; it is that you should not

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Technical Debt in Practice : How to Find It and Fix It»

Look at similar books to Technical Debt in Practice : How to Find It and Fix It. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Technical Debt in Practice : How to Find It and Fix It»

Discussion, reviews of the book Technical Debt in Practice : How to Find It and Fix It and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.