Thinking in terms of "add feature X" is not breaking it down enough. No feature is an atomic piece of code...if it was, "add feature X" would be enough to implement it and you would be done. The trick is to keep breaking down "add feature X" until you have a list of todo items that are close enough to code that they are then trivial to implement.