Suppose 10 days were allotted to add a feature on which solely you are working on. How many days will you allot to create class/architecture designs, coding and testing the feature.
Feel free to elaborate the approach for each although not necessary.
I would aim to get _some_ minimum testable version done in 2 days. It would likely be missing many essential features, but it would at least accept input, do something with it (perhaps just parsing it), and then return output. Then I begin testing. Thereafter, I am adding a piece to it at a time and testing.<p>Sometimes I do this with automated testing, but I'll admit that sometimes I don't. I never regret the time to set it up as automated testing early, though.<p>I try to finish by day 8, which means that I won't actually finish then but in the last 2 days I'm taking care of the fiddly bits (more elegant error handling, logging if necessary, weird edge cases), basically things I didn't even think of needing to do when I started. So, I plan to finish by day 8 so that I have some time left for things that were not initially in scope which (for whatever technical, business, or political reason) cannot be left out in version 1.