Essay Instructions: The company (AandB Pots and Pans Ltd) wants a report that explores issues and makes justified recommendations using appropriate supporting references. This is not related to the scripts to be written but to such areas as:
• the advantages and disadvantages of using proprietary or Open Source software;
• the conditions and terms of Open Source software licences versus proprietary software licences;
• how a small team of three novice programmers can work together and with a
larger community to implement a solution. The company will want to use some of its current staff to implement the application: three novice programmers with very little programming experience. A major problem for them is that they have never worked on a large project requiring a team effort; they are much more used to working in isolation.
The company wants to see a clear selection of the best choice for its website. All the factors that need to be considered in making such a choice need to be laid out for the company, together with their level of importance. The proposed solution and another rejected option then need to be explained in terms of the factors used to select the solution.
Report structure
Your report should have the following sections:
Project overview
In this brief section, you should describe a piece of Open Source software that you have chosen from the company's wish list:
• lighttpd (http://www.lighttpd.net/) web server;
• openSUSE Linux (http://www.opensuse.org/) operating system;
• Git (http://git-scm.com/) distributed version control system;
• PrestaShop (http://www.prestashop.com/) e-commerce software;
• CouchDB (http://couchdb.apache.org/) document-oriented database.
You should give the name of the software you have chosen, briefly outline its purpose, and provide some background information on its history.
This section, probably no more than a paragraph or two, should serve as a base for the discussion in the following sections of the report.
Community involvement analysis
In this section, you should consider two methods by which your chosen Open Source software project promotes or develops interest and community involvement from other participants. At least one of the methods must deal with how code is contributed to the software project, e.g. with a traditional version control system, a distributed version control system or some other mechanism.
This should not be just a description of what the software project currently does. You are making a supported argument, so a critical analysis of how the method contributes to the success (or lack thereof) of the software project is required. You may choose to examine a successful existing method mixed with a currently unsuccessful method. It is even possible to suggest a completely new method. Regardless, you should consider the following questions for each:
• What is the method?
• How does this method promote community and developer involvement (or not)?
• How does this method contribute to the success or lack of success of this software
project? This section is bundled together with the project overview in the marking criteria at the end of this booklet, but it should comprise roughly two-thirds of the section’s content.
Project fitness analysis
When contrasting software, you need to consider various factors. In this section, you will need to:
• Compare and contrast your chosen Open Source software against an equivalent product, ensuring that you consider and comment on an appropriate range of the factors relevant in selecting a software solution.
• Explicitly rank or prioritise three factors as more or less significant for AandB Pots and Pans.
• Discuss why these factors are important to AandB Pots and Pans. No conclusion need be made here. That will be done in a later section. This is purely an analysis of how various factors are applicable to the chosen software products and a comparison. You can contrast against another Open Source product or a proprietary
product, so long as you are not comparing dissimilar software. Contrasting a web server versus a word processor would be incorrect, for example.
You can assume that the company will be able to acquire suitable hardware or software for any solution.
Licence analysis
Given your knowledge of software licensing and methods of distributing software, analyse your Open Source software’s existing licence. The company will need to abide by the terms of the existing licence, but they may wish to make modifications to the software or even sell it. In this section, you will need to make a supported argument that the licence is appropriate for the software currently and will allow the company to modify and use the software in a variety of scenarios. Your analysis should consider the following questions:
• What licence is used for the software?
• What type of Open Source licence is this? Public domain? Copyleft? Something else? What does it mean to be or not be copyleft?
• If the company wants to use the software in a commercial venture, i.e. on their website to sell pots and pans, how do the terms of the licence support that?
• If the company wants to rename and distribute the software under a different licence, are they able to do so? Why or why not?
• If the company wants to embed the software in a product they then sell, will they be able to do this under the current licence? Why? If not, is another Open Source or commercial licence a better choice?
Recommendation
This section ties the whole report together. In previous sections you have examined the fitness of your chosen Open Source software project, looked at community involvement, and analysed its licence. In this section you need to make a supported argument answering the question: ‘Is the chosen Open Source software appropriate for AandB Pots and Pans?’ Perhaps the company should be considering a different Open Source product or even a proprietary product. Why or why not? Make a recommendation for a software solution and support it, drawing on the analyses performed in earlier sections and additional evidence as required.
Your discussion must address the following questions:
• What is the best choice of software for the company? Is it your chosen Open Source software, different Open Source software, or a proprietary product? Be specific.
• Will the company’s novice programmers be able to contribute to an Open Source software project? Why or why not?
• Why is your recommendation the best choice for the company?
• What is the most important thing the company should know about Open Source that you learned while doing this module?
Reporting tips
Focus on the general issues and tools covered in the module such as licensing, total cost of ownership, maintenance, CVS, etc. Do not review products at a deeply technical level. The module doesn’t investigate individual tools and products in detail, and if you try to do this you will use up too much of your word count. For the same reason, don’t exhaustively review all the available products.