Lessons learned from The Clean Coder —24 December 2015
I finished reading Uncle Bob’s The Clean Coder. These are some of the things I learned that were the most important points for me:
-
Learn to say NO: don’t make promises you might not be able to keep. Know your limits. Take a firm stand in the face of management and pressures.
-
Avoid passive-aggressive stance. Don’t let others dig themselves into a hole by continuing bad practices and heading to dead ends.
-
If there is a problem with your project and your manager ignores your alerts, it is your duty as a professional to go over his head. Of course, warn him in advance, and do it right.
-
TDD is the only sensible way to develop testable software that guarantees high quality, easy modifications. Period.
-
Let acceptance tests drive the business rules, to ensure you build the right product. Customers always realize too late that they wanted something different.
-
Estimate accurately, and always include the interval of error. Practice estimating O, N, P, and calculate mu and sigma. Verify your accuracy over time.
-
Avoid “the zone”. You lose the big picture in the zone. If you notice having tunnel vision, take a step back, or switch to pair programming.
-
Avoid distractions such as music. (This may depend on the person. I know I cannot work with music on, but I know that others might be perfectly fine with it.)
-
Make sure to get enough sleep.
-
Tomato method: shut out all interruptions for 25 minutes and focus on one clear purpose, nothing else. After 25 minutes, handle any tasks you had to postpone. Then do another tomato…
-
If your productivity is down, don’t force it. Take a power break or switch tasks.
-
If you don’t follow your discipline during crisis then you don’t really believe in the discipline.
-
“Quick and dirty” is an oxymoron: dirty always means slow .
-
When you realize you cannot make a deadline, communicate it, stay calm, stay clean, stick to your disciplines. Try to get help. Don’t lose sleep.
-
Try pair programming. Uncle Bob claims he probably produces the best work during pair programming.
-
FitNesse looks like a great acceptance testing tool. Could be interesting.