oblique-strategies/strategies/prompts-for-programmers.txt

96 lines
2.9 KiB
Text

Look for a hack.
Look for a good enough approximation.
Have faith in sound-looking abstractions.
Forget about optimizing your code.
Solve the problem directly.
Feats are fragile.
Build a theory of the problem.
Shear off a layer.
Get red and green right before mixing yellow.
A blink lasts 300 milliseconds.
Zoom in.
Add constraints.
Mark it: WONTFIX
Write the README
Verify your fears, explicitly.
Keep calm.
Take a closer look.
Is it the bug you think it is?
Is it a typo?
Stop and think.
If you lack motivation, find the most interesting thing and branch from there.
Work append-only.
Run through the thornbushes.
Change your mind.
Power through.
Look for ways to chain tools.
Backtrack.
Flip the problem around.
Work forward from where the unfinished part of the code suggests you should.
List dependencies to determine order of completion.
Try the naïve method first.
Do it both ways.
Verify that your assumptions are correct.
Every bug hunt is at worst a log time search through the code base.
Write down everything you know about the problem.
This process usually converges: If you're stuck, finish some remaining piece. Then go back and check to see what new possibilities opened up. Repeat.
Form hypothesis, test hypothesis, repeat.
Have opinions.
Have goals and subdivide them.
Do it the wrong way.
Do something.
Put the problem aside and work on something else.
A line has two sides.
Allow an easement (an easement is the abandonment of a stricture).
Always, first steps.
Ask your body.
Breathe deeply.
Cascades.
Consider changing nothing, continue with immaculate consistency.
Cluster analysis.
Consult other sources.
Courage!
Cut a vital connection.
Decorate, decorate.
"Define an area as 'safe' and use it as an anchor."
Discard an axiom.
Disconnect from desire.
"Don't be afraid of things because they're easy to do."
"Don't be frightened of cliches."
"Don't break the silence."
Do some clean up.
Do the names need changing?
Emphasize differences.
Emphasize repetition.
Emphasize the flaws.
Give way to your worst impulse.
Honor the error as a hidden intention.
How would you have done it?
Infinitesimal gradations.
Is it finished?
Is there something missing?
Keep going.
Look at a very small object, look at its centre.
Look at the order in which you are doing things.
Make an exhaustive list of everything you could do. Do the last thing on the list.
Make a sudden, destructive unpredictable action; incorporate.
Remove ambiguities and convert to specifics.
Remove specifics and convert to ambiguities.
Repetition is a form of change.
Go the other direction.
Take a break.
Stand up.
Look away for a while.
Tidy up.
Twist the spine.
Use an old idea.
Water.
What were you really thinking about just now? Incorporate.
What mistakes did you make last time?
What would someone you admire do?
What wouldn't you do?
Work at a different speed.
You are an engineer.
Take a walk.
Look to the left and the right.
Stretch your neck.