Process For Programming Without Thinking Too Much

Processes/conventions/styles/habits keep me from having to think too much. I find that thinking too much gives me problems. Processes/conventions/style/habits allow me to focus my resources on a problem without having to spend time thinking about mundane details like names, capitalization, indenting, etc. I'm trying to develop a process for programming so I can focus on what I need to do now and not have to worry about what to do next. I'm probably just lazy.

I've distilled this information from other pages on Wiki through my own programming habits. If I could remember where on Wiki that I saw this stuff, I'd reference it, but, unfortunately, I don't. Please add appropriate references. I also welcome anyone's comments or descriptions of their own processes for programming without thinking too much. -- MarkAddleman

The process has three major steps: First, understand the change. Second, make the change easy. Third, make the change.

Understand the change:

I'd love to put more detail on this step, but the process for understanding requirements is still somewhat mystical to me. I've found there are really only two tools worth their salt for understanding requirements: Talking to interested parties and drawing pictures (mostly on whiteboards). Possibly using CRC cards; I've never used them, but they seem to be simply a way of combining talking and drawing.

Make the change easy:

Make the change: AeGis is a big help in all this (Understand The Change, Make The Change Easy, and Make The Change).


After rereading some of the Wiki pages on ExtremeProgramming, I realized that my process doesn't include the concept of AcceptanceTests. Lately, we've been doing a lot of UI heavy coding and I find that automated tests of the UI are either too fragile or too complex to be very useful. So, we rely on visually inspection.


I find that "not thinking too much" is important in programming and unit tests are the way to do it, but none of the mundane things in the list really bother me: I consider names important, so they aren't mundane. Capitalization and indenting come from my backbone without much conscious thought. So what would be a better list of stuff to avoid by "not thinking too much"? I would suggest that the stuff you want to push out of your head is the parts of the program that are not changed. And the only way to comfortably forget about the rest of the system while doing changes is to have extensive unit tests. (Pair programming and acceptance tests also help.)


EditText of this page (last edited November 6, 2004) or FindPage with title or text search