Duplication Imposed – It’s the environment Diff languages, code, documentation and comments. Inadvertent – Developers didn’t realize Truck, Driver and DeliveryRoute (Distribution industry)
Duplication Impatient – Lazy developers Why not copy paste the existing code or class. It needs discipline and willingness to save pain later Inter-developer duplication Encourage active and frequent communication between developers
Orthogonality Two or more things are orthogonal if changes in one do not affect any other.
Benefits of orthogonality Forces the developer to write independent and small code. Reduces development time and testing Reusable code. Frequency of change in small code is relatively less than a Bigger piece of code. Easier to slice out diseased sections of code.
Tip Tip 14 Eliminate effects between unrelated things
Estimating Anything can be estimated even with missing information only if you are comfortable with estimation. Everyone can estimate its just some are more accurate than other. Estimation is always contextual. Estimating the value of pie differs in different context. Ask someone who has already done it.
Estimating Understand whats being asked. Build a model of the system. Break the model into component. Give points to each component. Keep track of your estimation.
Tip Tip 15 Estimate to avoid surprises Tip 16 Iterate the schedule with code
Debugging It is a painful thing to look at your own trouble and know that you yourself and no one else has made it. - Sophocles
Debugging Do not describe bug as “Object of terror”. Computer systems do what you tell them to do, not necessarily what you want them to do. No one writes a perfect software. Debugging is just a problem solving, do not make it a emotional subject. Do not spend time and energy laying blame on who created the bug. It doesnt matter the bug is your fault or someone elses. It is still your problem.
Debugging mindset The easiest person to deceive is ones self - Edward Bulwer
Debugging mindset Turn off your defences you use each day to protect your ego. Turn out any project pressure. Get yourself comfortable. Dont say “it cant happen” because quite clearly it can, and has.
Debugging Strategy Try to reproduce it. Get the full and detailed information from bug reporter. If you are lost try to explain it to someone else. The bug might be because of third party tool but it should not be your first thought. If your small change breaks the system than its most likely the small change responsible for it no matter how farfetched it seems to be.
Tip Tip 19 “Select” isnt Broken Tip 20 Don’t assume it – Prove it