Good news from lilongwe! My RapidSMS training session has been pushed back 10 days. This is good because I really need some feedback from the field as regards the current system. I am slightly changing the way patients are registered and the way local care providers are registered and i want to see if there are any usage patterns I should be aware of. I wish I had done this earlier, but its been sort of chaotic.
Last night I revisited the Malawi RapidSMS specifications. This project has taken a slightly different turn. Originally I was just supposed to be tweaking the system. However the last Malawi RapidSMS implementation did not adhere to the RapidSMS application structure, and the refactoring was not finished by the time I left for Malawi - so I had to rebuild the logic and front end of the system. By tonight - I hope to have completed the SMS logic. Then all I will have left is graphing. There are some other bells and whistles I would like to add - but if no one complains - then I will probably not ask forit.
It is very important to prioritize in software development. I often see people spending tons of time on features that no one uses. I myself am guilty of that. Yesterday I spent 2 hours implementing an upload/download documentation feature. This feature will probably not get much usage, and probably would not have been missed - by my OCD got the better of me and I had to finish it.
When I was a trading strat - I would prioritize by only doing work for traders that were making money. If you were losing money - you were probably going to get riffed - or would not contribute much to my bonus - so I would put those projects on the bottom of the list.
Anyway as I was rereading the specs last night, I saw a few features that I had overlooked. I had primarily been implementing features that exist on pilot version, but there were other features that the specs included - and it really only took me about 2 hours (while I was concurrently rewatching Hitchcock's family plot). This however destroyed the beauty of my data models - I would like to refactor. I am doing all sms processing in the nutrition app (which I will eventually rename). Then I am dong all sms response in the infsss app - since this is implementation specific. For example, we want different responses in Malawi and Kenya, but the protocol for registering a patient remains the same. I have to figure out how to get this to work.
I am hoping to work from old town tomorrow. I need an additional cell phone and its a half day anyway - besides I want to enjoy my breakfast - rather than having 5 minutes to eat.
Yesterday I started training two women from the Ministry of Health in maintaining the system. I am really not concerned about system maintenance. In about a month there will be more RapidSMS developers working on a new HIV/AIDS project, and they will hire local developers to maintain the system. However, as I was speaking with the Ministry of Health people the other day, I said, are you interested in understanding how the system works and in perhaps working on the system (ie becoming developers). They seemed very interested- they had studied IT and knew visual basic, and I thought it would be fantastic if they could program the system.
When they first came to the meeting they seemed sort of bored. One woman kept checking her cellphone. They became a bit more animated as I walked them through the nuances of the system. Its amazing how much body language influences your perception of other people. I am constantly guarding against judging people's intention by their body language - especially because I think that I must have some bad body language. People often think I am disinterested in what they are saying, or bored (especially when I am focusing the most!). This has probably predisposed people against me. I wish I could change this body langauge - but really I dont know what I am doing.
Anyway I sent an email out with various links describing the system, and a study plan - and the response i got back. "Thanks for the email - I did not get a chance to look at the links because I was too tired" - ok so maybe they really were disinterested.
This brings me back to my last thought. Education. There is no reason why these women were not taught to program. Right now, there are so many things people can learn that will directly empower them to control their own destiny. It is amazing that this is not a focus of education. I think that programming should be taught with reading, and that calculus should be taught in 10th grade. Sadly education is not about teaching people - but rather about indoctrinating them into industrial society.
I saw a sign on the outskirts of Lilongwe, "Annual Reunion for Malawi Institute of Management." Operations Reserach and Management is really legacy from the Napoleanic wars, where superior logicstics enabled Napolean to supply his troops (I think I stole that from Manuel Delanda - war in the age of intelligent machines). But, it is only useful when you have an army to coordinate - but in Malawi where there is a lot of actual work to get done, perhaps we need experts in irrigation farming, nursing, telecommunications infrastructure, computer programming. Then when we have a mass of pepole in these areas we can focus on operations research and management. What are we optimizing - there is nothing to optimize.
Lets have less optimization and operations research and more nonsense - that make sense