For instance, if I had to write code to read data from a GPS unit, I might break it up like this:
* Find data spec on new GPS unit. * Look up current GPS interface.. if none, write an example and design an API around the example. * Write out header file (We use C++... that's another story :D) * Write function 1. ... * Write function n. * Procure GPS unit. * Debug.
I always feel some personal inertia against doing a task like "Write class to load data from the new GPS unit", but it's pretty hard to look at each subtask and say "err, I guess I should organize my inbox." Which I would probably do otherwise.
I have trouble finding tasks that are indivisible, but they exist! Designing and implementing custom data structures is one that I've run into recently... it has an ambiguous up-front design cost that makes it hard to divvy-up work.