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

