OLPC Human Interface Guidelines
Introduction
Who Should Read This Document
These Human Interface Guidelines are targeted primarily at developers who desire to create tools that will function on the laptops. It provides an in depth view of the various features of the laptop interface, and focuses closely on the parts of the UI that pertain directly to development and the ways in which activities interact with the operating system.
However, as the contents do provide a comprehensive overview of the user interface, this document should also be of general interest. Hopefully the descriptions of the various UI elements, particularly in the Laptop Eperience section, will quench the thirst of all who want to better understand the project and its goals.
How to Read This Document
Undoubtedly, many who have made it to this page have read at least one set of human interface guidelines in the past. Nonetheless, we strogly request that you read the content of this document in full if you would like to begin designing for the laptops. While many of the terms contained within may be quite familiar to you, OLPC urges you to review them anyway, since this will refamiliarize you with them, but more importantly since our approach to the computing experience shifts drastically away from the traditional desktop. As such, this document may introduce some unfamiliar ideas around such otherwise familiar terms which you should consider throughout development.
Internal hyperlinking...
external links to API...
The Core Ideas
Activities, Not Applications
Though it might take a little while to get used to, there are no applications on the laptop, and no application developers making them. Instead, the user experience on the laptop focuses around activities. At OLPC we see this as much more than a semantic difference in the naming convention; it represents an intrinsic quality of the types of things that are going to make the laptops work, which the following points should elucidate. As such, please familiarize yourself with the terminology and take it seriously during development and anytime you talk about the activities you create.
Collaboration
Collaborative learning provides a powerful tool in the educational environment, allowing children to take responsibility for one another's learning as well as their own. Studies have shown the positive effects of collaborative activity on development, indicating that the exchange of ideas amongst peers can both make the learning process more engaging and also stimulates critical thinking skills. OLPC hopes to encourage this type of interaction with the laptops.
In order to facilitate this type of collaborative learning environment, the laptops employ a mesh network system which connects all laptops within range without need for internet access. This implicit connectivity alters the traditional computer metaphor, since every activity is a networked activity. As such a fundamental element of the laptop, OLPC not only encourages but insists that all activities should take advantage of it, and any activity that can't should perhaps be rethought.
As an example, consider the Web activity bundled with the laptop distribution. Normally one browses independently, perhaps sending a friend a favorite link now and then. On the laptops, however, link sharing features integrated into the activity transform the individual act of web-surfing into a collaborate way to explore the Internet. Where possible, all activities should embrace the mesh and place strong focus on facilitating the collaborative process.
Creation
OLPC hopes to make the primary activity of the kids one of creation, in whatever form that might take. As such, most activities will focus on the creation of some type of object, be it a drawing, a song, a story, a game, etc. This introduces another shift in the language used to describe the laptops, pointing to objects rather than files as the primary form of creative expression.
This emphasis on the creation of objects supports the Constructivist "learn by doing" approach. As most developers would agree, the best way to learn how to write a program is to write one; Studying the syntax of the language might be useful, but it doesn't teach one how to code. With the laptop, OLPC hopes to apply this principal to all types of creation.
Furthermore, this objectification of the traditional filesystem speaks more directly to real-world metaphors: instead of a sound file, we have an actual sound; instead of a text file, a story. In order to support this concept, activity developers may define object types and associated icons to represent them, which will become just as important to the interface as the activities that create them.
Journaling
The concept of the journal, a written documentation of everyday events, is universally understood, albeit in various forms across cultures. More importantly, a journal typically chronicles the activities one has done throughout the day. For these reasons, OLPC chose to adopt a journaling metaphor for the filesystem as an altogether new approach to file organization. While the underlying impementation of such a filesystem doesn't differ too drastically from some of those in contemporary operating systems, it also holds less importance than the abstraction itself, which certainly does.
At its core, the concept embodies the idea that the filesystem records a history of the things you've done, or, more specifically, the activities you've participated in. It's storage of the objects created while performing those activities is secondary, though of course also important. Of course, though many powerful means of sorting and filtering the entries will exist, the journal naturally lends itself to a chronological organization. As a record of things you've done, and not just the things you've saved, the journal will read much like a scrapbook history of the children's interactions with their machine and also with thier peers. The journal will combine entries explicitly created by the children with those which are implicitly created through use of the laptop and participation in activities, which also means that activities must think carefully about how they integrate with it, moreso than with a traditional filesystem that functions independently of an application. On the laptops, the activities, the objects, and the means of recording both tightly integrate to create a different kind of computer experience. To learn more about the benefits of the journal as a temporal filesystem, see the Journal portion of the Laptop Experience section.
Design Fundamentals
Know Your Audience
- Inexperienced
- The goal of OLPC is to provide children with new opportunities to explore, experiment, and express themselves. Many children in need of such opportunities have previously had little or no access to such technologies, and so will be unfamiliar with the laptop and how to interact with it. This will undoubtedly have effects on some aspects of activity development. On one hand, it means that developers must focus a fair amount of energy into making interfaces wholly intuitive, building metaphors that strengthen and clarify the interface based upon real-world ideas. On the other hand, since many of the children will see a computer for the very first time with the laptop, activities don't have to worry too much about behaving the way current applications do on other operating systems. This frees developers to innovate, since particular features needn't behave exactly the same way they do in a current OS due to users' expectations (except, of course, in cases where they would expect it to work that way based upon the aforementioned real-life metaphors).
- Young
- Many children will receive the laptops at Kindergarten age. This is, in fact, a great opportunity since children at such an age are impressionable and have strong desires to explore and learn, and the laptop should provide another tool for doing so. However, though the children will receive laptops at an early age, they will also keep the same laptop throughout their schooling. Therefore, it is important to develop activities in ways that scale to teenage audiences as well. Of course, if designed well, these activities should be both entertaining and useful to an audience of any age.
- International
- The OLPC initiative, by its nature, requires international involvement and participation. Developers must keep in mind the broad range of cultures and languages that the laptops must transcend. In particular, activities should not depend on western icons and modes of thinking, but should abstract ideas to a level that would be familiar to humankind in general, where possible. For instace, consider the camera button on the keyboard. Though one might be inclined to label this key with a small image of a camera and lens, the eye graphic speaks directly to our human capacity for vision, providing a cross-cultural icon that represents the compute's ability to capture what it sees.
Key Design Principals
- Performance
- Usability
- Simplicity
- Reliability
- Adaptabilty
- Interoperability
- Mobility
- Exposability
- Accessibility