Mobile devices are fast outpacing the growth of PCs. Gartner Inc. estimated that 750 million mobile phones would be shipped last year -- the vast majority of them with Java capabilities built in.
Analyst firm IDC predicted that the worldwide mobile worker population will increase to more than 850 million workers by 2009 and that while Asia currently has the largest number of mobile workers, the U.S. is expected to reach more than 70% mobile workforce penetration by 2009. They report that this would make the U.S. the most mobile workforce in the world.
These increases have become the dominant forces in driving the need for a new level of mobile applications. Even with an increasing number of IT users working in a mobile world, key mobile applications, such as mobile e-mail, haven't taken off as expected. Some argue this is because the e-mail protocols haven't evolved fast enough; others point to the restrictions traditional application tools impose on the mobile development process and that open-source software and open standards can do for the world of mobility what they did for the Internet.
I find these arguments compelling. In recent months, I have traveled around the U.S. to a variety of conferences and events and have talked to a number of IT managers and mobile application developers who are turning to open-source for the first time. These folks, both from enterprise IT shops and from development teams at carrier and handset manufacturing organizations, are looking to open-source to help them build flexible, differentiated and high-quality applications for mobile device users.
What I've found is that managers and developers wanting to use open-source tools for mobile applications are looking for some basic guidelines to ensure that they're getting the most leverage out of open-source software. Here are some recommendations for determining this for yourself:
Look for a large, active community surrounding the technology and product.The larger the size of the community for any given open-source project, the more eyes that are looking at the code and the higher quality the end product will be. In the mobile world, particularly, there are so many different devices, each with its own issues, that experience from other contributors provides real value. There is no possible way for a single vendor to do the level of testing or assessment on each device that can be done with a large open-source community.
Check for comprehensive, proper documentation.A large open-source community means a large number of valuable contributions but it's no good without proper documentation. If it isn't available, you are simply lost. Check for a Wiki site and be active in improving it. Check for activity in the developer forums and mailing lists for informal documentation of the design and code contributions.
Test for scalability.Not all software, proprietary or open-source, is designed for scalability. If you don't make sure the code is scalable, you may be in trouble when you see the demand for your applications increase and need to support thousands or even millions of users. The benefit of a large open-source community is that users will likely have pushed the "corner cases" of the code before you've even downloaded it.
Check to make sure your open-source software and tools are supported or used by your company's mobile partners.The greater open-source community is at the early stages of bridging with the mobile marketplace.
- Consider the compatibility and extensibility of your open-source infrastructure. Everyone knows that for a mobile open-source application to be successful, it needs to be extensible. Open application programming interfaces (API) allow developers to plug their applications into other applications' APIs and extend the capabilities of any application. While availability of the source code provides the basis for integration and extension, evaluate open-source code bases for modularity and well-architected API sets.
Look for code that has been used by a variety of vendors and customers.Mobile software needs to be compatible with a wide range of devices and work on any network in the world. So, open-source software that has been used by device manufacturers, network operators, independent software vendors, application service providers and enterprises is more likely to work over a wide range of conditions. Also, look for software that has been included in industry testing sessions and multivendor compatibility challenges.
Consider the licensing options available with the open-source project.
Among software vendors, the most popular open-source licensing model is dual licensing. In general, users may choose between using a general open-source license, such as the General Public License (GPL), or a commercial license issued by the company that supports the open-source project.
With the GPL, for instance, developers or users may download the software for free, modify it and distribute it while following the rules of the license (that is, everything you distribute with the original code must be GPL as well).However, indemnification and other key business issues are not well covered by the GPL, and you may not want to open-source your code. If a software or hardware vendor wants to distribute a proprietary application based on an open-source project, they will likely need to purchase a commercial license, which usually comes with services and support.