Tuesday, May 3, 2011

Why Not?

I have officially declared 2011 the year of "Why not?"

I don't mean "why not" in the sense of doing anything possible without thinking about it. I'm actually thinking it is a good year to ask why we can't do things, or why we won't do things, because it is interesting to understand the forces behind it.

Take personal development. Who among us has done all they planned to do regarding new tech, new languages, projects to start, products to build in the past year? Who would not have benefitted from reading a book, doing some kata, learning a new language, or writing something new? And yet we do not.

Let's refuse to commit the Fundamental Attribution Error here, and not say "because they don't care" or "because they're lazy."  A ton of information is available about improving a person's ability to program, or the number of platforms and tools they can program with, and yet most people don't reach beyond the level that is absolutely necessary for them to muddle through at work.

Why not?


  1. By March of this year I wanted to have a start on a marketable Android app. I actually managed to pull that off at the end of March IIRC. By Summer I want to finish it.

    (It's a matching game for preschoolers.)

    I think the real goal here is the finishing. That will require not getting distracted. Which is hard for me. There's OpenGL ES I could learn. OpenGL is sometimes, literally, shiny. I could convert my Java code to Unity 3d in hopes of a cross platform solution. Oooh, I _need_ that. Or a host of other things I could do which would not be the same as finishing this game.

    And we just had a new baby.

    I have some working code now and I'm trying to focus on finishing a marketable app that will pay.

    Wish me continued luck and discipline.

  2. I have pondered this very topic quite often. I consider myself to be a passionate programmer. I have wondered what inspires me to go beyond the minimum and why some of my good friends who care about their work don't seem to be interested in personal study or improvement. Over the last year, my motivation and involvement in various improvement activities has waxed and waned and I have been analyzing what causes it. I have noticed the following:
    • When I work too much, I am not interested in studying at home.
    • When I attend user groups, my motivation to study improves. A month between meetings is a long time. I attend multiple groups to address this.
    • When work problems are complex, I study them rather than other personal development. When work problems are simple, I create complexity for my brain through additional study.
    • When I am in a mentoring role, I am more likely to dedicate time outside of work to personal development. Leading group discussion, pairing regularly, taking on a direct teaching role all cause me to work harder at my own improvement.
    • When I take on too many new things at once, I get overwhelmed and make no progress on any of them. Learning a new development stack without a mentor seems beyond me.
    • When I study something new, but can’t implement it on a real problem, I become less interested in studying.
    • Recovering from a death march takes almost as long as the duration of the insane work schedule.
    I haven’t been able to work out any way to inspire others, but I am starting to understand my own motivators/demotivators.

  3. David:

    Well said! I've also noticed that leading induces studying (learn in order to teach), that community induces studying (racing forward together), and that stresses will increase foot-dragging.

    When I think of the times I've learned fastest, it has been when a colleague or friend of mine is showing me "something cool" he learned recently, and I am trying these things and looking for "something cool" to show back. It drives me in a way that solo study does not.

    Detached from others, I will still take on some projects. I will start learning some new python stuff, or check out the new c++ features, maybe even try some tools or play with a CMS.

    I can add that there is sometimes a guilty feeling when I feel that I'm not accomplishing enough, and the natural mental pressure is that I should tough it out instead of resting and learning. I find that it's often dead wrong, and rest and learning solve more problems than forehead-pounding yet the guilt of insufficient accomplishment still haunts my learning hours -- sometimes to a point of distraction.

    Maybe this is what they mean when they talk of "ritual space." Perhaps it is what we're lacking. Perhaps we have to have permission (external and internal) to go into our ritual space and conduct the business of learning.

  4. Thanks David. Many of the elements on your list resonate well with me. I will add:
    * When I am not enjoying my day at work (right now: working in a non-agile shop, all alone), I am not interested in writing about or exploring software development.

    I think it has a lot to do with the lack of social interaction here at work--I end up being interested in spending time with my family and other people instead.

    How might I fix this? Hmm, well, finding or (re)founding a local user group might help.

    Positive events can help--a new review on Agile in a Flash, a kind email from a reader, a pile of new twitter followers, etc., all can motivate me to at least spend a little effort on keeping my professional life up to date. But getting back to a good job would help most.

  5. Lisa Vaas must have been pondering the same thing. It's a rather negative take on things, and drags certification in to muddy the waters, but it's the same underlying concern, I think.