Open source

XIV.6 November + December 2007
Page: 30
Digital Citation

An open source primer

Elizabeth Dykstra-Erickson, Yann Cheri

back to top 

Why Open Source? Why is open source the choice? For some, there is a financial incentive; for others, the philosophy of open contribution is attractive. Using open source software leverages the thinking of many others and takes advantage of a well-organized distribution channel. Fixes, enhancements, discussion, and proposals come from the community to better serve the purpose of the software. If you want to sell a project from your open source efforts, open source has another advantage: There is much less risk in an open source project of your team disappearing, your funding drying up, or technology changes taking you by surprise.

Know Your Objective. To start a new project, decide whether you want to host your own project or use a popular service on the Internet such as SourceForge. Regardless of whether you host it yourself, you will need to create an introduction to the project and explain its purpose, establish a file repository and set up a bug tracking system, and create a communications mechanism, usually including a browseable mailing list or a forum (available in different levels of complexity). Ideally, you should document APIs, how to use them, provide sample code and sample applications that use it.

At the same time, get a handle on what it is you're trying to create. It could be as small as a new widget, or as grand as a global solution. Open source projects aren't all that different from for-profit private projects: They have leaders, and one must propose changes before they are accepted.

Know Your Development Environment. In general, choosing a development environment largely depends on which available environment is the most familiar to the developer who creates the project. Be aware of the limitations that could apply to your project, since it is difficult to assume that a project can be environment-agnostic due to coding practices and inherent capabilities of the development environment. For example, two common development environments are QT and GTK. QT has better animation and transition possibilities; GTK is more limited in that respect but has a larger developer community, and improvements are on the way.

Familiarize yourself with the current changes in process; be aware of planned projects so that you don't spend valuable effort doing what the community already has in the works.

Know Your Widgets. For designers, understanding your toolkit is a good first step. What widgets are available to you? What tools are available to engineers? How do they fit together? What are the limitations in your development environment? Open source widgets can be very complex because they are open to enhancement by anyone in the community. This means that many, many hands can touch your raw materials. Some widgets have been rewritten or augmented so many times that they become more difficult, rather than easier to use over time. Changes to widgets may work for a certain project or use but won't work with your project. On the other hand, the benefit of open source is that you can easily invent your own widget and donate it back to the community.

Understand How Open Source Works. Depending on the license you are using, you may have certain obligations around redistributing your source code. The articles in this special section provide a good guide for licensing choices and managing your project. If you want to maintain the intellectual property of what you have designed, you need to organize the libraries you are creating in a way that the distinction is clear between what you are keeping and what you are redistributing. For example, depending on the license of the open source components you use in your application, and depending on how you use the open source components, you may be obliged to redistribute (donate back) your entire application.

Are you the inventive type? Do you want to contribute a novel interaction technique or an innovative widget? And do you want to protect your ownership of your ideas? If you put something out there, the community may well take it and run with it—and possibly not in the direction you intended—or not use it at all. You are responsible for your own buzz.

If your company is considering getting involved in open source, this special issue is for you. Spread the word: Software is free! And you are free to create, invent, support, and contribute. There are many open source alternatives to proprietary software you likely use every day. Try these for yourself: Adobe Photoshop: GIMP (; Adobe Acrobat: Ghostscript (; Adobe Illustrator: Inkscape or Skencil (; Microsoft Office: OpenOffice (

back to top  Authors

Elizabeth Dykstra-Erickson
ACCESS Systems America

Yann Cheri
ACCESS Systems America

About the guest editors

Elizabeth Dykstra-Erickson is VP of product concept and user experience at ACCESS Systems America, makers of the Palm OS and ACCESS Linux Platform for mobile devices. She is a member of the Human Factors in Telecommunications Permanent Steering Committee and is serving as the design chair for CHI 2008 and chair of the Student Design Competition for MobileHCI 08. When she's not tending to operating systems, she teaches design and management at UC Santa Cruz. In her spare time she scours the world for 18th and 19th century sentimental jewelry and studies U.S. and European mourning traditions.

Yann Cheri is the product marketing manager for user interface at ACCESS Systems America. He has more than seven years of experience in mobile embedded systems in both product management and engineering roles. He has expertise in many areas of mobile telephony, including messaging, user interfaces, and systems design. Yann formerly held the position of chairman of the Telephony Workgroup for the Linux Standards body, LiPS. He holds a MBA from Montpellier Business School and a master's degree in engineering and computer science from Polytech' Montpellier, both located in France.

back to top 

©2007 ACM  1072-5220/07/1100  $5.00

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

The Digital Library is published by the Association for Computing Machinery. Copyright © 2007 ACM, Inc.

Post Comment

No Comments Found