|Author : DAOUDI Samir | Context : MSc Software Engineering – Software Engineering
A software development life cycle or the software development process is a set of tasks performed in a specific order and sometime in cyclic order to design, develop and implement a software-solution. Known as a software process, all the coherent and related tasks that are performed in a specific order to produce the desired software (Sommerville, 2011).
A process can have different significations for different people; hence it is important to define exactly what does it mean when using it in the software engineering field?
“A process can be defined as the logical organization of people, materials, energy, equipment and procedures into work activities designed to produce a specified end result”.
Figure 1:Definition of process.
Another important notion that should be clarified in this context is the Software Process Management, which is about successfully managing the different tasks related to designing, developing & supporting software product (Florac & Carleton, 1999). The software process management focus in controlling and managing the most different factors that play an important role in the software life-cycle; We say a phenomenon is controllable when through the use of past experience, we can predict how the phenomenon is expected to vary in the future. In the software process management, four important responsibilities form the center of the method, which are:
– Define the process.
– Measure the process.
– Control the process.
– Improve the process.
In any software-project, it is important to follow the main following steps, which consist in:
– Analyzing the software specifications and needs.
– Designing and developing the software.
– Deploying the solution.
– Supporting and maintaining the software (Robertson, 2012).
All these are important tasks in the software life cycle, missing or under-estimating one of them might be source of many issues and sometimes ends-up with the project failure. I am working since 2010 in a big Oil and Gas company that has more than 4000 employees. Different departments in different locations need many software solutions and the ITC team is a shared one and covers the whole operations. One of the major lacks that I’ve notice so far, which quickly became very difficult to sort-out is the diversity and lack of organization in software projects documentation, this was the direct consequence of changes in staff members and rapid changes in software editions, versions and architectures also. One the software was successfully deployed, tested and improved; we did not seriously care about the maintenance until serious issues occur and at that time, documentation was not updated or the people who worked on that project had left the company without appropriate hand-over …etc.
I personally think that we focus mainly in the initial phases of the software life-cycle (which consist in the analyze and development). Which is completely wrong, the software should be granted the same level of priority at different stages of the life cycle and a good documentation, modification…etc. can seriously facilitate the maintenance and support of any software.
Ian Sommerville (2011). Software Engineering, 9th edition, and Pearson edition, ISBN: 978-0-13-703515-1.
William A. Florac, Anita D. Carleton (1999). Measuring the Software Process: Statistical Process Control for Software Process Improvement. ISBN: 0-201-60444-2.
Suzanne Robertson, James Robertson (2012). Mastering the Requirements Process: Getting Requirements Right. ISBN:978-0-321-815743.