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.

blog comments powered by Disqus