When I’m making todo list items, I always go back to the following essay from Ryan Singer to remind me the areas of concern.
The natural approach most people take at this point is to divide the work by role. They create a “design” todo list and a “programming” todo list.
The problem with this approach is nobody can glance at these two lists and absorb a “state of the world” from them. They don’t correspond to a map.
Here is the same todo list refactored to show areas of concern instead of division of roles: