This OLPC project seems to be going pretty well. G1G1 2008 just finished, there are a number of successful pilots going on, and a number of larger-scale pilots will come online this spring and coming summer.
Still, there is a big gaping whole in the middle of our little education project. There just aren't enough activities. Mind you, we have some seriously awesome activities such as Etoys, Scratch, TamTam, and others. We have tremendous depth but very limited breadth.
By breadth, I mean interactive activities for language, history, geology, health, etc. In order to expand the range of activities, we need to recruit a lot more activity developers and make it dead-simple for them to contribute.
EToys can do a Lot
But Which Developers?
Let's think about who we want to recruit. We're talking about breadth here so we need experts on Nepali grammar, Pashto vocabulary, Philippine history, and Andean geography. The good news is that there are technically-oriented people out there that know these things and want to help.
We already have a hardcore team of dedicated hackers. We need them for the work that hackers excel at: building infrastructure, testing the limits of new systems. But now we need a different class of developer, those that are focused on the presentation, game play and not system internals.
Due to rise of the Internet and related boom in outsourcing, the vast, vast majority of programmers in developing countries are web developers (according to my own grossly unscientific survey). The rise of the Internet has also led a lot of talented graphic designers in developing and developed countries to learn web technologies. I even
Very few programmers in the developed world get paid to write desktop linux apps. Still, open-source developers find learn and build pygtk, mono, and KDE apps in their free-time. Developers in the developing world are extremely enthusiastic about FOSS but not nearly as prolific in creating open-source software due to a phenomenon I
call the "FOSS-Nepal Paradox."
The FOSS Nepal community has won the award for best celebration of Software Freedom day for two years in a running. Despite all this enthusiasm the FOSS Nepal community is not very prolific in producing open-source code. The reason for this is that Nepal is not a wealthy country and that Open-Source is expensive to produce.
Open-Source is Expensive
Open-source software voraciously consumes a resource even more valuable than hard cash, programmer time. Linus Torvalds could afford to spend some of the most productive years of his life working without immediate financial benefit. He could slack off in his classes without fear of unemployment upon graduation. I doubt his parents were counting on him to support them financially once he got a job.
Most talented Nepali programmers I know do not have those luxuries. They are under a lot of pressure to support their parents and extended families, financially and otherwise. So Nepalis, Bangladeshis, Peruanos, etc. certainly have the passion and ability to contribute to open-source but their free time is significantly more limited.
This doesn't mean that we should rely on developers from rich countries. We simply need to radically lower the amount of time required to create learning activities. I believe that many, many developers in the developing world can contribute 3-5 hours per week. To make those few hours productive we need to rework the default activity framework.
From what I can tell, the primary design goals of the default PyGTK activity
framework are as follows:
- Give the programmer maximum flexibility
- Fully exploit the XO's hardware features
- Mesh nicely with Sugar
These three goals are laudable and their hacker roots are obvious. The problem is that these goals maximize the technology's potential rather than programmer productivity. We need reach beyond the vi/emacs crowd (Note: I wrote this article using emacs) to thos folks that the masters of Photoshop, Adobe Illustrator, Eclipse, and GIMP.
I propose a new set of design goals:
- Allow activity designers to quickly build activities utilizing widely-used tools.
- Quickly reward effort with working behavior
- Mesh nicely with the Sugar UI
It's OK to be Opinionated
We need an opinionated activity framework that makes infrastructure choices for the designer so that she can focus presentation and gameplay. Some may recognize this as the principle of Convention Over Configuration, a principle that two of the most popular web frameworks, Django and RubyOnRails, adhere to. Now a lot of geeks don't like Convention over Configuration--perl hackers especially--but they sure do allow you to create nice applications very quickly.
Establishing an "opinionated" activity framework will in no way limit the freedom of those hackers who want to go their own way. They can always build their own activities from whatever tools they choose. The whole point of a framework is to help people get started quickly but it doesn't constrain anyone.
This concludes part I. Here are some tantalizing morsels from Part II
of "How to Make Activity Designers Happy,"
- Nepal's Content Development Experience
- Aren't Kids going to create all learning activities so we don't have to?
Bryan Berry is the Technology Director of OLE Nepal and deadbeat co-editor of OLPCNews.com.