Wikipedia defines creativity as a phenomenon whereby something new and somehow valuable is formed. Because creativity is essential to me as a programmer, the question of how to improve my creativity has always fascinated me. In this article I share what has worked for me so far.
Get lots of intellectual input
I try to get a wide variety of intellectual input by reading blogs about programming, writing and personal development, reading non-fiction books on a variety of topics, looking at design, listening to music, and attending meetups and conferences. This not only generates ideas, but sometimes also produces an interesting cross-breeding of disciplines.
Creativity is about connecting ideas, and you can’t connect the things you don’t know about. More input means better output.
Optimize for flow
Steve Pavlina describes it best:
If you can’t keep yourself from being disturbed by urgent phone calls, emails, or drop-in visitors, you won’t consistently achieve and maintain the flow state. You must do whatever it takes to prevent unnecessary interruptions during your creative periods. Make arrangements to ensure you won’t be disturbed except in an absolute emergency.
Open offices are not an option for me, because trying to focus while people are chatting around me wears me out quickly.
Block email and slack notifications, put your phone on night mode, and tell people you will be gone. Ignore or deal with distractions. Buy noise blocking headphones for emergency situations.
The right level of stimulation is also important. I work better with music, but many people don’t. I suggest experimenting with different types of music to see what effect it has on your ability to reach and maintain the flow state.
To awaken your full creative potential, the difficulty of your creative endeavor must fall within a certain challenge spectrum. If you consider a task too hard or too complicated, your beliefs will get in the way of your creativity, and you’ll end up with a self-fulfilling prophecy of failure. Tackling something that’s too easy is mind-numbingly boring and won’t produce results. Being properly challenged is more fun, helps you grow, and yields a meaningful sense of accomplishment.
Make sure you have sufficient time on your hands, ideally 6+ hours. When you’re in the flow state, you’ll barely notice the passing of time. High level creative work is usually a top priority, and it’s a real downer to finally hit the flow state and have to stop after 30 minutes because you must attend to another commitment.
You should also know your tools well enough to consistently enter the flow state. Learn your editor’s keybindings, and follow a touch typing course if you can’t do that yet. A good pen and notepad are also a must-have, and a very cost effective upgrade.
If you lack ideas, know that they can be generated at will by brainstorming. I usually do this on paper to avoid distractions, because brainstorming can be tough.
Take regular breaks
When you get stuck or start to get tired or hungry, take a break. I recommend remaining disconnected from email, social media, and other distractions if possible. When you give your mind a true break, the solution will often pop up within 15 minutes.
Taking a break also helps you lose the fixation on a particular solution, see the bigger picture, and image other solutions. Sometimes the problem doesn’t need to be solved at all.
When you’re still feeling stuck after a break, I recommend switching to a different task or calling it a day. Trying to push forward when an approach clearly isn’t working can be very frustrating and demotivating. Know when to cut your losses.
Engage your background mind
While the waking mind is very good at tactics and analysis, it isn’t very good at strategy. Most non-trivial problems are solved by the background mind. The background mind is best at making connections (the essence of creative work), synthesis, strategy, analogies and abstractions. Unfortunately, you cannot direct it. Use your waking mind to feed work to your background mind and analyze it’s products.
To make something a priority for your background mind, state the problem and think hard about it.
State the problem
By explicitly defining the problem and all it’s nuance, you make it easier to reason clearly about it, and let your background mind know what to crunch on. Write down everything you know about the problem, everything you don’t know (nobody knows everything), details, constraints, tradeoffs, problems in solutions, and other solutions to similar problems.
Enumerate the different possible solutions, and write down the attributes and deficits of each, so you can make more informed decisions.
Most problems have already been solved in some way by someone else. Take advantage of that, so you get up to speed quicker.
When you have difficulty coming up with good ideas, spread the mental load by splitting up brainstorming and analyzing into separate sessions.
Keep in mind that your working memory is limited. Work around this limitation by alternating your focus between different aspects of the problem.
Sleep on it
As we sleep, our brain processes the information we have learned during the day. Sleep makes memories stronger, and weeds out irrelevant details and background information so that only the important pieces remain. The brain works during sleep to find hidden relations among memories and to solve problems we were working on while awake.
I recommend sleeping on ideas at least one night, and sometimes longer.
Often, when you wake up you will be suddenly become aware of the solution. Not always the solution you hoped for, but that’s fine. Be ready to capture it.
I try to capture any idea, as bad as it may be. Bad ideas often lead to good ideas down the road. They may later be combined into better ideas, and having an inventory of past ideas feels rewarding to me.
Notebooks are still one of my favorite tools, because they allow for free form drawing, are pleasant to use, and offer little distraction. I also keep an “idea board” in Trello for better organization and data leverage. The app is fast, which is important when capturing ideas, and I don’t always keep a notebook with me. Evernote is useful for web clips and scans of sketches I don’t want to lose, but the app is slow and clunky.
Analyze, verify, eliminate
Use your waking mind and computer (or other creative tool) to verify your solutions. Type sparingly, with confidence. Few ideas will be good in the end. Always validate your ideas, and when non-critical, procratinate on extended implementation to minimize waste.
Cut the knot
Deadlines can be a double edged sword. They may improve efficiency by helping you break trough analysis paralysis, but can also sacrifice creative depth.
When the cost of adjustment is cheap (as in most web apps), I recommend a learn-as-you-go approach. Real world feedback helps streamline your ideas.
When it’s costly to adjust (as in physical buildings) or risky to make mistakes (things that involve money or privacy), spend more time thinking upfront.
Your creativity is your most important asset as a knowledge worker, which makes it a good investment of your time and effort. As you can see, there are many practical ways to improve on it. I hope you got something out of this article. Send me an email if you have a great method I missed. I’ll be happy to include it.
- Steve Pavlina: (linked in article)
- Rich Hickey: Hammock Driven Development