Programming is a series of moving parts. Many of them on their own are simple enough to grasp. It's the 'but what about...?' that complicates things. The tasks that we want to do online are not developed yet. They need to be created. That means that they take time, thought, and collaboration.

This morning I was working on putting the pieces together for a small application. It was not too long after I succeeded with my original ambition that I had already thought of what else it needed. This is the certainty of labor. There is always something else to do.

However, the metaphor I thought of this morning is that coding is like drawing a feather. Yes, drawing. A feather. How do you draw a feather? Well, the first step is to

1. start at the start
2. end at the end. The end is the pleasant user experience
3. then, there is all the 'what ifs'
4. then, you code for those