The Clean Coder by Robert Martin
by Parker · 25 things on Twos
- As an engineer, you have a depth of knowledge about your systems and projects that no managers can possibly have. With that knowledge comes the responsibility to act
- You can’t take pride and honor in something that you can’t be held accountable for
- When a professional makes a mistake, he cleans up the mess
- It is unprofessional in the extreme to purposely send code that you know to be faulty to QA
- Say. Mean. Do. The three parts to making a commitment. 1. You say you'll do it. 2. You mean it. 3. You actually do it
- If you can't make your commitment, the most important thing is to raise a red flag as soon as possible to whoever you committed to
- I will ... by ...
- If you are tired or distracted, do not code. It creates waste. Find a way to eliminate the distractions and settle your mind
- When you are stuck, when you are tired, disengage for awhile
- Training of less experienced programmers is the responsibility of those who have more experience
- It is the responsibility of professional developers (and stakeholders) to make sure that all ambiguity is removed from the requirements
- Acceptance tests are tests written by a collaboration of the stakeholders and the programmers in order to define when a requirement is done
- Remember, as a professional it is your job to help your team create the best software they can. That means that everybody needs to watch out for errors and slip-ups, and work together to correct them
- Acceptance tests are formal requirements documents that specify how the system should behave from the business’ point of view
- Every time someone commits a module, the continuous integration system should kick off a build, and then run all the tests in the system
- Any argument that can’t be settled in five minutes can’t be settled by arguing
- A commitment is something you must achieve. If you commit to getting something done by a certain date, then you simply have to get it done by that date
- Professionals don’t make commitments unless they know they can achieve them
- Other people are going to accept your commitments and make plans based upon them. The cost of missing those commitments, to them, and to your reputation, is enormous. Missing a commitment is an act of dishonesty only slightly less onerous than an overt lie
- Professionals draw a clear distinction between estimates and commitments. They do not commit unless they know for certain they will succeed. They communicate the probability distribution of their estimates as clearly as possible, so that managers can make appropriate plans
- Manage your stress. Sleepless nights won’t help you get done any faster. Sitting and fretting won’t help either. And the worst thing you could do is to rush! Resist that temptation at all costs. Rushing will only drive you deeper into the hole
- Slow down. Think the problem through. Plot a course to the best possible outcome, and then drive towards that outcome at a reasonable and steady pace
- It’s good to be passionate about what we do. But it’s also good to keep your eye on the goals of the people who pay you
- The first responsibility of the professional programmer is to meet the needs of his or her employer
- Partial solar eclipse