The Clean Coder

I’m currently reading The Clean Coder by Robert C. Martin. Here are some of my favorite quotes:


“There is no doubt that some of us can make more efficient use of our focus-manna by consuming moderate amounts of caffeine. But take care. Caffeine also puts a strange jitter on our focus.”


“Programmers tend to be arrogant, self-absorbed introverts.We didn’t go into this business because we like people. Most of us got into programming because we prefer to deeply focus on sterile minutia, juggle lots of concepts simultaneously, and in general prove to ourselves that we have brains the size of a planet, all while not having to interact with the messy complexities of other people.”


“I have consulted for teams that failed to take broken tests seriously. They were ‘too busy’ to fix the broken tests so they set them aside, promising to fix them later. In one case the team actually took the broken tests out of the build because it was too inconvenient to see them fail. Later, after releasing to the customer, they realized that they had forgotten to put those tests back into the build. They learned this because an angry customer was calling them with bug reports.”


“The unit tests are documents. They describe the lowest-level design of the system. They are unambiguous, accurate, written in a language that the audience understands, and are so formal that they execute. They are the best low-level documentation that can exist. What professional would not provide such documentation?”


“I’ve seen products ruined and companies destroyed by software messes. I’ve seen the productivity of teams decrease from jitterbug to dirge in just a few months. Nothing has a more profound or long-lasting negative effect on the productivity of a software team than a mess. Nothing. […] At some point you realize that you made a wrong design choice when you started, and that your code doesn’t scale well in the direction that the requirements are moving. This is the inflection point! You can still go back and fix the design. Going back looks expensive because you’ll have to rework the existing code, but going back will never be easier than it is now. […] There is no sadder sight than a team of software developers fruitlessly slogging through an ever-deepening bog.”


“Somehow the software development industry has gotten the idea that programmers are programmers, and that once you graduate you can code. Indeed, it is not at all uncommon for companies to hire kids right out of school, form them into ‘teams’, and ask them to build the most critical systems. It’s insane!”