Developer Productivity as Science and Art
by Peter A. Bromberg, Ph.D.

Peter Bromberg

"In theory a scientist's only aim is to prove himself wrong. He sets up an idea only in order to be able to carry out experiments which will show the idea to be wrong. This means he can move on to a better idea. And so the process is repeated."   - Edward De Bono

Even if you're not a genius, you can use the same strategies that Aristotle and Einstein used to harness the power of your creative mind and better manage your future, as well as to become a better software developer.

The following eight strategies encourage you to think productively, rather than reproductively, in order to arrive at solutions to problems. These strategies are common to the thinking styles of creative geniuses in science, art, and industry throughout history.



Copy these eight strategies into Microsoft Word, format it to your liking, print it out and stick it to the wall of your cubicle (or your office, if you are already a big-shot), and read it every morning for the next 30 days. You'll thank me later.

1. Look at problems in many different ways, and find new perspectives that no one else has taken (or no one else has publicized!)

Leonardo da Vinci believed that, to gain knowledge about the form of a problem, you begin by learning how to restructure it in many different ways. He felt that the first way he looked at a problem was too biased. Often, the problem itself is reconstructed and becomes a new one. In software programming challenges, this technique can prove invaluable.

2. Visualize!

When Einstein thought through a problem, he always found it necessary to formulate his subject in as many different ways as possible, including using diagrams. He visualized solutions, and believed that words and numbers as such did not play a significant role in his thinking process.

3. Produce! A distinguishing characteristic of genius is productivity.

Thomas Edison held 1,093 patents. He guaranteed productivity by giving himself and his assistants idea quotas. In a study of 2,036 scientists throughout history, Dean Keith Simonton of the University of California at Davis found that the most respected scientists produced not only great works, but also many "bad" ones. They weren't afraid to fail, or to produce mediocre in order to arrive at excellence.

4. Make novel combinations. Combine, and recombine, ideas, images, and thoughts into different combinations no matter how incongruent or unusual.

The laws of heredity on which the modern science of genetics is based came from the Austrian monk Grego Mendel, who combined mathematics and biology to create a new science. Learn to think in different ways. Contrary to what many believe, thinking techniques can be learned. Lateral thinking, a technique invented by and popularized by Dr. Edward De Bono, is taught and used in universities and corporations worldwide. For more information on this, see Dr. De Bono's web site. One of Dr. De Bono's books that I highly recommend for beginners at lateral thinking is "Six Thinking Hats".

  • Granny is sitting knitting and three-year-old Susan keeps upsetting Granny. One parent suggests putting Susan into her playpen. The other suggests putting Granny in the playpen. That's lateral thinking.

  • Fritz Perls, founder of Gestalt therapy, visited a zen monk in Japan, who asked Fritz, "What is
    the color of wind?" Fritz gently blew air in the monk's face. That's lateral thinking. 

  • Bunsen, a chemist, used the color of a chemical sample in a gas flame to determine the
    elements it contained. He complained to a physicist friend, Kirchhof, about the shortcomings
    and inaccuracies of his efforts. Kirchhof suggested using a prism to separate the entire spectrum of light into quantifiable information. This led to the science of spectography, the application to the light emitted by stars, and the modern science of cosmology. That was lateral thinking.


5. Form relationships; make connections between dissimilar subjects.

Da Vinci forced a relationship between the sound of a bell and a stone hitting water. This enabled him to make the connection that sound travels in waves. Samuel Morse invented relay stations for telegraphic signals when observing relay stations for horses. Some of my best software productions didn't involve inventing new things, but in creatively combining and improving on things that others have produced.

6. Think in opposites.

Physicist Niels Bohr believed, that if you held opposites together, then you suspend your thought, and your mind moves to a new level. His ability to imagine light as both a particle and a wave led to his conception of the principle of complementarity. Suspending thought (logic) may allow your mind to create a new form.

7. Think metaphorically.

Aristotle considered metaphor a sign of genius, and believed that the individual who had the capacity to perceive resemblances between two separate areas of existence and link them together was a person of special gifts.

A metaphor is a soft thinking technique connecting two different universes of meaning. Examples: Food chain, flow of time, fiscal watchdog. The key to metaphorical thinking is Similarity. The human mind tends to look for similarities. A road map is a model or metaphor of reality and useful for explaining things; the Dolby Sound system is like a "sonic laundry". That's metaphorical thinking.

8. Prepare yourself for chance.

Whenever we attempt to do something and fail, we end up doing something else. That is the first principle of creative accident. Failure can be productive only if we do not focus on it as an unproductive result. Instead: analyze the process, its components, and how you can change them, to arrive at other results. Do not ask the question "Why have I failed?", but rather "What have I done?" Look at the projects you have started, whether they were finished or not. Study what you did, make notes, and revisit them often. Keep a folder on your hard drive with code snippets that you think will be helpful to you in the future.


Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform.