System Development Lifecycle
System Development Lifecycle (SDLC) or traditional development methodologies is defined as a phased approach to creating and maintaining a system used in information technology. It can be applied to networks and online services, but often used in software development. In the lecture sessions it was stated that a typical SDLC framework used for developing a software application might include the following seven steps, identifying the problem or opportunity , conducting and investigating the problem or opportunity , creation of a conceptual design ,development , testing, implementation and maintenance . Each step must be completed before moving onto the next. The steps are referred to as a cycle since it is repeated each time a new major version of the software is released. There are also different models of SDLC known as the waterfall model, iterative model, spiral model, V-shaped model and agile model (existek,2018).
The Agile technique is defined as a particular approach to project management that is utilized in software development. It is a proposed solution to the length of time it takes to use the SDLC. Its major focus is on speed and not on perfection, so while it may be faster ,there is a chance that teams may overlook critical issues eg.security, scalability in a rush to get something up and running. So, organizations feel comfortable using SDLC for critical systems and Agile method for non core systems.This technique assists small teams of users in responding to the unpredictability of constructing software. It uses incremental, iterative work sequences that are commonly known as sprints. Sprints are periods of time allocated for a particular phase of a project.
However there are advantages as well as disadvantages in using each method.
Advantages of agile techniques are that the deployment of software is quicker so customers can get value sooner, there is reduction in wastage of resources since work is done on only up-to-date tasks, it results in better adaption to changes and response as well as faster turnaround times. In addition, the ability to detect and fix issues and defects are faster ,less time is spent on bureaucracy and meaningless work, there is a big community of agile practitioners with whom knowledge can be shared with and immediate feedback can be acquired (which also improves team morale).Developers can improve their coding skills based on question and answer feedback, as well there is no need to worry about premature optimization and lastly experiments can be conducted and ideas can be tested because costs are low.
Furthermore, there are also disadvantages of the agile technique since documentation tends to get sidetracked, making it difficult for new members to get up to speed, it is difficult to measure progress since progression occurs across several cycles. Agile technique demands more time and energy from its users since developers and customers must constantly interact with each other, projects can become ever-lasting because there’s no clear end and clients that work with a specified budget or schedule can’t know how much the project will actually cost, which makes for a very complicated sales cycle (until iteration ends is not something clients like to hear). Additionally, features that are too big to fit into one or even several cycles are avoided because they don’t fit in nicely into the philosophy and a long term vision for the product and actively work on communicating it is needed.
On the other hand, the advantages of SDLC are that a formal review is created at the end of each stage allowing maximum management control. This approach creates considerable system documentation and this documentation ensures that system requirements can be traced back to stated business requirements, however it produces many intermediate products that can be reviewed to see whether they meet the user’s needs and conform to standards. These can be further worked on if they require tweaks to be made, ensuring that the business gets exactly what it needs.
Then there are the disadvantages and what may be seen as a major problem for some, is that end-users do not see the solution until the system is almost complete. Users also get a system that meets the needs as understood by the developers; this may not be what was really needed for them. There may be a loss in translation and documentation is expensive and time-consuming to create, as well as it is difficult to keep current.Users cannot easily review intermediate products and evaluate whether a particular product meets their business requirements.Another disadvantage is it encourages stiff implementation instead of creativity.There are requirements that must be met and that is all that developers complete.
In the end both techniques have its advantages and disadvantages. However for an insurance company that needs to manage the development of several mission critical systems, I would use systems development life cycle SDLC. Even though agile technique may be less costly, there is the fact that it may overlook critical issues whereas SDLC would be more costly but will look at the critical issues. Using the step by step approach, SDLC will help solve the mission critical issues of the insurance company. This mostly relies on the point of getting the requirements done rather than allowing room for creativity.