As I continue to catch up on delinquent and neglected tasks during the inter-semester break, I’ve started porting the software from last year’s piClinic Console to make it ready for prime time. I don’t want to have any prototype code in the software that I’ll be leaving in the clinics this coming summer!
So, module by module, I’m reviewing the code and tightening all the loose screws. To help me along the way, I’m developing automated tests, which is something I haven’t done for quite a while.
The good news about automated tests is they find bugs. The bad news is they find bugs (a lot of bugs, especially as I get things off the ground). The code, however, is noticeably more solid as a result of all this automated testing and I no longer have to wonder if the code can handle this case or that, because I’ll have a test for that!
With testing, I’m getting to know the joy that comes with making a change to the code and not breaking any of the previous tests and the excitement of having the new features work the first time!
I’m also learning to live with the pain of troubleshooting a failed test. Anywhere during the test and development cycle a test could fail because:
The test is broken, which happens when I didn’t update a test to accommodate a change in the code.
The code is broken, which happens (occasionally).
The environment is broken. Some tests work only in a specific context like with a certain user account or after a previous test has passes.
Cosmic rays. Sometimes they just fail.
The challenge in troubleshooting these test failures is picking the right option from the start to make sure you don’t break something that actually was working (but whatever was really broken is hiding that fact).
But, this is nothing new for developers (or testers). It is, however, completely foreign to a writer.
The conference was the first real opportunity for me to discuss the project with others in the humanitarian technology field, which was both encouraging and discouraging at the same time. I was encouraged to hear that the idea still seems sound and the need was recognized by everyone with whom I talked. There’s really no question that the gap it is designed to fill is a real one. At the same time, I’ve been calibrating my expectations on how long things take, not only in the healthcare field, but with foreign government agencies as well. Those who travel regularly in these sectors will likely not see this as news, but, coming from high tech, my time scale needs some serious recalibration.
At the conference, one research described a similar project (a very similar project) that he’s been working on for the past 17 years to get past the field-test stage (the stage my project is just starting to enter). He described how he’s had to navigate various health ministries across the African sub-continent as well as EU funding agencies. While I’m [finally] realizing that such time frames are quite reasonable in this context, my high-tech industry can’t help but think of what was going on 17 years ago and how much has changed. For example, in 2001:
Although I’ve been in the field conducting research for the past month (in places, such as depicted in the photo), I still managed to publish and “present” several research papers that have to do with the piClinic Console. More are still in the pipeline, so stay tuned…
In Using Independent Studies to Enhance Usability Assessment Skills in a Generalist Program, co-authored with Dr. Pam Estes Brewer, Associate Professor in my department, we talk about how we used the development of the piClinic Console as an independent-study project for one of her usability research students. Dr. Brewer presented this paper July 23 at the IEEE PROCOMM conference in Toronto. The short story is the project provided an excellent challenge for her student and her student provided vital usability research data that informed the design’s iterations throughout the year. The paper also describes some of the other projects we’ve used to help develop future usability researchers.
Enriching Technical Communication Education: Collaborating Across Disciplines and Cultures to Develop the piClinic Console, was just presented in Milwaukee, WI at the 36th ACM International Conference on the Design of Communication. Instead of a personal appearance, I sent them this video to present in my stead. The paper details the design process and how it was applied to our technical communication curriculum. For example, as the usability research independent study project described in the preceding paper. Other tech comm lessons the project has produced include some visual UI design, the production of the promotional video that appears on piclinic.org, and several projects for the computer engineering department. The video, on the other hand, provides some of the back story behind the project.
So, I’m taking a break from technical writing related thoughts and posts for a while. For the next two months, I’ll be focusing on the development of, I suppose you could call it, my side project for the past few years. While, I’ve been working on this for the past four years, or so, it’s starting to gain some momentum.
“The piClinic is an open-source, patient-record automation solution designed for limited-resource healthcare clinics around the world. piClinic systems fill the gap between a paper-based patient-record system and a complete Electronic Health Record (EHR) system at a very low cost per system. The piClinic is built on the digital principles to provide an accessible, sustainable, and low-cost solution.”
No, seriously, what the heck is a piClinic Console?