Confessions of a Rogue Computer Programmer in Indonesia
March 15th, 2007
When I was studying Computer Systems Engineering – learning how to build electronic circuits, write software to be embedded into microchips, interface computers with the real word and making robots dance – I used to feel sorry for all of those computer programmers stuck designing mundane accounting systems. They were just creating systems which were really just glorified abacuses (sorry abaci doesn’t sound right). I had the potential to put my skills to good use, to create a robot army and take over the world. And yet here I am, stuck behind a computer, programming an accounting tool. What happened?
A couple of things:
First I discovered that creating a robot army was actually rather harder than I expected. The previously mentioned “dancing robot†was actually meant to walk, but the best we could manage was a sort of epileptic Latino shudder (eventually we did get it to walk). I also realised that I did not have the temperament to slave away for years in solitude designing my army (A classmate of mine has just finished his PhD in Robotics – congratulations Geoff – and I’ve put an order in for a robot army, but I’m not holding my breath).
Second I decided I’d had enough of IT all together, and went to Banda Aceh, to try my hand at humanitarian aid. Unfortunately this turned out to be a loop back into IT when I discovered that the humanitarian industry were in desperate need of IT systems, and I began designing and implementing them. At least now the code I write is *ideally* contributing to the greater good, rather than selling candy (a reference to a previous job of mine developing software for vending machines).
Lastly I actually discovered a brighter side to IT – human interaction with systems. While our little robot just had to walk around a circle, without a care in the world, the software I am now writing has to interact with people. I program software to facilitate the interactions between the User and a system – be it accounting, logistics or monitoring and evaluation. This means I get to work with people, find out what they need, train them to use the software and figure out how to make things easier for them. Ultimately the most rewarding part of the job is the thanks I get from someone who I’ve just trained to use new software which I’ve designed. That stupid little robot never gave an ounce of gratitude.
However I am skeptical of the benefit of the work I do. One of the problems with IT in the humanitarian sector is the disconnection between Head Offices and the Field (ie the developing country where the organization is working). Software is typically developed by the Head Offices in America or Europe. The problem with this is that it is a very slow development cycle, where they don’t necessarily understand the requirement, or constraints in the Field. This is where I’ve found my niche – working in the Field, developing solutions tailored to the problems and conditions here. This is how I developed the Logistics software for another NGO, which has already been rolled out in 3 different countries, and will probably go global by the end of the year. I was fortunate to have a champion in the Head Office, to support me on this though.
Amusingly one UN agency is also using the logistics software I developed. They did have a team of programmers in Rome, who had been working of a solution for a year, but they hadn’t come up with anything yet. I heard of another case of a team of 3 people who came from Accenture (a huge IT consultancy firm) try to develop similar software, which turned out to be overly complex, and wasn’t implementing. I figure that they hadn’t spent enough time in the Field to understand what the users of their software actually needed. I’m not saying that I have perfect insight into conditions in the Field, but that’s where I’ve been working for the past year, and I’m always learning something new. I look at it as Computer Programming in Emergencies. Viva la resistance!
Unfortunately now makes me a rogue, working under the radar of the IT Departments in the Head Offices, without any support from them, trying to develop software to make immediate improvements to systems in the Field where I’m employed. If the software I design is any good, then hopefully it will overcome all of the organizational inertia, and become adopted globally throughout all of their field sites. In the mean time I’m only writing software which will be used by a handful of people, while knowing that it could potentially benefit many more.
And so, here I am stuck behind my computer, programming an accounting tool, dreaming, one day, for a better world. I’m not convinced that I couldn’t have done it better with my robot army.
March 16th, 2007 at 8:44 am
I never thought the day would come for me either but SHOCK HORROR, my new job requires me to also develop accounting software! (Well actually, it’s just accounting component of the solution but close enough).
One day we’ll get our army of robots …
March 16th, 2007 at 12:04 pm
Don’t worry, Michael! You’re top of the orders list for a robot army! If your software hasn’t penetrated the bureaucracy by then, you can use the robot army to force the issue.
March 17th, 2007 at 5:42 am
You and your robots… but it’s great to hear about the benefits you’re able to bring to these organisations and regions, Mikey.
Keep up the good work.
March 19th, 2007 at 6:36 am
>This is where I’ve found my niche – working in the Field, developing solutions tailored to the problems and conditions here.
>If the software I design is any good, then hopefully it will … become adopted globally throughout all of their field sites.
If a programmer (or in this case,a glorified MS Office user :-p) in Indonesia can do a better job designing software to be used in Indonesia than a programmer in Rome can, then surely the same argument applies to software for Guatamala (randomly selected developing country) developed by programmers in Guatamala vs programmers in Indonesia.
In other words, does it makes sense for your software to be spread throughout the globe? or does it makes more sense for you (and others like you) to travel the globe creating seperate solutions for different conditions?
After all, the problems and conditions must be unique in each seperate local branch and the country that branch is in.
March 19th, 2007 at 9:09 am
There’s always one isn’t there Gareth!
In some respects the differences between the different field offices are very minimal, compared to the differences between the field offices and the head office. Currently the logistics software I developed is running in Pakistan and Uganda, and is about to be rolled out in Indonesia. I think that Logistics is something where the systems can be fairly similar globally (although each country will have it’s own exceptional cases). The same applies to most of the other support departments – Finance, Admin, HR. I’m not really talking about programs like education, health and human rights – which often vary hugely depending on the country and the context.
In a broader sense, the requirements and constraints for software are similar for any Field office – software which is useful, easy to use and doesn’t rely on a huge IT infrastructure. The problem with software being developed in the head offices, is that the programmers are completely removed from the end users – they’re literally worlds apart. I suppose you’re going to now draw parallels with the work you do, developing health software for the American market…
May 12th, 2007 at 12:27 am
This is a fantastic post, Michael. This made me laugh: “best we could manage was a sort of epileptic Latino shudder (eventually we did get it to walk).”
Thank you for writing…..