Ask HN: How do you split time between design, coding and testing for a feature?

5 points by kkcorps ↗ HN
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.

1 comment

[ 2.7 ms ] story [ 12.7 ms ] thread
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.

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.

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.