Have you been looking for software to help your child to read? Well, your quest may be over.
Phoenicia is a new literacy application for Android developed by Michael Hall, an open source software developer, community manager, and technology evangelist currently working at Canonical, maker of Ubuntu. In this interview, he talks about the diagnosis of his oldest child with an Autism Spectrum Disorder, his learning curve of Android development, and why user testing matters more than you think.
Don Watkins: Why did you decide to write software designed to encourage children's literacy?
Michael Hall: About 10 years ago, my oldest child who had just turned 13 was diagnosed with an Autism Spectrum Disorder. When he was four he started showing interest in my computer (which was running Ubuntu 8.something), but it wasn't very accessible to him.
I eventually picked up an old secondhand computer, put Xubuntu on it, and changed the default panel settings into something easy for him to navigate. I found some of the best educational software in the archives and installed it, then more or less let him explore it and learn by himself.
In the first year, we had several friends with kids ask if I could do the same for them. My wife and I even started a nonprofit so people could donate their old computers to us. We would refurbish them and give them out to families, schools, or children's homes that needed them. After customizing a bunch of these, I was tired of making the same customizations over and over again, so I set out to learn how to make a customized Ubuntu ISO with my changes already made.
This eventually led to a derivative distro called Qimo (pronounced kim-oh), which I ran for several years until both my kids outgrew it. During that time I promoted it at conferences across the country, and I heard stories about it being used in schools and cities all over the world. We were featured in Linux magazines and even in a local newspaper in India.
Like I said, my kids outgrew the need for a custom distro. Add to that the fact that Unity and Gnome both became easy enough for even your children to navigate, and the need for Qimo just wasn't there.
About that same time I heard from Jono Bacon (my former manager, who was then working at XPRIZE) about the Global Learning challenge, and while casually discussing it with my wife she came up with an idea for it. She taught our own kids to read at very early ages by putting letters on Post-It notes, teaching them the sounds of a few of them, and then putting the sounds together to form a word's sound. That same teaching mechanism is now the basis for Phoenicia.
DW: What tools did you use to create this game?
MH: The XPRIZE rules put some limits on our options. The solutions had to run on Android, and they had to consist entirely of code under the Apache Public License or something compatible with it. This means we couldn't use proprietary or even GPL-licensed libraries or game engines. We also had no expectation of Wi-Fi or other network availability, so everything had to be run on the tablet itself.
While many competitors went with a high-level abstraction layer, I decided to stay as close to the underlying platform as possible for added efficiency, because at the time we expected these to be run on budget tablets. So Phoenicia was written in Java, using the AndEngine game engine that provides a light layer on top of OpenGL and was easy to build on even though documentation was scarce. I use Android Studio for development, something I found very easy on Ubuntu.
DW: How long did it take you to code it?
MH: I'll let you know when I finish it.
We started development from scratch in the spring of 2015, so it's been almost two years of development in my spare time. Much of that first year was spent evaluating license-compatible options for game engines and supporting libraries and then learning how to use them. I had Java development experience in the past but this was my first experience with Android development, so I had to navigate a pretty big learning curve going into it. And while I was able to get a lot done in that time, I still have more that I want to do.
DW: Did you test the game on your own children, other people's children, or both?
MH: I made heavy use of my own children for user testing, but since they're already very avid readers that was limited mostly to testing how intuitive and usable the interface itself was. For the actual literacy component, I enlisted the help of friends with appropriately aged kids. I guess you can say I tested the learning mechanics on my own kids because it was the way we taught them to read, which inspired the game play.
Unlike many of our XPRIZE competitors, Phoenicia was open source from the start (the rules only required they be open source if they win). So I was able to make it publicly available to both developer contributors and beta testers well before the actual release. "Release early, release often" was a motto we lived by.
DW: In what ways do you see other people contributing to future versions of this game?
MH: One of the key goals we have for Phoenicia is making it as widely available as possible in people's native languages. To make that possible we developed it with a strict separation between the game code and the language being taught so that we could add new languages without having to make any code changes. I hope to get a large number of contributions in the form of language implementation and local customizations. We've already had contributions of Spanish and Portuguese language packs and offers for Arabic and Farsi (both of which require code work to support RTL languages).
However, that's not to say I don't also want code contributions. Like I said above there are still more features I want to add, and any help I can get with that would be wonderful.
DW: What's the value of open source learning software?
MH: Education software seems to struggle with attracting contributors, more so than other open source software. I think this is because the "scratch your own itch" factor isn't there as much because the people who can contribute aren't likely to be the same people who will be using it directly.
The solution to this is to be more deliberate in obtaining and incorporating user testing into the design and implementation of the software. We can't expect the children using it to know how to file bug reports or make design suggestions, so we have to make sure we're really asking questions and watching how it's used. I learned more ways to improve Phoenicia just by watching a child play it unguided, seeing what they assumed would work, and then going back and making it work that way.
I think the open source model has a lot of potential in the educational space. Teacher and parents both are open and eager to share ideas, collaborate, and improve on the things they use to teach. All that's missing are the tools and a place for them to do that—something like GitHub but for non-developers and non-code contributions.
DW: Do you plan to write additional software geared to children's learning?
MH: While brainstorming the way Phoenicia would work we came up with many fun and exciting ideas that just didn't fit together with what we were trying to do. These could all be used to implement games to teach different concepts, from math to science to history. If Phoenicia is successful we want to complement it with more of these types of games that are as entertaining as they are educational.