Sudden Realisation!

Bruce-Lee: A goal is not always meant to be reached, it often serves simply as something to aim at.This is a bit of a personal-life blog entry and not one of my more usual tech/work related posts. Whilst I was at Perfecting ACT! this year I had the privilege of talking to and drinking with some of my great heroes from the ACT! and CRM world. During one of the conversations I was asked how I got into development, this simple conversation starter led me to a point where I recounted a part of my long journey, which is still largely unfinished, and I thought I would share here.

My background is in Biochemistry and Molecular Biology and just before I left academia and research I was working in a research lab on mitochondrial genetics. I won’t go into the story whereby I abandoned research and went into a field I knew nothing about; namely IT, except to say that to me at the time it felt that maybe this time I had over-stretched myself by over estimating my abilities to learn new skills!

During this period of learning, I discovered an interest in development and coding so proceeded towards learning HTML and Javascript (including a failed attempt to self-learn Java). I remember late one night trawling through the internet trying desperately to find a very specific kind of tool to carry out a particular task, I kept coming across the roadblock of very expensive utilities or shareware tools that I could not afford. At the time I rather whimsically thought of a future “me” that would be an experienced developer who would simply develop a tool to fulfil the task at hand. This little daydream became, at the time, all-consuming and not only drove me further in my learning, but also tormented my confused mind with, what seemed at the time, an unachievable dream.

Many years have passed and such thoughts were forgotten as I got on with my life in IT and continued study in development, till one day I was working with one of junior members in the tech team on a project of migrating a badly designed and implemented ACT! solution to a new model.

The client had been managed by another consultancy who had made some peculiar decisions which were causing major issues downstream post-implementation. Basically the client had 7 separate dBs, each had roughly 20 remote users who would synch at set times over a 24 hour schedule. The problem was that the server hosting the master had a very poor internet connection and the remote users were all working from a satellite office and synch was very unstable, failing many times.

The obvious fix to this was to migrate all 7 dBs onto a local server at the satellite office and use the scheduler to carry out synch thereby reducing the multiple points of error. This simple task was further complicated by each dB having, in some cases, in excess of 60 child dBs that had failed and so new RDBs had been re-cut but they had not removed the old RDB from the manifest. *sigh*. So we would have to manually clean up the whole system and deleted old RDBs.

Both of us were quite irritated by the time it would take to do this and my trainee/junior like a good ACC started manually disabling and then deleting RDBs from each manifest. I decided the quickest and most efficient approach would be to simply create a utility that would do this and within half an hour I had a a working (albeit ugly) tool that went into each dB and disabled and then deleted RDBs from the manifest one by one based on the last date of successful synch. If it was greater than 6 months it would remove them.
The task was completed in a very short period of time and we were ready to continue with the rest of the project. My junior remarked to me that it was lucky that I was a dev since it was like having a Genie in a Bottle!

For some reason this suddenly sparked from the darkest recesses of my brain memories of those tortured nights stooped over a cheap desktop with a copy of Visual Studio Learning Edition feeling frustrated, tired and with an over-riding sense of defeat, idly dreaming of a better time when I could code confidently but never expecting to achieve this goal.
It then suddenly hit me like a brick. I was actually living my dream! I had and continued to do the one thing that used to motivate me to not give up at my darkest times! I must admit that afterwards in the privacy of my room I did feel a little emotional since I had achieved for myself something that truly seemed impossible and I was doing these kind of things almost on a daily basis without even thinking about it.

The reason I wanted to share this out publicly was not to trumpet my own horn, but to give others an example of how not losing faith in ourselves and our dreams, but focusing on our daily hurdles/challenges and not overwhelming our minds with what seem like impossible goals, we slowly and gradually without much fuss or theatre, find ourselves at the summit wondering how we got there.

My hope is that maybe someone who is beginning the long, lonely and painful journey towards being a developer might read this and derive some hope and confidence that the dream is achievable.