Friday, November 7, 2008

RubyConf 2008 Day 2 - Fear of Programming

This was a pretty engaging talk. No slides just us.

Nathaniel Talbott started his talk by asserting that artists have an emotional relationship with their creations. Fred Brooks likened programmers to artists (actually poets) because we both start with a "blank sheet" were we use our skills, knowledge, and imagination to "create" something. Now if Brooks is correct, Nathaniel believes that programmers are also subject to this emotional connection but because we do not tend to think of ourselves as artists, we tend not to explore this part of our lives.

Fear is a "very significant emotion" that prevent us from doing "that thing" but "all fear is legitimate because they are warning signs" trying to protect us from danger. "Fear is to your mind as pain is in your body", your body uses pain to tell you that there is something wrong.

Nathaniel went on to describe how fear hinders our productivity. Here are just some of the fears that he described we face:
Fear of a blank page
How do I start? What do I do?

Fear of the code

Legacy code
Beautiful code. Am I gonna mess this up?
Maybe I will write something that I will not respect and others will not respect me

Fear of not finishing

I am afraid it will not get done

Fear of finishing

Management or lead developers are afraid to call it done and push this out
Its easy to hack away on a side project without publishing it

Fear of the unknown

The big amorphous blob that I cannot conceptualize.

Some of us in the audience added the following:
Fear of not liking what I do
Fear of developing meaningless code
Fear of commitment
Fear of re-invention
Fear rejecting people
Fear of all of the non-programming activities
Fear imagination outreaches my ability

He states that since fear is a warning mechanism than "it is pathetic as a decision maker". Do not rely on your "fear" to make decisions instead rely on more knowledge and wisdom. He said use testing; prototypes; setting boundaries; and worst case scenarios. Nathaniel then polled the audience and I said use pair programming to combat fear. Others said be more afraid of something else however that would probably lead to layer upon layer of neuroses. One individual said that he prays. Nathaniel also referenced a few books that desribe how to deal with fear: "The War of Art", "Art and Fear", and "The Road Less Traveled". The jist of the this part was that big fuzzy problems are harder to deal with than smaller fuzzy problems. So work with smaller fuzzy problems.

His second suggestion which he described as the "ultimate antidote to fear" is Love! Surround yourself with people who love you unconditionally and support your decisions. Its better to make decisions based on the passion that you have for your craft. Pour yourself into the things that you are working on. Be motivated by your passion e.g. I love to solve problems!

No comments: