Internet-based Information Systems:Open source software development

Open source software development

One way in which the Internet has affected IS development is through open source software. This is a radically different approach to the more traditional organization of IS development teams.

A software product can be categorized as Open Source Software (OSS) see (http://www.opensource.org) when: the source code is available to the user, the software can be redistributed, the software can be modified, and the licence is not restrictive and must apply to all users and groups. This does not

mean that OSS products are necessarily 'free' or that products that appear to be free are in fact OSS. Because it costs no money to download, some software is called 'free', even though the source code is not available (the following is paraphrased from www.opensource.org/advocacy/free-notfree.html). The licence that covers Microsoft's Internet Explorer is a good example of this. Other software is 'free' because it (and the source code for it) has been placed in the public domain, free from copyright restrictions. Some software is called 'free' even though the source code for it is covered by copyright and a licence agreement. The licence usually includes a disclaimer of reliability, and may contain additional restrictions. The restrictions on non-public-domain 'free' software can range form mild to severe. Some licences may prohibit (or require a fee for) commercial use or redistribution. Some licences may prohibit distributing modified versions. Some licences may contain 'copyleft' restrictions requiring that the source code must always be made available, and that derived products must be released under the exact same licence. Some licences may discriminate against individuals or groups and therefore not fall under the requirements of OSS. Thus, the term 'free' software can mean different things to different people and the terms OSS and 'free software' should not be used synonymously.

The best-known example of OSS is probably the Linux operating system. The Linux development was started in 1991 by Linus Torvalds, a 22 year-old Finnish university student. Linux has achieved 25% of the server operating system market, while the Apache web server (another OSS product) has gained 65% of the web server marketplace. Netscape's move to make the Mozilla browser OSS was a less successful initiative, an act of desperation in the face of overwhelming competition from Microsoft.

2.3.1 The Linux phenomenon

Linux is a direct competitor to the UNIX operating system, which has seen marketshare fall over the last few years. Linux is not a direct competitor for desktop PCs running Windows ME/Windows 98, but it is a competitor for servers that run Microsoft Windows NT/Windows 2000/Windows XP. In 1998, internal Microsoft memos were leaked in which Linux was recognized as a serious competitor and the OSS process a potential threat to Microsoft products. The memos were sent to Eric Raymond, who published them with annotations the day after Halloween – hence the 'Halloween Papers'. From an IS development perspective, we may well ask: ''how can a loose confederation of developers create a product that rivals Microsoft?".

Torvalds built a UNIX clone for the PC, based around a simple operating system core – the 'kernel'. Torvalds made the source code for Linux free to everyone and asked fellow developers to try it out, test it, suggest enhancements. The traditional view of system development for complex and

mission-critical applications such as operating systems would be that it could only be done by the likes of IBM or Microsoft and that it would need large teams of software engineers working closely together under strict project and quality management. It would also take years rather than months to complete.

By contrast, Linux is developed by many part-time programmers, working in universities, for commercial organizations, and as free-lancers. Furthermore, the programmers are based all around the world. Linux developers are not paid for their contributions (although in many cases their employers are subsidising the cost through paying for their time). Although the Linux software is free to use and the developers typically do not receive financial compensation for their efforts, there are still opportunities for revenue generation. For example, Red Hat makes money from packaging Linux on CD media and providing support services, such as training and consulting.

2.3.2 How OSS works

OSS development is firmly grounded in the practical reality of programming, rather than the management-oriented (and arguably fantasy) world of the traditional waterfall life-cycle. Eric Raymond identified some of the lessons of OSS in the landmark essay 'The Cathedral and the Bazaar' (Raymond, 2001). Good programmers work on projects that they have an interest in – they need to 'scratch a personal itch'. They also know when to reuse code rather than develop from a clean slate. Torvalds did not write Linux but studied the code in Mimix; Clark did not reuse Mosaic code from Illinois, but he hired the programmers who built the original Mosaic browser. There is no substitute for enthusiastic, committed, and capable people.

Raymond also reiterates Fred Brook's (1975) lesson: 'plan to throw one away; you will, anyhow'. Once you have built a software system you begin to understand the problem – usually well enough to know that it needs to be rewritten. A requirements specification by itself does not give this depth of understanding.

The organization of programmers in OSS networks means that codevelopers will rapidly improve code and be effective in debugging. Together with frequent and early releases, this means that software can be tested and debugged quickly: 'Given enough eyeballs, all bugs are shallow' (Raymond, 2001, p. 30). By contrast, user acceptance tests in the traditional life-cycle are, very often, one-off software releases with a small user subset testing the software under severe time constraints.

One way in which software complexity is managed is to have smart data structures and dumb code rather than the other way around. Brooks says 'Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't need your flowchart; it'll be  obvious'. We will be adopting a strongly data-driven approach to IS design in this book, based around class diagrams and database design.

Finally, Raymond recognizes the need to listen to and learn from users: 'The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better' (p. 40). Development should not stop at implementation and then hand over into a separate phase of maintenance. It is possible that the developer's conceptualization of the problem was just wrong – it is also possible that the software will be used in ways unforeseen when it was developed: 'Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected'.

Why OSS works

The fact that OSS works at all is surprising. Superficially, it appears that traditional management has been done away with and near-anarchy reigns. On closer inspection, OSS is a triumph of organization, although much of this is self-organization rather than hierarchical regulation. The core software that comprises Linux, the kernel, is guarded by a small number of gate-keepers who control what is included in a given release of Linux.

2.3.3 Implications of OSS for IS development

Whether OSS techniques will transfer to application development, such as a commercial banking system, remain to be seen. So far, Open Source development has tended to concentrate on software, such as operating systems, email servers, web servers, and content authoring systems. These are applications that relate to systems management and administration and used by IT professionals such as system administrators. There is less evidence that OSS is being used to develop business applications. An industry-specific information system such as a theatre booking system has a lower potential audience and will struggle to find the critical mass to support OSS. However, we expect to see further collaboration along the lines of the OSS model as commercial organizations, for example financial institutions, participate in joint systems development exercises. However, there are likely to be significant cultural barriers as traditional developers and commercial organizations try to adjust to the fluidity of OSS development. There may also be commercial barriers to the transfer of the gift economy into mainstream business.

Summary

• The Internet and Internet-based information systems have changed the form and content of information systems, the context in which they are developed, and the way in which they are developed.

• Although traditional software engineering skills are needed, for example, database design, program design, network design and security, these need to be reconsidered in the light of the Internet environment.

• The Internet has enabled a new form of software development organization – Open Source (OSS). Although this is more suitable for systems software we expect the lessons to be adopted and transformed by application developers in commercial environments.

Exercises

1. Discuss the future of the Internet – do you think the Internet will develop as rapidly as many forecast?

2. Discuss the potential differences between developing software by conventional means and using open source software.

Further reading

Brooks, F., (1975). The Mythical Man-Month.Addison Wesley.

Hobbes, (2002). Hobbes' Internet Timeline and Internet 101, PBS online.

Forrester Research, (2001). Forrester Internet Research Survey 2000.

Raymond, E. S., (2001). The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O'Reilly and Associates, CA.

Stallings, W., (2001). Business Data Communications. Prentice Hall, Upper Saddle River, NJ.

Comments

Popular posts from this blog

The Conversion Cycle:The Traditional Manufacturing Environment

The Revenue Cycle:Manual Systems

HIPO (hierarchy plus input-process-output)