liveBook · Manning

Brainstorming

As explained in The Creative Programmer

Brainstorming is a method for generating many ideas through unconstrained or lightly constrained ideation before evaluation.

Brainstorming generates many possibilities before evaluation, giving programmers room to uncover hidden assumptions, unknown constraints, and alternatives. It works both in retrospectives and during ordinary coding when an obstacle appears. section 8.4.1 section 8.4

Useful prompts make imagination concrete:

  • Ask naive questions to expose implicit knowledge, such as imagining that a webpage needs only one input form. section 8.4.1
  • Ask “What if?” and follow the consequences, including ways a system might fail or break. section 8.4.1
  • Use Lunette to move between abstraction levels: zoom into code, generalize, and return to a bird’s-eye view. section 8.4.1
  • Try reverse brainstorming by stating criticism first, then using it to motivate improvement. section 8.4.1
  • Ask what an imaginary expert might say, or invent unusual classifications for the concerns in a project. section 8.4.1

Triple Nickel during a coding roadblock

Write ideas individually for five minutes, pass each page to the next person, and spend five minutes extending the new idea. Continue until each page returns to its originator. The process quickly reveals limitations and strengthens unconventional proposals without dismissing them too early. section 8.4

A useful habit is to keep asking “Why?” or to think aloud while modeling a solution: if it breaks, decide whether that failure is acceptable; otherwise, explore the next possibility. section 8.4.1

How The Creative Programmer covers it

How deep it goes
Explains prompts, individual and group exercises, and their rationale, without detailing a formal evaluation framework.
Examples
Uses naive questions, what-if scenarios, reverse brainstorming, failure analysis, thought walks, and the Triple Nickel exercise.
What you can do after
Apply it via prompts and timed exercises to discover constraints, test alternatives, and strengthen ideas before dismissing them.
How it connects
Connects brainstorming with retrospectives, creative problem solving, assumptions, alternatives, and iterative modeling.

Also explained in

Compare how 2 books explain brainstorming →

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.