Genetic or Dialectic


—framework —design philosophy

The software industry vascillates between “agile” and “waterfall,” “delivery” and “outcome.” Most people, consciously or otherwise, pick a side: iteration or pre-determination. I’ve found myself on both sides at different times, explaining to zealous new designers that it’s okay to skip the research if we’ll learn faster by getting code to production or nudging mid-career folks to look at the whole picture before finalizing a quick spot solution that will break something else in the holistic user experience.

I think of these two perspectives as modes rather than gospels. I’ve observed that the strongest software professionals can think in both ways, deploying the appropriate way of thought to each emergent situation. While these two modes go by many names, I recognize them as genetic or dialectic.

Genetic


—reactive —realistic —rhizomatic (root-like) —expansive —inclusive —bottom-up

The genetic mode is is about iteration speed. It works generationally—one iteration gives rise to the next.

This mode works well when what you need to accomplish is narrow enough that one can afford to try many variations in short order and the environment is rich with signals that can inform direction quickly. In the right conditions, this mode produces something through iteration that is often far better than what was intitially conceived—this is the mode for making a solution to a known problem better and faster than the competition.

Dialectic


—premeditated —idealistic —arborescent (tree-like) —reductive —conclusive —top-down

The dialectic mode is about reasoning. Thesis and antithesis join to form synthesis—intentionality is key.

This mode is good for working on something complicated enough that the bulk of the effort will be spent on getting to the first release, or when the environment will not give you signals quickly enough to iterate. This mode, when used appropriately, allows companies to make big bets with design. This is the mode for transformational change and solving problems that have yet to be solved, where part of the job is defining the problem space to the market through materializing the first solution.