3.11 Software Development
A key to Web 2.0 software development is to KIS (keep it simple; keep it small). At the 2006 Emerging Technology Conference, Rael Dornfest (now CEO of the company “values of n” and formerO’Reilly CTO) explained, “great businesses will be built on giving you less.”1 This is particularly important given the “attention economy” (too much information, too little time)—the theme of the 2006 conference.
The web has now become an application, development, delivery, and execution platform. The webtop, or web desktop, allows you to run web applications in a desktop-like environment in a web browser. Using the web as a platform is part of a movement toward operating-system–independent applications. The removal of OS barriers allows the potential audience for any single product to become larger. An example of a popular webtop is the Laszlo Webtop (built on the OpenLaszlo framework), which runs applications written in OpenLaszlo as well as those written in other frameworks using XML requests.2 Examples of Laszlo Webtop applications can be seen at http://www.laszlosystems.com/showcase/samples. Other webtops include eyeOS and StartForce.
Software as a Service (SaaS)
Software as a Service (SaaS), application software that runs on a web server rather than being installed on the client computer, has gained popularity, particularly with businesses. It provides many benefits, including fewer demands on internal IT departments, increased accessibility for out-of-the-office use, and an easy way to maintain software on a large scale.3 Instead of being installed on the local machine, software is installed on the provider’s web server and accessed by customers “as a service” over the Internet. Updates applied on the server impact every computer. This change from local to server machine makes it easier for large corporations to keep software updates uniform throughout the organization. Most Google software is offered as SaaS. Microsoft now offers SaaS products, Windows Live and Office Live.
Collaborating on projects with co-workers across the world is easier, since information is stored on a web server instead of on a single desktop. 37Signals has developed several SaaS products, including Basecamp (a product management and collaboration tool), Campfire (a group chat tool), Backpack (a personal organization tool), Ta-da (a “to-do” list tool), Highrise (a customer relations tool), and Writeboard (a collaborative word-processing tool). Salesforce.com, which specializes in Customer Relationship Management (CRM) software, is a key SaaS company—they provide popular business applications for sales, marketing, customer support, analytics and more.
Perpetual Beta and Agile Development
Due to the increased use of web applications there has been a shift away from the traditional software release cycle. Historically, companies would spend months or even years developing major new software releases. Because releases came so infrequently, each one had to go through extensive testing and beta periods to create a “final” release each time. There is now a greater focus on agile software development, which refers to development of fewer features at a time with more frequent releases. This “perpetual beta” of frequent smaller releases is made possible by using the web as a platform.4 A new CD cannot be distributed to all customers every day; however, updates to web servers delivering the application can be easily made.
37Signals’ Getting Real, an e-book that discusses agile techniques for building web applications, warns against the temptation to overuse “betas.” The Internet is a dynamic medium—there will always be flaws and possible upgrades. Companies must decide how long it’s really necessary to remain in a beta period, before it becomes just an excuse for a weak application.Getting Real, comprised of 91 short essays and numerous quotes and anecdotes, is a must read, providing an informative, insightful and entertaining walk through the software development process. The e-book can be read for free on their site or downloaded as a PDF for a fee.5
The open source movement continues to gain momentum. The idea behind it is not new (it was popularized in 1998 with O’Reilly’sFreeware Open Source Summit, now known as OSCON).6 Historically, programs had been distributed by sharing the source code, before selling compiled programs became the norm. Though open source software is not always free, the source code is available (under license) to developers, who can customize it to meet their unique needs.
“Business-technology managers know all too well the adage about open source: It’s free, as in a free puppy. The work and expense start once you get it home.”
—Larry Greenemeier, InformationWeek7
Using open source projects, such as the popular Linux operating systems Red Hat or Ubuntu, may require more work and technical knowledge than using the Microsoft Windows or Apple Macintosh operating systems. However, advanced users are able to customize the software to fit their needs. Benefits to using an open source program include the possibility of reduced cost (if you have the skills to work with it) and the worldwide support networks where users help each other. Because the source code is available to everyone, users can look to the community for bug fixes and plug-ins (program extensions that add functionality), instead of waiting for the software vendor to address each issue. The Ubuntu forums, for example, contain a wealth of information created by users helping other users. In addition to the free support that springs up around open source projects, businesses have been built from developing project extensions and consulting. IBM invested $1 billion in Linux in 2001.
“Linux can do for business applications what the Internet did for networking and communications.”
—Louis Gerstner, former CEO ofIBM8
At http://www.SourceForge.net over 150,000 open source projects are under development. Other sites with open source downloads includefreshmeat.net and Tucows. The popular Firefox web browser from the Mozilla Foundation, the Apache web server from the Apache Software Foundation, and the MySQL database system are all open source. DotNetNuke and PHPNuke offer open source frameworks for developing rich Internet portals, making it easy and economical to develop sophisticated websites. (http://www.deitel.com is a DotNetNuke site.)
Licensing: GNU Licenses and Creative Commons
Open source project licenses vary—many projects use the GNU General Public License (GPL), which allows redistribution of the project provided the source code is included and the copyright information is left intact. The Free Software Foundation provides other versions as well, including the GNU Lesser General Public License and the GNU Free Documentation License. The Open Source Initiative also lists over 50 licenses available to open source software developers, including the BSD license and the MIT license.9
Creative Commons (creativecommons.org) deals with licensing issues for all types of digital media. The organization offers a variety of options to support remixing (extending existing content), commercial issues and attsribution. By allowing users access to general licenses through Creative Commons or the Free Software Foundation, developers can worry less about the complicated issues of licensing and instead focus on developing.