|
Open Source Software Defined with Considerations for Use in the Construction Contractor’s Office
Open Source Software is becoming an increasingly popular licensing and development paradigm for public and private organizations seeking standardization and control of their office productivity workforce and IT systems. The rapid pace of adoption and worldwide development of this software can provide production, standardization, and cost opportunities to the construction contractor. This paper provides a definition and brief history of open source software and a discussion of the advantages and disadvantages it offers to construction contractors.
Key Words: Open Source Software, source code, software platform, General Public License, End User License Agreement
Introduction
The construction contracting industry, by its very nature of eclectic business processes, lends itself to management of considerable information. Computer software is a useful tool for managing large amounts of data and for minimizing the costs of information creation, organization, and transactions. Knowledge of current trends in the software industry, typically years ahead of the construction industry’s adoption of that technology, can aid the construction contractor in the constant decision making required to manage information flow in a competitive marketplace. Open Source Software is a major trend in the software industry. This software is becoming an increasingly popular licensing and development model for public and private organizations seeking standardization and control of their business data. The rapid pace of adoption and worldwide development of this software can provide production, standardization, and cost opportunities to the construction contracting organization. In order for contractors to gain advantage with open source software, they must first understand what it is. This understanding requires the historical context from which it came.
The term ‘Open Source Software’ was created several years ago to avoid confusion with The Free Software Movement and what Microsoft Windows users know as ‘shareware’. The intent was to make this type of software more palatable to business managers and executives. The word ‘open’ implies free access and ‘source’ refers to the software’s ‘source code’. This software has two distinguishing elements:
The definition requires explanation of the software with which it can be confused. Most people in the construction business are familiar with several types of software. The two most common types of software we encounter are operating systems (OS) and applications (programs) used in the office and at home. These types of software are most often ‘closed’ source because the programming ‘code’ which they consist of is in Binary Form. Software code is simply text of a particular ‘language’ such as C, C++, FORTRAN, etc. The code must be ‘compiled’ or converted into 0’s and 1’s so that your computer can interpret the commands and instructions. This is accomplished by the use of other software programs called ‘compilers’. Closed source software is often referred to as ‘shrink wrapped’ software because you can buy it in boxes at a store with cellophane wrapping. The main point to retain is that these products are distributed in binary code format.
Shareware refers to software distributed in binary form, but usually not ‘shrink wrapped’. These programs can be downloaded off the internet and their licenses have minimal restrictions. Typically the user is free to use the application for a period of time before being required (or forced, by decreased functionality) to offer the author of the code some type of payment. This software is also delivered in binary format.
Open source software refers to code which is not compiled. The source code is distributed in its language-text format, un-compiled for the end-user to view, change, and compile if desired. The software is frequently also distributed in binary form. It is also important to note that when software is in binary or compiled form, it is extremely difficult to view how the software is written and designed or to make changes to it.
Brief History
Prior to Microsoft’s (MS) arrival in 1975, most computer programs were exclusively used by corporate research departments and universities. The programs required very expensive hardware on which to run and the operating system was some variant of what is called ‘UNIX’. Because of the extensive use in universities, software programs were commonly shared free of charge, although the operating systems were not. Some of the companies which developed and sold the operating systems were IBM, AT&T, and DEC (Raymond, E.S. ed. DiBona, Ockman, & Stone 1999).
At the time when Microsoft produced MS-DOS (Disk Operating System), affordable hardware to run programs was just becoming available to the ‘common person’ by the way of hobby kits distributed through Popular Electronics magazine. This is the point at which things changed as we now know them. The hobbyists began to use MS-DOS on their machines and freely trade copies of the OS amongst themselves. This was in violation of Microsoft’s license terms for use of the software. In a now famous, ‘Letter to Hobbyists’, Bill Gates, the co-founder of Microsoft, made his case against sharing non-purchased copies of his product. It is important to remember that prior to this, only UNIX was typically ‘licensed’. So the fact that Microsoft required an End User License Agreement (EULA) in consideration of a fee for use of their MS-DOS product was not typical. The rest is now history as the personal computer became commonplace to the masses and Microsoft has collected millions of fees (billions of dollars) for their EULAs.
At approximately this same time, a doctoral programmer at MIT named Richard Stallman was becoming frustrated with the growing acceptance of EULAs. Although he programmed in UNIX, Mr. Stallman felt that these licenses stifled creativity, community, and his freedom to make the software fit his needs. It should be noted that Mr. Stallman did not object to the monetary consideration involved in the license agreements. He merely wanted to get a program to work correctly with a printer (which his entire department shared). Another important aspect of the EULAs was that since their software were distributed in binary form, it was therefore unalterable, and that is what Stallman objected to the most. Most EULAs associated with closed source or proprietary software also prohibits changing or reconfiguring the programs, unless you pay the software vendor to do so.
Stallman believed that all software should be ‘free’. It is important to note that by ‘free’ he meant the freedom to make changes to software code and freedom to distribute the programs. He did not mean free of charge, necessarily. Dr. Stallman, as an expert programmer, set out to create an entire operating system and software productivity applications based upon UNIX that would allow him to avoid the restrictive EULAs. This gargantuan task became known as The Free Software Movement.
In order to create an operating system, Stallman needed a compiler first in order to convert code to binary. He first created a text editor called Emacs which is still widely used today. From the use of Emacs he created the GCC compiler which now made it possible to write and compile programs for use. Another significant milestone in this historical perspective is that Dr. Stallman created his own EULA agreement called the GNU General Public License (GPL). “GNU is a recursive acronym for "GNU's Not Unix"; it is pronounced ‘guh-noo’.” (http://www.gnu.org/).
Stallman’s General Public License was and is based upon U.S. Copyright Law. He calls this ‘copyleft’ and its primary elements are as follows (Dibona, Ockman, & Stone, 1999):
Before Stallman could complete his operating system, a computer science student in Finland beat him to it. The student, Linus Torvalds, wanted to do his UNIX class assignments at home on his personal computer (as opposed to sharing time on big machines running UNIX in the university’s computer lab). He began the code himself, and then posted it to the internet for others to test, use, and collaborate in building. Torvalds utilized Stallman’s GPL and called the operating system Linux (pronounced lin-uchs, rhymes with UNIX). Linux is based upon UNIX architecture, programming techniques and philosophy. Linux grew exponentially by leveraging the use of the internet and unpaid programming volunteers. It took Microsoft twice the time to accomplish what the Linux project has since 1993 (along with Stallman’s contributions since 1984 and the contributions of volunteer programmers worldwide). Linux was reportedly used by organizations to power almost 30% of the world’s web servers in 2001 (Wheeler, D. A. 2003).
Since Stallman had created a text editor and compiler, hundreds (if not thousands) of software programs (and several software languages) have been created to run on Unix-type operating systems. Once Linux came along, all these programs could be run on it, therefore completing Stallman’s dream of a completely free computing environment. Also occurring in the past ten years or so is the creation of ‘hybrid’ licenses of the GPL. These EULAs make subtle but significant changes to the elements of the GPL listed above.
Open Source is a marketing term coined by Bruce Perens and Eric Raymond in 1997. These two men were concerned that the rapid acceptance and use of free software in the business place would be hindered by the term ‘free’ and the growing outspokenness of the members of the Free Software Movement (Perens, B., ed. DiBona, Ockman & Stone, 1999). Their foresight has been born out, as more and more businesses and governments worldwide have adopted open source software for their office productivity requirements. The Open Source Movement can be considered as more of a software development model versus The Free Software Movement which is philosophical in nature. Both have overlapping elements, but are not the same. The Open Source trend continues to accelerate due to several factors:
The Rapid Pace of Open Source Software Development
All software is capable of failure and we call these failures ‘bugs’. The author spent almost five years with a firm which develops and markets closed source software. His experience is that, only when a computer program is tested in every possible environment and is deemed problem-free, can it be called bug free. The ‘every possible environment’ is the caveat. Software programs must be tested with hundreds and thousands of different hardware configurations, alongside other software programs running simultaneously, with different operating systems, and with all the possible differences of end-user input (keystrokes, mouse clicks, etc.). This is a Herculean task. Proprietary software vendors typically have internal personnel (programmers and quality control) and some percentage of their end-users assist in this testing. With a required finish date for production usually the case, it is virtually impossible to diagnose and correct every malfunction (bug) associated with a program.
In the open source development model practiced by Linus Torvalds with Linux, since the software resides on the internet and anyone can download it and test it, the number of potential (and actual) testers is increased exponentially—thus compressing the testing duration and providing for significantly diverse ‘testing environments’. So for some programs, open source offers quicker development time and more thorough testing, resulting in software with fewer failures. Eric Raymond authored a book on this phenomenon called The Cathedral and the Bazaar.
Another aspect of this rapid development process has to do with what is referred to as Desktop Computing. Desktop Computing involves programs that most of us use, such as spreadsheet, word processor, email, and web browser applications. The desktop market is dominated presently by Microsoft with office productivity suites such as Microsoft Office XP. Linux has gained a significant share of the market in web server computing. UNIX and Linux server and network administrators rarely use windows-type user interfaces (called graphical user interfaces, or GUIs). Instead they give commands to the computer by way of the ‘command line’. They type commands to the computer in a language that is character-based and has no need for a mouse. Some of us may remember when we had Microsoft’s MS-DOS and had to use the command line to install programs or change operating configurations.
In the past five years, the rapid pace of open source development has provided desktop applications which almost equal those of Microsoft Office XP. With the pace of current development, sooner than later open source desktop applications equal to Microsoft’s will be available.
Economic Conditions in the U.S. and Worldwide
Current conditions in the United States find that most state, municipal, and local governments are running deficit budgets. When faced with high costs of software licensing, open source desktop and backend (server) software is increasingly being considered as an alternative to proprietary software. Cities such as Austin, Texas and Munich, Germany have recently replaced Microsoft’s office suites with open source alternatives. At the U.S. government level, the Department of Defense has done so. Now that they have an alternative with free or low cost software, these organizations view funds spent on licensing software as better apportioned to training or other budget items. No less important is the frugal use of dwindling taxpayer dollars.
Microsoft’s Licensing Trends
As those who utilize Microsoft software applications and operating systems know, technology is allowing software vendors to drastically quell the number of illegal software users, and rightfully so – their products are proprietary. Microsoft software is increasingly difficult to use illegally (in violation of their EULA). Users are required to register and pay a fee before the software will function and/or install. Contrast this with complete, robust office suite applications available for download free and legally on the internet and it becomes obvious why open source software is gaining market share.
Microsoft’s Support Policies
Microsoft has very recently revealed that they are discontinuing support for two of their popular operating systems, MS Windows 98 and MS Windows 2000 (http://www.microsoft.com/windows/lifecycle.mspx). As newer software programs will require a more recent operating system (MS Windows XP and newer) and older computer hardware fails over time, it will become a required periodic payment to operate Microsoft software. Software users with illegal copies will be required to upgrade and legal users of older software applications will not have an outlet for support. Contrast those scenarios with the fact that today a person can buy a fully functioning computer (with monitor and printer) for as little as $500.00 and install legal software at no cost which is capable of running a home office or small business. Microsoft’s support policies are going to cause users to choose between upgrades for cost, or open source for no cost.
Construction Contractor’s Critical Software Applications
The construction contracting office typically requires the use of the following software applications:
All of the applications in the Desktop Computing list are available as open source. The same holds true for the Server Applications with the exception of the accounting and estimating items. The lack of an estimating application may be a moot point if a firm utilizes spreadsheets for this function. There are however, several sophisticated accounting systems offered on the Linux platform which are not open source.
Linux has gained acceptance within large software and hardware vendors such as IBM, Sun Microsystems, Hewlett-Packard, and Oracle. Sun and IBM are developing and offering quite extensive software systems with a mix of open and closed source software code. Two very useful software applications now offered currently go through the open source development process before becoming closed source offerings. They are free to utilize in the open source format.
Following is the software applications typically required in the construction contracting office and appropriate open source choices available for use today.
Mozilla/Netscape Web Browser and PIM suites
In 1998, Netscape Communications released their popular Navigator suite of applications as open source (Hamerly, J. & Paquin, T. & Walton, S., ed. DiBona, C. & Ockman, S. & Stone, M., 1999). Netscape is now owned by (AOL) Time Warner. The Netscape software is developed under the open source model as Mozilla. As the newer Mozilla versions become stable from taking advantage of the open source quality testing scrutiny, they are released as new versions of Netscape, which is a closed source application. There are no significant advantages to running the Netscape application over the Mozilla application. In fact, there are significant advantages in utilizing Mozilla, such as user control over advertisements and security, as well as countless plug-ins which are constantly being developed. The Mozilla application consists of a robustly featured web browser, email client, address book, HTML editor, and other development tools which are optional to install.
OpenOffice.org/Sun StarOffice
In 2000, Sun Microsystems began utilizing the open source development model to precede their versions of the StarOffice suite of desktop productivity applications (http://www.openoffice.org/about_us/accomplishments.html). The suite includes spreadsheet, word processor, presentation tool, html editor, label and business card maker, drawing tool, math formula editor, and database access. The suite features the ability to create and read Microsoft Office files, export to PDF format, and has an open XML file format. This suite of applications has advantages over the Microsoft suites in the area of networking (which can save on hardware resources). Similar to the Mozilla/Netscape model, OpenOffice (OO.org) is developed and delivered to the public before becoming a version of StarOffice. StarOffice has advantages over OO.org such as improved fonts and development tools. Both suites connect easily to databases and can leverage Sun’s java programming language to create robust applications.
Platforms
It is important to briefly discuss operating platforms which refer to the operating systems (OS) and network infrastructures utilized by productivity workers. The choice of operating system(s) utilized can dictate which software programs can be run. Some of the more popular OS choices available today are MS Windows XP, Linux, Solaris, and Apple OS X. Most people are not aware that Apple’s latest OS is based upon an open source UNIX variant called BSD (but the OS itself is not open source).
If a program runs on more than one OS, we say that it is ‘multi-platform’. Mozilla/Netscape and OO.org/StarOffice are multi-platform. Some of the applications in the Desktop and Server list will only run on Linux or MS Windows. The Linux Operating system can be obtained directly from the internet, ordered through the mail, or purchased in retail software stores. There is only one Linux operating system and this is called the ‘Kernel’. When the Linux Kernel is packaged with other software, this is called a ‘Distribution’. There are dozens of Linux Distributions, each created for differing needs. Think of how Microsoft markets their operating systems, categorized by use in the home or business, and you will have an analogy to Linux distributions.
Primary Considerations for Software Use in the Construction Contractor’s Office
Before stating the value of open source software to the construction industry, several preliminary topics should be addressed concerning open source software:
Quality and Reliability
As previously stated, open source software typically has more testers, and therefore its stability equals or exceeds that of proprietary or closed source software. As opposed to software failures and security vulnerabilities which many proprietary vendors attempt to keep secret in an effort to protect their reputations and markets, open source software problems are exposed in the openness of the internet and usually dealt with more quickly.
Usability
Usability refers to the ease of navigation in a software application’s operation by the end user. Another way of expressing this attribute is by asking the question, “How intuitive is this program to operate”? Since a significant portion of open source software is coded by communal volunteer programmers, there is a tendency to value features and functionality over ease of use (after all, many of these coders run their computers from the command line instead of using a windows-type GUI). There are several ongoing windowmanager projects that are very mature and stable in which an emphasis on usability is a prime goal.
Users of Linux and other UNIX variants have a choice of desktop environments and ‘windowmanagers’. These are the Graphical User Interface environments which allow the user to navigate programs. In the UNIX world there are over a dozen from which to choose. Two desktop environment projects, The KDE Desktop and the Gnome Desktop, have recently attracted most of the developers. Most users who can adequately navigate Microsoft Windows can also navigate with Gnome and KDE.
Support
Support refers to available assistance when installing, using, and upgrading software applications or operating systems. In the shrink wrapped software market, support typically is offered free of charge for a defined period of time after purchase or for a fee in association with an extended time period and for addressing non-typical problems. Since most open source software is not created by corporations, there is no such organization to contact for support. There is no 800 number to call.
This is not to say that open source software has no support. The support just comes in different forms, and requires the user to become active in the process. The most typical formats are email, online user forums, and user manuals. Delivery usually involves use of the internet and a software application’s development web site.
The open source world is very much a collection of communities. These communities are built around people who create and use software. It is in the interest of the community for you to be successful and satisfied with the software—this type of assistance is a natural progression of the phenomenon.
Many people are not comfortable with such a support model or simply may not have access to the internet. This has created a market for support service companies and is a common aspect of the business models being built around open source software. These organizations specialize in providing internet, phone, or onsite support for open and free software.
Upgrades
Software upgrades refer to software code which must be added and/or removed from the original application. The need for upgrades is typically the result of improved/added features or security vulnerabilities. In the Microsoft Windows world, these upgrades are usually represented by an executable software file which adds the code to the original program. In the Linux world, upgrades come in the form of ‘packages’ (as do the applications) and can be downloaded directly from the software project sites or from centralized package centers which automatically update the software, much the same as the Microsoft Windows XP upgrade feature.
Advantages of Utilizing Open Source Software
Choice: By utilizing open source software the construction office has choice over which computing environment they wish their productivity workers to experience. There is the choice of operating systems, windowmanagers, applications, and data formats to utilize.
Control: By implementing open source software, the construction office has control over its information. For example, the Linux operating system allows the user more control over software and hardware interaction. In regards to applications, the user can control the level of security and privacy, adjusting the software to fit individual and organizational needs. Since data formats can be standardized, proprietary formats can be avoided, thereby steering clear of dependence on specific software vendors. Software version control is managed by the end-users.
Freedom: Open source software distributed under the General Public License and its hybrids provides freedom from restrictive EULAs. The contractor has the freedom to copy and modify the software to fit business needs without fear of litigation. The decision to upgrade versions of software becomes solely up to the user.
Standards: Open source software is usually based upon international standards. This allows data to flow between different programs more fluidly. Microsoft is notorious for utilizing non-standard protocols and formats in order to lock-in markets to their products only.
Cost: Depending upon the number of workstations and servers required in the construction office, licensing costs of proprietary software can be significant.
Disadvantages of Utilizing Open Source Software
Training: Although open source software almost always costs considerably less to obtain, some of those savings may be reduced by the training requirements of the productivity workforce. These training costs should be compared to costs of training required for proprietary software applications and systems.
Hardware Compatibility: Special software called hardware drivers are required in order for software and hardware to interact. Since many open source applications are produced and maintained by volunteer programmers, it typically takes some time after new computer hardware is introduced to the market for these drivers to be written.
Intellectual Property Legislation: Intellectual Property (IP) consists of rights and laws pertaining to copyright, trade secrets, and patents. These laws, in both the United States and worldwide, are just beginning to have their complex applications to software code realized. It is possible that some interpretations of these laws, or new legislation, could complicate the use of open source software.
Inoperability: Utilization of an open source browser and office suite can cause inoperability with other software which must interact with these applications. Many web sites and web applications are designed for Microsoft’s browser (which does not fully conform to international standards) and may not function or render correctly. Correspondingly, applications designed to exchange data with MS Excel or MS Word may not function with OO.org or Star Office.
Conclusion
Following are options available to the construction contracting office that considers running open source applications in an environment of MS Windows operated machines.
Option 1: Utilize Both Operating Systems
It is a relatively easy task to enable computer workstations to exploit the benefits of both Microsoft Windows and Linux (distribution) operating systems. When the user starts or ‘boots’ their computer, they are prompted to choose which OS they require. When booted to Linux, the user can see all of the files in their MS Windows system (see Option 3). This configuration is known as a ‘dual-boot’ system.
Some Linux distributions come configured with emulation software which allows MS Windows programs to be run without the MS Windows OS. The Canadian distribution Xandros has such an emulator which has allowed the author to run Quicken on Linux.
It is also possible to use Linux applications without installing them to a hard drive. The Linux distribution Knoppix (German) is contained on a single CD ROM and will boot from a MS Windows machine. This ‘live’ CD allows you to operate Windows from the hard disc drive and Linux from the CD media. Knoppix contains both the Mozilla and OO.org suites. The distribution can be downloaded from the internet as an image file and burned to a CD ROM. Then, if you allow your computer to boot from the CD, you have a fully functioning Linux system.
Option 2: Utilize Web-based Applications
Software applications which run on web servers are platform-neutral. Only the web servers themselves are concerned with which operating system is engaged. You can access all the same internet websites regardless of which OS your machine boots to. In a similar regard there are a growing number of web-based applications of which the construction contractor can take advantage. Some of these include timesheet, accounting, and scheduling applications. Linux was conceived from the internet and built to interact with it. Sun Microsystems coined the term ‘the computer is the network’.
Option 3: Utilize Samba
“Samba is a suite of tools for sharing resources such as printers and files across a network” (Eckstein, Using Samba, 2000). Samba is open source software and is multi-platform. Samba can act as a substitute for the MS Windows NT server, provide a common area for data or user directories in order to transition from a Microsoft to a Linux server, can share printers across both MS Windows and Linux workstations, and allows access to MS Windows files from Linux (Eckstein, Using Samba, 2000).
Option 4: Utilize Open Source software on the MS Windows platform
Since OO.org and Mozilla can be utilized with the Microsoft Windows operating system(s), contractors can begin with this simple step before attempting more complicated options.
Summary
Open Source software offers the construction contracting office significant opportunities. These tools are mature enough to compete with or exceed the capabilities of traditionally licensed software applications. By embracing the opportunity now, construction contractors can standardize their information formats, control their information flow and processes, and avoid software vendor determination of business processes. Standardization of data formats is crucial for the construction contractor so that information can flow freely between different software applications. For example, the ability to recycle data from the estimate into accounting, scheduling, project management, and other applications reduces data-entry costs and negates the requirement that all of these applications be licensed from the same or specific vendors. These advantages will continue to increase annually because of the rapid pace of open source development. Any office considering a transition to new software should do so incrementally in a well planned and controlled setting. As described in this paper, a number of options are available using the ever growing and acceptable open source software and platforms.
References
DiBona, C. & Ockman, S. & Stone, M. (1999). Open sources: Voices of the open source revolution (1st ed.). Sebastopol, CA: O’Reilly & Associates, Inc.
Eckstein, R. & Collier-Brown, D. & Kelly, P. (2000). Using Samba. Sebastopol, CA: O’Reilly & Associates, Inc.
FSF, Gnu’s not unix! http://www.gnu.org/ (1 Jan 2004)
Gates, B. (1995). The road ahead. New York: Penguin Books USA Inc.
OpenOffice.org accomplishments: year one. (October 13, 2000). http://www.openoffice.org/about_us/accomplishments.html (1 Jan. 2004)
Raymond, E. S. (2001). The cathedral & the bazaar. Sebastopol, CA: O’Reilly & Associates, Inc.
Stephenson, Neal. In the beginning was the command line. http://www.cryptonomicon.com/beginning.html (1 Jan. 2004)
Wheeler, David A. Why open source software / free software (OSS/FS)? Look at the numbers! (December 31, 2003). http://www.dwheeler.com/oss_fs_why.html (1 Jan. 2004)
Windows desktop product life cycle support and availability policies for businesses. (October 22, 2003). http://www.microsoft.com/windows/lifecycle.mspx. (1 Jan. 2004)