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 Webtop
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
Open Source
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.