On Iteration

Iteration is how I work best, in just about every aspect of my work. When building software, working in iterations from nothing, to a basic structure, to some functionality, to complete functionality, to final polish.

When I'm learning something new, I start at a very high level, the 30,000 foot view. Then I need to make several passes on the material, zooming in a little more on each pass.

When I'm teaching, I try to iterate on ideas from abstract to concrete. From simple to complex. Working in steps to create a baseline of general understanding, then filling in blanks and expanding on ideas as I go.

This pattern of iteration isn't just for building tech, or learning and teaching. I've done some pretty major home renovation projects in the past, and the work of building out physical structures is the same way. Rough framing, followed by dry wall, followed by tape, spackle and sanding. Then comes the primer, paint and then trim. Each layer gets a little more clean, a little less forgiving as you get closer to a finished product. Windows go in, then you pack them out, then finally add sills and trim. Each layer builds on the one before. As you build up, you need to be more precise, but you also have the ability to cover up small imperfections and fill in gaps (literal gaps, like the kind you fill with insulation and calk) from the previous step.

I'm not entirely sure where I'm going with this yet, but I think a lot about the overlap between my day job and the work I do when working on physical construction.