The Clean Coder by Robert (Uncle Bob) C. Martin
This book is part of the Robert C. Martin series, it contains his opinionated version of what a software developer (craftsman) should be. I agree with a lot of what he says in the book but I do think he has been been influenced a fair amount by the fact he is a consultant and gets to just leave at the end of the contract. There is a fair amount of advise in the book broken down into a few broad categories, career, development, testing.
This category is spread out in the book with chapter 1 summarizing a fair amount of the carerr advise. I liked the chapters on Saying No and Saying Yes, which showed how not quite saying what you mean (being a people pleaser) can turn around a bite you later. One part a had a partial disagreement with "Uncle Bob" was a learning and the employer's responsibility there. He says it is not the employer's responsibility at all. I would say that is true however if you have an employer like that, leave, they are not worth your time.
Uncle Bob is a big practitioner of TDD (test driven development), which in my opinion is a good thing to do. The one thing he talks about as far as development that I do not think that is practiced enough is acceptance testing (and since it seems a lot of companies are getting away from having quality assurance departments is something devs will need to learn to do.)
Interestingly enough Robert talks about "flow" but not in the way that most developers talk about. Most developers talk about it being the ideal state and where they get the most done, whereas Robert think that it is a bad thing, and where most bug get introduced. Not sure where I fall in this idea, I work in an open office environment where it is very hard or impossible to into the flow.
I do think this book is worth reading, possibly multiple time through out your career in software development. I will give this book a rating of 4 out of 5 stars.
Brief pointers on areas in each chapter I found interesting.
Taking Responsibility, Work Ethic
2. Saying No
The cost of saying yes and weasel words.
3. Saying Yes
5. Test Driven Development
It works. The adapter ports pattern.
Code Katas, Coding Dojo
7. Acceptance Testing
Happy Path, Basic Error Testing
8. Testing Strategies
Code coverage, Unit Testing `100%, Component Tests ~50%, Integration Tests ~20%, System tests ~10%, Exploratory ~5% (manual). Automate, Automated, Automated.
9. Time Management
Time Boxing, Meetings, Blind Alleys
The law of large numbers.
Working with the business
13. Teams and Projects
Not us verse them.
14, Mentoring, Apprenticeship, and Craftsmanship
Moving up the career path from Apprentice to Journeyman to Master.comments powered by Disqus