All readings
Clean Craftsmanship

Clean Craftsmanship

Robert C. Martin covers the three pillars of software craftsmanship: TDD disciplines with practical examples, professional standards for teams, and the ethical responsibilities of programmers.

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]
hjklmove /search yyank dtheme ilang ttoc ?help

Keyboard Shortcuts

Movement vim hjkl

hPrevious post← left
jScroll down↓ down
kScroll up↑ up
lNext post→ right
ggScroll to top
GScroll to bottom
nNext sectionnext heading
NPrevious sectionprevious heading

Go to g = go

ghHomego home
gbBloggo blog
grReadingsgo readings
gpTopicsgo topics
geServicesgo services
gaTalksgo talks

Actions

/Searchvim search
yYank URLvim yank
dToggle themedark mode
tToggle TOCtable of contents
iSwitch languagei18n
fFollow linkfollow link

General

?Show this help
ShiftHold to show hints
EscClose
:Terminalvim command mode