liveBook · Manning

Creative process

As explained in The Creative Programmer

The sequence of cognitive and practical activities through which a creative work is developed, including preparation, incubation, illumination, verification, and presentation or acceptance.

Where does a useful idea begin: at the keyboard, on a walk, or after a failed test? The creative process is a set of interrelated activities: participate through preparatory work, incubate by taking distance, illuminate with an insight, verify whether it works and is worthwhile, then present it for peer acceptance. It is recursive rather than a one-way ladder. section 5.2

Treat the stages as habits to revisit, not gates to pass once:

  • Participate: gather material and try things; insight depends on sustained preparatory work. section 5.2
  • Incubate: interrupt the work, change activity, and leave room for insight to emerge. section 5.2
  • Illuminate: capture the idea, then return to experimentation rather than treating it as a finished answer. section 5.2
  • Verify: compile, run tests, and discard or rework ideas that do not hold up. section 5.2
  • Present/accept: seek peer acceptance only after verification; rejection can still lead to another iteration. section 5.2

For programming, creativity is usually a means for problem solving, not decoration for its own sake. When stuck, switch between diffuse and focused thinking, verify both ideas and implementations, and use feedback without letting criticism shut down the flow. The cycle resembles test-driven development: exploratory work and insight, verification, then more exploration before sharing a change. section 5.2 section 5.7

From a crowded task list to a new problem

A web application struggling with thousands of requests per second may prompt message queuing, load balancing, caching, or coroutines. More broadly, creativity can help find a problem before it is clearly defined: Darwin’s accumulated observations on the Beagle became seeds for a later theory rather than an answer to an initial task. section 1.2

Figure 5.2 The five steps of the creative process. An overabundance of arrows emphasizes the interrelatedness among the steps. Participation is usually step 1, but a sudden idea might just as well put the process in motion. Rejection is not necessarily the end, provided enough energy remains to rework the concept.
CH05_F02_Groeneveld

Use the arrows to remember that an idea may start anywhere, verification may send work back to preparation, and rejection need not end the effort. section 5.2

How The Creative Programmer covers it

How deep it goes
Defines five stages and their recursive movement, illustrating verification with testing while deferring implementation detail.
Examples
Uses walks, Post-Its, unit tests, a high-request web application, and Darwin’s Beagle observations.
What you can do after
Apply it to software work by alternating preparation, breaks, insight capture, testing, rework, and peer feedback.
How it connects
Connects the process to critical thinking, diffuse and focused thinking, test-driven development, feedback, and problem solving.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of The Creative Programmer. The section links point to the parts of the book it draws on.