In a software shop, all development projects take on a narrative. This narrative is the story told over and over around the water cooler or at social gatherings on the weekend. When someone asks us “How was your week?”, we become storytellers. Modern-day Homers, we describe poorly written requirements, bad tool documentation, and that inevitable bug that snuck passed testing into production. The pieces might change, but the stories stay the same.
Recently I had the good fortune to work on a project with a different story.
Right To Play runs programs all over the world using play to engage kids in their education, to teach them health lessons and to show them how to build peaceful communities. They ran into problems measuring the progress of children. Surveys were being administered with pen and paper and manually entered into Excel, all of which had a high risk of data loss and error. The solution was a mobile application to administer the survey that would sync the data to a central repository.
I could tell you about all the technical achievements of the project. How it was our first native mobile app, or how we used open-sourced technologies to work within a tight deadline. These details weren’t the most interesting parts of working with Right To Play. The features that make up the story I tell are those that come from working in a field distinct from my usual work.
For instance, the app had to be bilingual. Multi-lingual applications aren’t anything special in Ottawa; however, when the second language is Arabic instead of French, there are new challenges. I had never even thought of working with a right-to-left language, and that simple requirement had a big impact. It’s not enough to change the characters. We had to flip enumeration and navigation elements as well. This challenge wasn’t particularly technically difficult, but it forced me to think differently and redefined many common practices like testing.
Then there are bugs. The last month of development is often spent repairing bugs and for this reason most developers remember the negative aspects of a project. It’s different when you’re trying to help kids though. One night the development site went down. Bleary-eyed, I poked and prodded into the early hours of morning not because I was being told to, but because I knew by doing so I could help people in the field better accomplish their work. I understood that a large part of Right To Play’s objectives meant engaging with the kids during school, and that meant getting things working on time. I may not have been doing their work, but every day it felt good knowing I was doing work for them.
It’s different when you’re working for a global non-profit. Your narrative becomes theirs. You stop talking about the key requirement that was overlooked and instead describe how you had communicated across a seven-hour time difference with people in the field. When the client asks you to change the interface, you don’t perceive it as questioning your expertise, you think of how it will help them to better engage children in classrooms. This describes my first experience with a HumanIT project and honestly, I can’t wait for another.
Joseph Pound is a software developer with Foci Solutions, an Ottawa-based technology firm providing technology advisory and system integration services.