Clean Coder, The: A Code of Conduct for Professional Programmers

Prentice Hall
Robert C. Martin  
Total pages
May 2011
Related Titles

Product detail

Product Price CHF Available  
Clean Coder, The: A Code of Conduct for Professional Programmers
50.30 approx. 7-9 days


In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honour, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.

Readers will learn

  • What it means to behave as a true software craftsman
  • How to deal with conflict, tight schedules, and unreasonable managers
  • How to get into the flow of coding, and get past writer’s block
  • How to handle unrelenting pressure and avoid burnout
  • How to combine enduring attitudes with new development paradigms
  • How to manage your time, and avoid blind alleys, marshes, bogs, and swamps
  • How to foster environments where programmers and teams can thrive
  • When to say “No”–and how to say it
  • When to say “Yes”–and what yes really means

Table of Contents

Foreword         xiii

Preface         xix

Acknowledgments         xxiii

About the Author         xxix

On the Cover         xxxi


Pre-Requisite Introduction          1


Chapter 1: Professionalism          7

Be Careful What You Ask For    8

Taking Responsibility    8

First, Do No Harm    11

Work Ethic    16

Bibliography    22


Chapter 2: Saying No          23

Adversarial Roles    26

High Stakes    29

Being a “Team Player”    30

The Cost of Saying Yes    36

Code Impossible    41


Chapter 3: Saying Yes         45

A Language of Commitment    47

Learning How to Say “Yes”    52

Conclusion    56


Chapter 4: Coding          57

Preparedness    58

The Flow Zone    62

Writer’s Block    64

Debugging    66

Pacing Yourself    69

Being Late    71

Help    73

Bibliography    76


Chapter 5: Test Driven Development         77

The Jury Is In    79

The Three Laws of TDD    79

What TDD Is Not    83

Bibliography    84


Chapter 6: Practicing         85

Some Background on Practicing    86

The Coding Dojo    89

Broadening Your Experience    93

Conclusion    94

Bibliography    94


Chapter 7: Acceptance Testing         95

Communicating Requirements    95

Acceptance Tests    100

Conclusion    111


Chapter 8: Testing Strategies         113

QA Should Find Nothing    114

The Test Automation Pyramid    115

Conclusion    119

Bibliography    119


Chapter 9: Time Management         121

Meetings    122

Focus-Manna    127

Time Boxing and Tomatoes    130

Avoidance    131

Blind Alleys    131

Marshes, Bogs, Swamps, and Other Messes    132

Conclusion    133


Chapter 10: Estimation         135

What Is an Estimate?    138

PERT    141

Estimating Tasks    144

The Law of Large Numbers    147

Conclusion    147

Bibliography    148


Chapter 11: Pressure          149

Avoiding Pressure    151

Handling Pressure    153

Conclusion    155


Chapter 12: Collaboration         157

Programmers versus People    159

Cerebellums    164

Conclusion    166


Chapter 13: Teams and Projects         167

Does It Blend?    168

Conclusion    171

Bibliography    171


Chapter 14: Mentoring, Apprenticeship, and Craftsmanship          173

Degrees of Failure    174

Mentoring    174

Apprenticeship    180

Craftsmanship    184

Conclusion    185


Appendix A: Tooling          187

Tools    189

Source Code Control    189

IDE/Editor    194

Issue Tracking    196

Continuous Build    197

Unit Testing Tools    198

Component Testing Tools    199

Integration Testing Tools    200

UML/MDA    201

Conclusion    204


Index         205


Robert C. Martin (“Uncle Bob”) has been a programmer since 1970. He is founder and president of Object Mentor, Inc., an international firm of highly experienced software developers and managers who specialize in helping companies get their projects done. Object Mentor offers process improvement consulting, object-oriented software design consulting, training, and skill development services to major corporations worldwide. Martin has published dozens of articles in various trade journals and is a regular speaker at international conferences and trade shows.


He has authored and edited many books, including:


  • Designing Object Oriented C++ Applications Using the Booch Method
  • Patterns Languages of Program Design 3
  • More C++ Gems
  • Extreme Programming in Practice
  • Agile Software Development: Principles, Patterns, and Practices
  • UML for Java Programmers
  • Clean Code

A leader in the industry of software development, Martin served for three years as editor-in-chief of the C++ Report, and he served as the first chairman of the Agile Alliance.


Robert is also the founder of Uncle Bob Consulting, LLC, and cofounder with his son Micah Martin of The Clean Coders LLC.

Reader Review(s)

“'Uncle Bob' Martin definitely raises the bar with his latest book. He explains his expectation for a professional programmer on management interactions, time management, pressure, on collaboration, and on the choice of tools to use. Beyond TDD and ATDD, Martin explains what every programmer who considers him- or herself a professional not only needs to know, but also needs to follow in order to make the young profession of software development grow.”

-Markus Gärtner

Senior Software Developer

it-agile GmbH


“Some technical books inspire and teach; some delight and amuse. Rarely does a technical book do all four of these things. Robert Martin's always have for me and The Clean Coder is no exception. Read, learn, and live the lessons in this book and you can accurately call yourself a software professional.”

-George Bullock

Senior Program Manager

Microsoft Corp.


“If a computer science degree had 'required reading for after you graduate,' this would be it. In the real world, your bad code doesn't vanish when the semester's over, you don't get an A for marathon coding the night before an assignment's due, and, worst of all, you have to deal with people. So, coding gurus are not necessarily professionals. The Clean Coder describes the journey to professionalism . . . and it does a remarkably entertaining job of it.”

-Jeff Overbey

University of Illinois at Urbana-Champaign


The Clean Coder is much more than a set of rules or guidelines. It contains hard-earned wisdom and knowledge that is normally obtained through many years of trial and error or by working as an apprentice to a master craftsman. If you call yourself a software professional, you need this book.”

-R. L. Bogetti

Lead System Designer

Baxter Healthcare