Step 6: Track Your Work!
This step is extremely important, second only to choosing small pieces. You can research and write code, you can test it and test it, but all that work would be worthless if you couldn't put all of the little snippets together in the end. I mentioned earlier that dependencies needed to be dealt with at the proper timethat time is now.
Once you've done one snippet, you're in a perfect position to choose another: You know the amount of work you can handle, how long it should take you, and the approach you'll take. Hopefully it was small enough that you were able to do the job in a few hours, and that's how you want every snippet to be: small enough to fit into normal development downtime, regular enough that you can schedule it at the end of the day or after lunch. Break each file or class into segments of roughly the same sizeagain, usually a function is the proper level to attack. If you have a very large function, consider breaking it into smaller logical pieces.
Earlier I talked about a piece of code depending on classes x and y. When all the snippets are completed for a set of dependent classes, it's imperative that you test them together. One basic way to achieve this is to integrate each class or major piece of code as you finish it. When you complete all of the snippets for class x, repeat the "Test, Test, Test" process for the class as a whole. It takes time, certainly, but going back and rewriting the class six months down the line will take even more time, and you likely won't have the same freedom that you do now. You can even reuse the harnesses you wrote to test each individual snippetremove the placeholders and dummy data, and let them fly on live streams of data. In this way, you can make certain that each snippet continues to work at the same time as you're ensuring that the class works. Once a set of these dependentbut independently testedclasses is complete, go after them in the same way: Put them together and test, test, test.