How is software created? If software is the set of instructions that tells the hardware what to do, how are these instructions written? If a computer reads everything as ones and zeroes, do we have to learn how to write software that way?
Software programming was originally an individual process, with each programmer working on an entire program, or several programmers each working on a portion of a larger program. However, newer methods of software development include a more collaborative approach, with teams of programmers working on code together. We will cover information-systems development more fully in chapter 10.
When the personal computer was first released, it did not serve any practical need. Early computers were difficult to program and required great attention to detail. However, many personal-computer enthusiasts immediately banded together to build applications and solve problems. These computer enthusiasts were happy to share any programs they built and solutions to problems they found; this collaboration enabled them to more quickly innovate and fix problems.
As software began to become a business, however, this idea of sharing everything fell out of favor, at least with some. When a software program takes hundreds of man-hours to develop, it is understandable that the programmers do not want to just give it away. This led to a new business model of restrictive software licensing, which required payment for software, a model that is still dominant today. This model is sometimes referred to as closed source
, as the source code is not made available to others.
There are many, however, who feel that software should not be restricted. Just as with those early hobbyists in the 1970s, they feel that innovation and progress can be made much more rapidly if we share what we learn. In the 1990s, with Internet access connecting more and more people together, the open-source movement gained steam.
Open-source software is software that makes the source code available for anyone to copy and use. For most of us, having access to the source code of a program does us little good, as we are not programmers and won’t be able to do much with it. The good news is that open-source software is also available in a compiled format that we can simply download and install. The open-source movement has led to the development of some of the most-used software in the world, including the Firefox browser, the Linux operating system, and the Apache web server. Many also think open-source software is superior to closed-source software. Because the source code is freely available, many programmers have contributed to open-source software projects, adding features and fixing bugs.
Many businesses are wary of open-source software precisely because the code is available for anyone to see. They feel that this increases the risk of an attack. Others counter that this openness actually decreases the risk because the code is exposed to thousands of programmers who can incorporate code changes to quickly patch vulnerabilities.
There are many arguments on both sides of the aisle for the benefits of the two models. Some benefits of the open-source model are:
- The software is available for free.
- The software source-code is available; it can be examined and reviewed before it is installed.
- The large community of programmers who work on open-source projects leads to quick bug-fixing and feature additions.
Some benefits of the closed-source model are:
- By providing financial incentive for software development, some of the brightest minds have chosen software development as a career.
- Technical support from the company that developed the software.
Today there are thousands of open-source software applications available for download. For example, as we discussed previously in this chapter, you can get the productivity suite from Open Office. One good place to search for open-source software is sourceforge.net
, where thousands of software applications are available for free download.
Software gives the instructions that tell the hardware what to do. There are two basic categories of software: operating systems and applications. Operating systems provide access to the computer hardware and make system resources available. Application software is designed to meet a specific goal. Productivity software is a subset of application software that provides basic business functionality to a personal computer: word processing, spreadsheets, and presentations. An ERP system is a software application with a centralized database that is implemented across the entire organization. Cloud computing is a method of software delivery that runs on any computer that has a web browser and access to the Internet. Software is developed through a process called programming, in which a programmer uses a programming language to put together the logic needed to create the program. While most software is developed using a closed-source model, the open-source movement is gaining more support today.
- Come up with your own definition of software. Explain the key terms in your definition.
- What are the functions of the operating system?
- Which of the following are operating systems and which are applications: Microsoft Excel, Google Chrome, iTunes, Windows, Android, Angry Birds.
- What is your favorite software application? What tasks does it help you accomplish?
- What is a “killer” app? What was the killer app for the PC?
- How would you categorize the software that runs on mobile devices? Break down these apps into at least three basic categories and give an example of each.
- Explain what an ERP system does.
- What is open-source software? How does it differ from closed-source software? Give an example of each.
- What does a software license grant?
- How did the Y2K (year 2000) problem affect the sales of ERP systems?
- Go online and find a case study about the implementation of an ERP system. Was it successful? How long did it take? Does the case study tell you how much money the organization spent?
- What ERP system does your university or place of employment use? Find out which one they use and see how it compares to other ERP systems.
- If you were running a small business with limited funds for information technology, would you consider using cloud computing? Find some web-based resources that support your decision.
- Download and install Open Office. Use it to create a document or spreadsheet. How does it compare to Microsoft Office? Does the fact that you got it for free make it feel less valuable?
- Go to sourceforge.net and review their most downloaded software applications. Report back on the variety of applications you find. Then pick one that interests you and report back on what it does, the kind of technical support offered, and the user reviews.
- Review this article on the security risks of open-source software. Write a short analysis giving your opinion on the different risks discussed.
- What are three examples of programming languages? What makes each of these languages useful to programmers?
Licenses and Attributions