Lessons in personal development from a software process

Michael Crichton, in his novel ‘Prey’, compares personal development with a certain computer programming construct called ‘recursion’.

Recursion is the process in which a program or function calls itself repeatedly until it gets a desired result.

Say you want to print numbers from 1 to 100.

You can write a function to receive a number, print it, increase it by one and then call itself again with the new number. You will also keep a check within the function to see if the value of the number has reached 100, if so, the recursion would end.

After writing this function, you can call it with the number ‘1’ and then let it automatically print out numbers up to 100, before it stops by itself.

One has to be very careful with recursive functions. To see why, consider the above example once again. If you forget to code the increment in the value of the number, or forget to compare it against 100, the recursion will never stop. It will continue infinitely, the computer will hang and you will have to force-kill the program.

Something similar can happen if we are not careful with our own, personal development. Here is how.

No  checks. When you try to improve yourself, you need to have some markers to assess your progress. A lot of people ignore this step.

When you don’t allow yourself time to check and ascertain your progress, you develop a tendency to push yourself too hard and too long. You burn yourself out. You just don’t know when to stop, when to take a break.

As you continue in this infinite loop, you start feeling demotivated, tired and confused. Soon, progress stops happening and you start sliding backwards.

To avoid this, keep some mini goals in sight. When you reach them, pat your back, take some time to admire and take in what you have accomplished. Feel your success. Maybe, you can allow yourself a small gift. This ensures you stay motivated and confident, and know how you are doing. This ensures you realize it when you reach your goal.

No increments. And what if you do the opposite? What if you just keep checking your self but do nothing to improve?

There are a lot of people who constantly assess where they are but do precious little to change things. They will have all the facts and figures but nothing to show for efforts.

If you are one of these people, you are fully aware of what is lacking and keep feeling bad about it. You might think about doing something but are never sure. You are waiting to come up with a killer plan that can not go wrong. You are stuck in paralysis of analysis.

Only, the perfect plan never materializes. Fact is, there are no perfect plans. You have to start with a decent plan and modify it as you go along. Most successful plans are changed heavily through their lifetimes.

You fear failure so greatly that you cannot bear the slightest possibility of facing it. You stay paralyzed with your fear. Fact also is, you cannot avoid failure if you want success. It is unavoidable, even necessary. You learn from your failures and improve. These failures make you stronger, they make you worthy of your goal. Stop the quest for the perfect plan and embrace failure as a friend. Just dive in as soon as you have a working plan.


To improve well, and to sustain and enjoy your improvements, you will have to balance between action and thinking. You will have to show courage, faith and patience. Personal development is like recursion, you need the right rules to make it work properly. It may seem difficult to master but, with sustained efforts, it is very much possible.

Image credits: sixninepixels



  • November 28, 2011 - 3:38 pm | Permalink

    Great analogy Rahul,
    I think what you said is true , because without the definite markers or milestones, we wouldnot be getting meaningful results whether it’s in programming or real life. So validation is must.
    Naveen Kulkarni recently posted..Ask the Reader: What is a Minimalist Lifestyle According To You?

    • Rahul
      November 28, 2011 - 8:26 pm | Permalink

      Glad you like it Naveen.
      I was expecting all software developers, present and past, to relate more closely to the analogy. :)

  • Rakesh Rao
    November 28, 2011 - 6:38 pm | Permalink

    Very well compared and written Rahul! I like the analogy very much!


    • Rahul
      November 28, 2011 - 8:30 pm | Permalink

      Glad you like it Rakesh. I am sure you like the analogy, some other soft. developers are also telling me the same. :)

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    CommentLuv badge