The system development life cycle is essential and is crucial in software development. The purpose of this paper is to describe the system development life cycle and highlight its use by a project manager and elaborate on some of the advantages and disadvantages of SDLC models and their significance in software development.
The System Development Life Cycle (SDLC)
Software Development Life cycle (SDLC) is defined as the process through which computer software is designed, developed, and tested to ensure high quality and functional products. According to Bhatnagar and Rather (2015), software development lifecycle entails the process of establishing a framework through which the various tasks and activities necessary to develop software from the planning stage to the testing stage are done using appropriate methods and techniques established under software engineering. The objective of SDLC is to ensure that high-quality software is developed to meet the needs of customers within a set time frame and at a given estimated cost. It is, therefore, essential to carry out project management in software development life cycle to ensure the software development process results in a product that meets international standards within the given time and cost. Khan and Khan (2013) propose that offshore contracting for software development is the best option where firms in countries that have cheap labor such as China, Russia, and India among others are contracted since the overall cost is lower than local developers within the firm or from private firms in Europe and America. The process involves focusing on the expected quality, design, validity, and evolution that meets current computing challenges with reference to performance, security, and technological advancement demanded by a changing environment (Bhatnagar & Rather, 2015). The success of information technology projects is measured by their timeliness, scope, and completion within the estimated budget. It is, therefore, apparent that project management in SDLC is crucial to ensure that information technology projects are successful. Korrapati and Kocherla (2013) argue that the success of the project should be measured at each and every stage of the SDLC to ensure that the relevant factors for every step are taken into consideration with regard to quality, time frame and cost of the project. The role of the project manager is crucial in ensuring project success. The overall quality should be measured with the level of customer satisfaction and the functionality of the software.
SDLC Process
The SDLC process starts with the planning stage where the needs and requirements of the user are determined as well as what resources will be used from previously conducted surveys and consultations with customers. This is followed by the definition of these requirements to clarify the expected outcomes of the software development process (Bhatnagar & Rather, 2015). The software is then designed as per the established specifications of the product architecture for the desired quality and function. This, in turn, is followed by the actual building of the software within the set time frame and estimated cost with the appropriate programming and coding established at the designing stage (Bhatnagar & Rather, 2015). The testing of the software is the next stage where, after approval, the software is taken to the deployment stage for use by the customers. A project manager must understand the process to be effective in delivering results.
Significance of the SDLC Process to a Project Manager
A project manager supervising an SDLC must know what is being done at every stage of the software development life cycle in order to make appropriate decisions that will be geared towards the success of the project. As discussed by Bhatnagar and Rather (2015), the project manager must understand the problem, decide on the plan, facilitate coding, participate in the testing and be able to support the maintenance of the product after it is finished. A project manager should be aware of the models that guide the process of software development. This helps the manager to determine the best model to use depending on the requirement of the task at hand in relation to customer specifications, time available and the cost of software development.
Advantages and Disadvantages of SDLC Models
Waterfall Model
The waterfall model is a system development life cycle model that consists of requirement analysis, design, implementation, testing, and maintenance stages where each stage cascades to the next one in an orderly manner (Dubey & Kumar, 2013). This model is easy to understand where definitions are done before designing and is most suitable for simple projects with strict deadlines. It ensures early detection of errors since all stages are clearly defined and facilitates documentation of all activities in the process which is useful during code revision. It is also possible to control the deadline of the project. The method also requires fewer amounts of resources when compared to others.
Unfortunately, problems are not discovered until the testing stage, and it is difficult to integrate with risk management or make changes (Bhatnagar & Rather, 2015). Estimation of time is also a challenge due to inflexibility of the stages that have to be completed one at a time.
Iterative Model
The next model is the iterative model that is a modification of the waterfall model where the SDLC is subdivided into small parts that allow interaction with the customer to get feedback as several teams develop the software. This increases the flexibility to modify the software to suit the needs of the customer and takes less time to make and implement. According to Bhatnagar and Rather (2015), the main challenge of this model is managerial difficulties when dealing with different teams.
Prototype Model
The prototype model requires quick designing of the software as soon as definitions are done and limit the time spent in the other stages. This results in cost reduction, better visibility, and immediate feedback from clients. The method is suitable for those customers with little IT skills as they cannot easily define their needs (Bhatnagar & Rather, 2015). The prototype is also useful because it can be used to try out a software prototype with the aim of implementing a project based on the prototype if successful.
Still, the model lacks flexibility, and the system is used before its fully finished making it unsuitable for large systems. The method is slow, and sometimes the user fails to recognize the prototype is meant for testing only and therefore judge the quality based on the prototype and not the original software.
V-Shaped model
The V-Shaped model is simple and easy to use, and testing is decided before coding begins, where each phase has its objectives to be delivered as a part of the whole. This model is best for small projects, and it is more successful due to early definitions of testing and designing of the project before building the software (Dubey & Kumar, 2013). A significant disadvantage is that the model is not flexible.
Spiral model
It is a very flexible model that is suitable for big projects because it easy to monitor progress. It ensures that risk management is integrated into the software development process and, therefore, ideal for high-risk projects (Bhatnagar & Rather, 2015). It is also easy to customize products to suit the needs of the customer. Cost estimation is also easy since the project is carried out in small portions. Some of the disadvantages are that it takes a complicated approach and uses many rules and protocols making it unsuitable for low-risk projects and minor projects.
Conclusion
This knowledge is crucial as it helps a project manager to make informed choices concerning the model to use and be able to meet the requirements of the project at hand. The project manager must be conversant with all the models used in SDLC to ensure that the needs of the customers are met. The internet is an excellent resource to get information and in learning more about SDLC and gives insight into new developments in software development.
References
Bhatnagar, V. & Rather, A., M. (2015). A Comparative Study of Software Development Life Cycle Models, International Journal of Application or Innovation in Engineering & Management (IJAIEM), retrieved from, https://www.researchgate.net/publication/305863548_A_comprative_study_of_sdlc_model
Dubey, P. & Kumar, S. (2013). Software Development Life Cycle (SDLC) Analytical Comparison and Survey on Traditional and Agile Methodology, National Monthly Refereed Journal of Research in Science & Technology, retrieved from, https://www.researchgate.net/publication/319716548_SOFTWARE_DEVELOPMENT_LIFE_CYCLE_SDLC_ANALYTICAL_COMPARISON_AND_SURVEY_ON_TRADITIONAL_AND_AGILE_METHODOLOGY
Khan, W., A. & Khan. U., S. (2013). Critical Success Factors for Offshore Software Outsourcing Contract Management from Vendors’ Perspective: an Exploratory Study using a Systematic Literature Review, Special Issue on Empirical Studies in Software Engineering: The Institution of Engineering and Technology, retrieved from, https://romisatriawahono.net/lecture/rm/survey/software%20engineering/Software%20Outsourcing/Khan%20-%20Critical%20success%20factors%20for%20offshore%20software%20Outsourcing%20-2013.pdf
Korrapati, R. B., & Kocherla, S. (2013). Measuring Software Project Success in Various Stages of Software Development Life Cycle (SDLC) Stages. Summer Internet Proceedings, 15, 51–54. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&db=bth&AN=112686047&site=eds-live
Comments 5