The Clean Coder by Robert Martin copy24 things on TwosAs 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 actYou can’t take pride and honor in something that you can’t be held accountable forWhen a professional makes a mistake, he cleans up the messIt is unprofessional in the extreme to purposely send code that you know to be faulty to QASay. Mean. Do. The three parts to making a commitment. 1. You say you'll do it. 2. You mean it. 3. You actually do itIf you can't make your commitment, the most important thing is to raise a red flag as soon as possible to whoever you committed toI will ... by ...If you are tired or distracted, do not code. It creates waste. Find a way to eliminate the distractions and settle your mindWhen you are stuck, when you are tired, disengage for awhileTraining of less experienced programmers is the responsibility of those who have more experienceIt is the responsibility of professional developers (and stakeholders) to make sure that all ambiguity is removed from the requirementsAcceptance tests are tests written by a collaboration of the stakeholders and the programmers in order to define when a requirement is doneRemember, 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 themAcceptance tests are formal requirements documents that specify how the system should behave from the business’ point of viewEvery time someone commits a module, the continuous integration system should kick off a build, and then run all the tests in the systemAny argument that can’t be settled in five minutes can’t be settled by arguingA 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 dateProfessionals don’t make commitments unless they know they can achieve themOther 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 lieProfessionals draw a clear distinction between estimates and commitments. They do not commit unless they know for certain they will succeed. They communicate the proba- bility distribution of their estimates as clearly as possible, so that managers can make appropriate plansManage 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 holeSlow down. Think the problem through. Plot a course to the best possible outcome, and then drive towards that outcome at a reasonable and steady paceIt’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 youThe first responsibility of the professional programmer is to meet the needs of his or her employer