How Important Are System Analysis and Especially Requirement Analysis to the Success of Software Development Essay
This essay will discuss how important system analysis and especially requirement analysis are to the success of software development. To begin, there will be a brief definition of system and requirement analysis and also a brief description of the software development and how it can be described as being successful. It will then be followed by the benefits and drawbacks of system and requirement analysis to the software development process.
And then a conclusion will be drawn to see how important system and requirement analysis are to the success of software development. Software systems analysis is a field in which analysts continually learn new techniques and approaches to properly capture, maintain, understand, and develop more efficient and effective software systems (Reema Al-Kamha n. d. ). From this definition the main focus is on how the system analysis develops more efficient and effective software systems. The New York State Project Management Guidebook, 2001) states that the purpose of System Requirements Analysis is to obtain a thorough and detailed understanding of the business need as defined in Project Origination and captured in the Business Case, and to break it down into discrete requirements, which are then clearly defined, reviewed and agreed upon with the Customer Decision-Makers.
Software development is a structured set of activities required to develop a software system (Walters, 2011). An issue we face today is how to judge software as being successful. Most software users say that successful software is one that does what it is required to do. For the software to meet the user’s requirements, the system and requirement analysis most be detailed i. e. getting enough feedback from the customers in order to know what exactly they want.
The following paragraphs will evaluate the benefits and drawbacks to the software development process of having a system and requirement analysis. There are several benefits to the software development process of having a good system analysis. Firstly reducing costs, according to (Guy Beauchamp, 2008) most errors occur during analysis and are the most expensive to fix after the analysis phase. Around 75% of total project re-work costs are consumed on fixing analysis errors.
And also Up to 80% of budgets are consumed fixing self-inflicted problems (Dynamic Markets Limited 2007 Study). These facts simply point out that it is easier and cheaper to get it right the first time and this is where the system analysis comes in. Having the system analysis means that the analyst will be able to get the accurate requirements from the customer and it is at this point that the analyst will point out if the requirements are unrealistic or if there is any other problem.
The system analyst’s interaction with the customer is important because if the software does not do what the customer wants it to do then it cannot be classified as being a success and more costs will be incurred in order to make things right. Although, having a system analyst will also increase the costs and might be time consuming but in the long run it will save the business a lot of money if things are done properly at first. Also the system analysis brings organisation to the project i. e. allows the project to be planned and managed effectively.
Although it is the project manager who is directly responsible for the planning, having the system analysis which contains what the project is, who the project is for, deadlines and budgets, user feedback and how the project is going to be done gives a layout for the analyst to follow and this allows the project to be planned out more effectively. Poor planning is the first thing the clients blame if there are problems in the project (Tyson Gill, 2008, Project planning for successful development).
And surveys show that 39% of project failures during the lifecycle of the project are due to a lack of planning (The bull survey, 1998). So having the system analysis at this stage can help increase the chances of having a successful software development process, because it allows effective planning which has been proven to be a key success factor. On the contrary, having a system analysis might lead to over analyzing the project which might prove costly and time consuming.
Asides from having a system analysis, a requirement analysis can also prove to be important to the success of software development. Requirement analysis can reduce costs and lead to an increase in the quality of the projects. According to (Hooks and Farry, 2001) Getting requirements right, early in your project, can save you one-third or more of your overall project budget. Research shows that the 57% of project failures are as a result of bad communication between relevant parties (The Bull survey 1998).
This is where the requirement analysis comes in, the aim of the requirement analysis is to make the objective of the project clear and so this means that the analyst has to get accurate and complete feedback from the stakeholder in order to know the exact requirements. After doing this, the requirement analysis should show what the problem is, how the project is going to solve the problem, how the project is going to benefit the business and are the requirements realistic and achievable.
So due to better requirement gathering and communication between all parties there is an improved chance of having better quality projects that meet the users requirements. Although it has been argued that the requirement analysis also adds to the cost, because of the information gathering stage and the interview stages but then again it is better to get it right at first. Apart from reducing costs, the requirement analysis helps set realistic time targets and budget.
Research shows that the main IT project failure criteria considered were time overruns and cost overruns (The Chaos Report, 1995). And according to the KPMG Canada Survey (1997) 60% of failed projects were planned to take less than one year to complete. Having a requirement analysis can help prevent this from happening, this is because the requirement analyst can negotiate with the customer what the most realistic time estimates are and budgets and can immediately get feedback from them to know if they agree or disagree and work together to set realistic targets.
In conclusion, we can clearly see how important system analysis and especially requirement analysis are to the success of software development. The main reasons being that they help provide organisation and planning and this helps reduce costs and the chances of the project not being successful and as a famous quote goes “Failing to plan is planning to fail”. Whilst this is true, the system and requirement analysis stages have been proven to be time consuming and costly but it is theses stages that have a major influence on the success of software development.