|Author : DAOUDI Samir | Context : MSc Software Engineering – Software Engineering|
The importance of software is significant and our dependence on the different solutions increases day after day. The complexity of problems and the different improvements seen in the computing field in general makes thing worst if we consider the software complexity and the obligations of software engineers.
For this reason, the software engineering field has gained a significant importance; a lot of professionals and experts defined rules, methods, approaches and best practices that should be followed when conducting software projects.
Some of the important points that have to be taken into consideration are:
– Software & System requirements’ analyze
– Estimating the costs/time of the project.
– Feasibility study …etc.
Other important tasks should also be included in the project scoop. However, one important task in particular should be analyzed and assigned a high priority when defining the project steps is the analyze and identification of risks (R. Kehoe & A. Jarvis,1996).
What is the identification of risks?
This important step in the software project consists in trying to identify the different events that might in any form alter the correct and estimated project steps.
The possible risks have been classified in three main sets:
Project Risks related to resources and are mainly du to unrealistic schedule pressures, cost overruns…etc.
Product Risks these risks concerns the performances and quality.
Business Risks financial & management risks or problems. (Sommerville, 2011).
During the development of a software project different risks might occur
1. Miss estimation of the project workload
During the 1st step of the project, the important goal is to understand the software requirements; this task involves different sub routines as:
– Identifying the software needs.
– Identifying the system needs and limitations.
– Determining the interaction and impact of the software on other systems.
These elements can give the software engineers and project managers an overview of the workload (Time, resources, engineers, costs …etc.). Sometimes it can be difficult to correctly estimate the workload of the project due to:
– Unclear understanding of the software requirement.
– The quick analyze of system and software
– Issues in identifying appropriate key-users.
– New and unusual project type…etc.
The miss estimation of project workload is generally the 1st reason for troubles and issues in a software project; As we might have missed some business or technical needs, correcting the situation can generate additional fees, costs and extend time and might also request additional resources. In certain situation it can also end-up with the failure of the whole project.
In order to avoid this risk some important steps should be followed:
– Identification of the important stakeholders.
– Spending enough time with users to understand their business and what are their expectations from the software.
– Brainstorming the solution and reviewing it with users.
– Including different actors (software architect, project manager, software developer, end user, managers…etc.) in the estimation of workload phase.
2. Incorrect interpretation of the user’s requirements
Another possible risk related to the user’s requirements. Even if the requirements were clearly described by the users and the different needs perfectly outlined, other persons in the software project life cycle can wrongly interpret them.
As the requirement analyze phase is accomplished by a specific team, which should than be reviewed and written in a technical way that can be easily understood by the developers (who have no idea about the business in general). During this phase, the interpretation of the documents can be wrong and it will end up with a wrong development modules or functionalities.
In order to avoid the incorrect interpretation of the user’s requirements, some steps should be followed:
– Including different staff representative in the different stages of the software development.
– Having regular meeting to review what has been performed so far.
– Demonstrate and discuss with the users in regular basis the different modules of the software.
3. Unexpected event
Other undefined and unexpected situations might occur in the software development phases, and the risks represented by these events cannot be easily identified.
Examples of such events can be:
– Project manager leaving the company.
– Some programmers leaving without any feedback, comments about their source code.
– Natural catastrophes and the lose of data centers, applications and systems…etc.
These events are hardly identifiable and might cause a lot of troubles for the whole project. Avoiding such events can partially been accomplished by:
– Preparing additional resources (people and material).
– Continuously saving the work done in a secure place.
– Having contracts with the different employees to avoid their leave at unexpected moments…etc.
In conclusion, the risk identification and mitigation is important in a software project. A good analyze of the possible risks, their causes and how to avoid them can define the success of the project.
Ian Sommerville (2011). Software Engineering, 9th edition, Pearson edition, ISBN: 978-0-13-703515-1.
Raymond Kehoe & Alka Jarvis (1996) .Iso 9000-3: A Tool for Software Product and Process Improvement. ISBN:0-387-94568-7