profile picture

Clean Craftsmanship Robert C. Martin

Disciplines, Standards, and Ethics

July 11, 2022 - 587 words - 3 mins Found a typo? Edit me
software clean-code

The book is divided into three parts: the disciplines, the standards, and the ethics.

The 1st part is the most technical one. It guides you with TDD examples, showing how testing can help you to design your code.

The 2nd part is about productivity, quality, and courage.

The 3rd part is about how did we get here in terms of people who develop software, and our responsibility within our ethics about do no harm, integrity, and teamwork.


One of my favourite parts from the book:

Our software industry is wildly dynamic and changing; therefore, we must all be continuously aggressive learners.

How and when do you do this learning? If your employer provides you the time and space to do this kind of learning, then take as much advantage of it as you can. If your employer is not helpful, then you’ll have to learn on your own time.

Be prepared to spend several hours per month on it. Make sure you have the personal time set aside for it.

Yes, I know you have family obligations, bills to pay, planes to catch, and you’ve got a life. Okay, but you also have a profession. And professions need care and maintenance. I expect us all to be continuous aggressive learners.

Chapter 11. Courage - Continuous Aggressive Learning


Index

Part I: The Disciplines

Chapter 1. Craftsmanship

  • Extreme Programming
  • Test-Driven Development
  • Refactoring
  • Simple Design
  • Collaborative Programming
  • Acceptance Tests

Chapter 2. Test-Driven Development

  • Overview
  • The Basics

Chapter 3. Advanced TDD

  • Getting Stuck
  • Arrange, Act, Assert
  • Test Doubles
  • Architecture

Chapter 4. Test Design

  • Testing Databases
  • Testing GUIs
  • Test Patterns
  • Test-Specific Subclass
  • Humble Object
  • Test Design
  • Breaking the Correspondence

Chapter 5. Refactoring

  • What Is Refactoring?
  • The Basic Toolkit
  • Extract Method
  • The Disciplines

Chapter 6. Simple Design

  • YAGNI
  • Covered by Tests
  • Coverage
  • Design?
  • Maximize Expression
  • The Underlying Abstraction
  • Minimize Duplication
  • Minimize Size

Chapter 7. Collaborative Programming

Chapter 8. Acceptance Tests

  • The Discipline
  • The Continuous Build

Part II: The Standards

Chapter 9. Productivity

  • We Will Never Ship S**T
  • Inexpensive Adaptability
  • We Will Always Be Ready
  • Stable Productivity

Chapter 10. Quality

  • Continuous Improvement
  • Fearless Competence
  • Extreme Quality
  • We Will Not Dump on QA
  • QA Will Find Nothing
  • Test Automation
  • Automated Testing and User Interfaces
  • Testing the User Interface

Chapter 11. Courage

  • We Cover for Each Other
  • Honest Estimates
  • You Must Say NO
  • Continuous Aggressive Learning
  • Mentoring

Part III: The Ethics

  • The First Programmer
  • Seventy-Five Years
  • Nerds and Saviors
  • Role Models and Villains
  • We Rule the World
  • Catastrophes
  • The Oath

Chapter 12. Harm

  • First, Do No Harm
  • Best Work
  • Repeatable Proof

Chapter 13. Integrity

  • Small Cycles
  • Relentless Improvement
  • Maintain High Productivity

Chapter 14. Teamwork

  • Work as a Team
  • Estimate Honestly and Fairly
  • Respect
  • Never Stop Learning

I found this chat in YouTube where Uncle Bob talks about most of the topics form his book Clean Craftsmanship.

Listen out for:
* Quote & Intro - [00:00:00]
* Career Journey - [00:07:29]
* Clean Craftsmanship - [00:10:53]
* Programmer as a Profession - [00:15:31]
* Craftsmanship - [00:18:45]
* Disciplines - [00:22:45]
* Disciplines: Test-Driven Development - [00:28:49]
* Disciplines: Refactoring - [00:34:31]
* Code Coverage - [00:39:02]
* Standard: Never Ship S**t - [00:42:35]
* Standard: Always Be Ready - [00:47:15]
* Ethics: Do No Harm - [00:50:00]
* Ethics: Estimate Honestly - [00:53:56]
* 2 Tech Lead Wisdom - [00:57:50]
380 pages