Whether you’re doing Agile or traditional development, you should think of your work in discrete parts that can be completed The reason you want to work this way is to avoid the problem where the last 10% of the work takes 30% or more of the time. If you have any experience in software development, you know that part of the project where you thought you were going to be done in a couple of more days, with plenty of time to make the delivery date, and you find you have to work like crazy to finish in two weeks, and now you’re late.
This happens, because when you do a bit of work, you don’t finish it. The mantra of every software developer should be, “Pick up a piece of work, finish it, and put it down.” And, by “finish” I mean everything that needs to be done. Assuming you require all of these, have the code inspected, run the standards-checking tool, correct any metrics like cyclomatic complexity and afferent coupling, complete your unit tests and make sure they all pass, have the code tested by the QA group and fix all bugs, run the security scans and resolve issues, automate all tests, etc., etc., etc. When these things get put off, the following things slow you down:
- You have to remember how you wrote the code. It may be quick, but not as quick as it would have been while you were still in the code.
- Fixing issues impacts other work.
- You feel under a time crunch, which causes you to hurry and do work that is not your best.
- You try to defer bugs to a later build, which impacts what you can accomplish in that build.
In short, don’t put off work. When you tackle a piece of your software project, finish it before you put it down. Then you can relax knowing that part is done, and focus your attention on the new code you have to write.