Off-the-shelf VS BespokeWhen a company wants to develop a new Information Technology project, there are two main choices for how they should proceed:
Off-the-Shelf Software - Widely available from stores (physical or online), could be very general software such as a suite like Adobe Creative Suite (Dreamweaver, Photoshop etc...), or it could be a very specific piece of software for a very niche purpose such as account software, or a School Information System.
Bespoke/Custom Software - Created specifically for a single company. Usually the company hires a software development team if they don't have one in-house. The developers analyse the current situation/system so that may design a solution that perfectly fits the organisation's needs. A good example of bespoke software would be a system to help launch a spaceship!
Development ToolsTo create new software, developers must use a range of programs. The source code is entered in a text based editor, a compiler translates that into machine code which is readable by a computer to execute the code instructions, and debugging tools help fix the errors in the code (Computer Scientists will be familiar with this process). These tools are commonly bundled together in an Integrated Development Environment, or IDE. Tools such as XCode for developing iOS applications also include a graphical user interface builder to generate the look and feel of the software.
The Systems Development Life Cycle is about the stages involved in creating an IT system. It starts from the moment an idea is suggested all the way through to delivering a working system and maintaining that system for the client. Following the stages of the SDLC is very important as it makes sure that the correct most appropriate system is developed in terms of features, costs, and time. Following the SDLC also helps to prevent project failure (System doesn't fulfil it's purpose, or ends up way over budget and no longer remains feasible to run).
There are several interpretations of the Systems Development Life Cycle, using different names for the stages or rearranging/merging some of the stages.
The key stages that we will discuss here are: Analysis, Design, Implementation, Testing, Installation, and Maintenance.
AnalysisThis is an investigation of the current system, either an existing computer based system or a manual one (or the situation surrounding a new system that has no predecessor at all). At this stage, the needs of the client along with the possibility of creating a solution for that client are fully assessed. At the end of the Analysis stage, it may be determined to go ahead and create a new system or to not bother because of high costs.
DesignThis is where he solution is planned out to meet the needs of the client. All of those client needs should have been identified during the Analysis stage!
ImplementationThe implementation or development stage is the creation of the system, closely following the designs produced in the previous stage.
TestingThis stage of the life cycle make sure that the system created functions as it is supposed to. The Analysis stage has the detailed requirements on which testing can be based.
InstallationThe installation or delivery of the software along with any necessary hardware usually at the client's business location. This stage may also involve the changeover of removing any old system and transferring data into the new system. Training will also need to take place here to help users understand how to use the new system.
MaintenanceThis is the updates and changes made to a system to rectify bugs, add or remove features, or boost performance. For larger systems that are to be used over many years, the maintenance costs form a large portion of the project budget.
PRINCE2PRojects IN Controlled Environments 2 - This project management methodology starts by turning an evaluation of benefits and challenges into a business case.
PRINCE2 separates the life cycle into different stages such as Starting Up, Initiating, Delivering and Final Delivery. Each of those stages is then broken down further into Directing, Managing and Delivering. This describes exactly what type of work is being conducted. The Directing Level is for top management, the Managing Level is for project managers who steer the project and move between different stages (Managing Stage Boundaries), and at the Delivery Level, the project is created by developers/programmers.
One main feature of PRINCE2 is the Project Initiation Document which is a summary/results of the analysis tasks. An example of the Project Initiation Document is shown below!