Work Flow and Making Progress

Getting things done is a highly relevant topic in today’s society. I’m no authority on the subject myself. But I have learned a few things I need to write down for myself, and hey, why not for you as well? I actually find myself going to my blog as reference somewhat often. I want to be helpful to as many people as I can, and sharing what I know and learn is a major way I do that.

So work flow. There seems to be a lot of “issues” that prevent work flow; fearing what you don’t understand, fearing complexity, fearing starting the wrong way, the acceptance of “pleasant” distractions. I’m reminded of these as I teach my niece math for things I know that are simple. Yet she “believes” everything is difficult without having tried (or put effort in for) and will jump into any welcome distraction; such as the mail arriving, needing a drink, getting head phones, music, answering the door. Anything that puts off dealing with what is “supposedly” complicated.

The truth is we (people in general) tend to over complicate things we don’t have knowledge about. The difficulty we perceive looks like potentially frustrating time loss and we as humans want to avoid anything “painful”. We might not consciously associate this with pain, but the brain tends to respond to it in the same way. Much like self discipline. We need it, but if we’re not in practice of doing it it just gets all the more difficult to do. The lazy dog won’t get off the sharp nail until the pain exceeds its minds (re-enforced) pattern of habit.

As a programmer I love solving difficult problems. But therein lies a problem. Just by saying it’s difficult, what it likely means is I’m not practised, or knowledgeable, in the solution for the problem at hand. I may spend hours or even weeks thinking of “brilliant” solutions or ways that something may be accomplished (and I like the process). And by the time I get to an answer I invariably find that it was much simpler than I had perceived. Just like my niece learning very simple math.

The biggest hindrance against things getting done is the ever missing “first step”. Either having a plan that includes the first action step, or just getting started. If we perceive that step to be beyond our reach or comprehension then we tend to resist moving forward on it. It’s as if we can’t see the other side we’re trying to get to.

So whenever you plan something, write it down and include an “action step” with it. Make sure the first step is small and easily achievable. Forward motion is the most crucial point for progress. Creating good habits will allow the forward progress to make achieving your goal an easy and painless reality.

Here are some rules (guidelines) I’m setting for myself.

K.I.S.S. (Keep It Simple Sanguine): Yes; I don’t use negative re-enforcement so I do mean sanguine — optimistic or positive, especially in an apparently bad or difficult situation.

Take Small Steps: Like in the movie What About Bob “Baby Steps”. Baby steps are steps of action which obtain the frequent reward of success for having achieved them. Achievement gives the brain a positive dopamine response which helps “wire” your brain towards this rewarding habit. Thereby making you a more productive person by creating good forward motion habits.

For an excellent demonstration on micro-achievement progress in software development you need only look at Jim Weirich’s “Code Kata” practices — like in his “Roman Numerals Kata”.

MS-TDD: Micro Step – Test Driven Design may be just the mental opiate for overcoming “difficulties”.



Don’t Hack At Replacing Big Working Parts: When you need to implement a change there is no reason to create more work for yourself. Create new implementations with the same rewards of small steps of success. Once the new “feature” is built then gradually switch over. This is especially true with anything relating to the DB.

Write Great Ideas Down and Set Them Aside: Nothing’s more distracting than when something “brilliant” yet unrelated comes to mind. Write is some where you know you’ll get to later and then don’t worry about it. If you can trust that you’ll see it later there is no reason to allow it to distract your mind. Let it go.

Don’t Over Eat: Eating too much does unproductive things for the mind. A little bit of food will provide energy for the brain to burn. But too much food will make one complacent and lazy (it’s like a downer drug for the mind). Planned for hunger can help focus the mind (such as a fast).

Rest Before You’re Tired: It’s been proven that sleep deprivation is just as bad as being under the influence. Also the heart requires a certain amount of rest per amount of time that it works. If you rest before you’re tired you heart will allow more work to be accomplished and refill the “will power meter”.

Take Somewhat Frequent Breaks: Programming is largely sedentary. Studies have shown that being sedentary will lead to a higher mortality rate and poor health. Also taking a “walk” may help the mind in coming up with solutions. Better circulation for better mind and body makes for better work. The Pomodoro technique is a viable solution. Here’s a Ruby script I wrote for practising the pomodoro technique.

#!/usr/bin/env ruby $stdout.sync = true while true 25.times do sleep(60) print "." end sound_bite = Dir.glob("Motivational Speech/Start The Day Right/*.mp3").sample %x^/usr/bin/env mpg123 "#{ sound_bite }"^ end 1 2 3 4 5 6 7 8 9 10 11 #!/usr/bin/env ruby $stdout . sync = true while true 25.times do sleep ( 60 ) print "." end sound_bite = Dir . glob ( "Motivational Speech/Start The Day Right/*.mp3" ) . sample % x ^ / usr / bin / env mpg123 "#{ sound_bite }" ^ end

Each of the mp3 tracks are roughly a 2 to 4 minute motivational track from Youtube. Positive life changing words with some background music to help emphasize what’s being said.

Music: Some kind of music helps the mind be more active and focussed as long as the music doesn’t make itself stand out too much. So familiar music helps.

K.I.S.S.: I can’t emphasize this enough. Don’t be a genius that takes two weeks to do what a simpleton, baby-stepper, could do in a day. Sometimes the shortest path to a working solution is far more worth it; more than working all day on the complicated answers, to then give up, and still go with the simple one.

Write It Out: Whatever your thought process may be, it helps to write it out. You’re not smarter for doing it in your head. (tests count)

Summary

As you can see a lot of getting things done has to do with the mind. Habits, rewards, and discipline will all play a role in it. But it’s also very important to pay attention to how things affect you such as food, exercise, and music. If you pay attention, and take note of the things that affect you, you’ll be better able to make corrections in your own life that will lead to a better life.

Do you have insights that have really made a difference for you? Please share, I’d love to hear about them. Please feel free to comment, share, subscribe to my RSS Feed, and follow me on twitter @6ftdan!

God Bless!

-Daniel P. Clark

Image by Casey Reynolds via the Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic License.