SDLC methods and their advantages and disadvantages

Sisitha jayawardhane
9 min readNov 19, 2020

--

1. Agile methodology

Your project requires you to be flexible and be able to make changes in order to be successful in a turbulent and unforeseen environment. That’s where Agile comes into the picture. Agile is one of the most widely used software development methodologies. It is an umbrella term that encompasses a range of different methods and practices. These methods are based on the values as well as principles that are expressed in the Agile manifesto. Solutions are expected to evolve as cross-functional teams make use of various required practices for the need of the project during software development life cycle. That leads to prompt as well as flexible response to change in the process of software development.

Advantages of Agile Software Development Methodology

  • Changes — Agile understands and acknowledges that things will change. However, such changes don’t really disrupt a project. They are in fact turned into a positive not only for the project’s outcome but also for the team involved.
  • Creative Options — Agile Software development allows improvements and modifications during the development process and this allows developers to be creative with their design codes.
  • Costing and Budgets — The Agile software development process requires a project cost to be estimated at the start of the iteration. This helps the team to understand where to expend resources correctly during the development process.
  • High Quality Output — Agile Software Development processes deliver a superior quality product as the processes are divided into smaller parts which in turn make it easier to test and to maintain. This reduces errors and improves quality of the end product.
  • Clear Communication — Regular and transparent interaction between the client, the developers and other members of the design process helps to ensure that the project being developed has focus as well as clarity.

Disadvantages of Agile Software Development Methodology

  • There could be issues regarding the clarity of the project if the client is not very sure of how he wants the end result to flow. This in turn will adversely affect everything, from the design process to the budget of the project.
  • Agile Software technology focuses more on functional software and does not put any emphasis on paperwork. A lack of basic documentation could be a drawback for the design process especially for references.
  • Many traditionalists criticise Agile Software Technology for its non restrictive method of working and claim that it lacks the support of a solid structure.

2. Lean methodology

This is a very focused kind of Agile software development life cycle model as importance is placed on software that is easily changeable. The idea is to create software in as less as 1/3rd of the time as the others, with limited workflow and within a small budget. The object of lean programming is to optimize efficiency and reduce any kind of waste in resources or in time while developing a software. This is achieved by eliminating all that which adds no value to the development process. This could include meetings, documentation etc and emphasises on imbibing quality in the process.

Advantages of Lean Development Methodology

  • Eliminating unnecessary processes improves the overall efficiency of the software development and helps to reduce errors which in turn speeds up the process.
  • The Lean Methodology believes in empowering the team working on the process, this not only creates a better motivated work environment but also helps to hone the decision making ability of the team members.
  • The Advantages to completing projects in less time means more time to start on future projects.
  • Taking less time to complete projects is also beneficial to meeting deadlines set by the clients.
  • The lean method also reduces the need to keep going back to correct errors which wastes time and increases costs.

Disadvantages of Lean Development Methodology

  • The success of the project is very dependent on the teamwork, the discipline between them and how the work flows in between their individual skills.
  • Decisions must be prompt and final; this is what makes the Lean Methodology stick to time frames and budgets.
  • Flexibility must be supervised as too much of flexibility can be a deterrent to the timely functioning of the team.
  • The wrong business analyst will just confuse the documentation pertaining to the process so having the right analyst with ample industry experience is very important.

3. Waterfall methodology

This model is traditional and is also used commonly. It is also referred to as the traditional / conventional approach and is more of a classical form of the process of software development. The Waterfall model uses an approach that has 5 sequential and important stages of SDLC. These stages include Client requirement gathering, Design sampling, Implementation, Testing and finally Maintenance. The linear sequential flow in the Waterfall model means that the next stage in the development process commences only if the previous stage/process is completed and definitely involves detailed documentation and verification of all the requirements. There is no set method to return to the earlier phase in case there are changes in the requirements. This model is also known as a heavyweight methodology as the processes are long and are quite inflexible. Waterfall Model is not very accepting of change but it does have some unique features as listed below.

Advantages of Waterfall Model

  • Waterfall model can be implemented for projects of all sizes.
  • Testing is an inherent part of every stage of this model.
  • This kind of software development offers a clear and concrete approach.
  • Documentation for every stage is maintained by the developers making it easy to map trails.
  • This model of software development is simple and easy to work with making it a popular choice among amateur developers.
  • This is a rigid model yet this works in its favor as it is this rigidity that makes it that much easier to manage. Smaller projects benefit from the Waterfall model as the requirements are easier to understand.
  • The Waterfall Model ensures that the processes are completed in stages and this is a time saving factor.

Disadvantages of Waterfall Model

  • The Waterfall Model is of no use for any maintenance related project and is ideal for long term projects.
  • As mentioned in the summary, editing a process once it is in the testing phase is not possible.
  • The Waterfall Model works best when the requirements are clear cut and precise.

4. Iterative methodology

This model is different from the other as it does not start by specifying requirements of the whole process but instead just a part of the software is specified and implemented and this is reviewed before any further steps are taken. This Model breaks down the software development of a large requirement into smaller more manageable parts. The designing, development and testing is done in a repetitive cycle. As this is repeated each and every cycle of the model gets a new software version produced. There is a working version that is ready quite at the beginning of the process that is tested; evaluated and further additional requirements are then identified.

Advantages of Iterative Model

  • The main advantage of this model is that the process of system development is converted into smaller parts. When the system works correctly all the parts are then coordinated.
  • The lessons learnt from the errors that were eliminated from the smaller part can be used to develop the other parts of the process and this goes a long way to save on time and money.
  • This Iterative method is also preferred as every permutation and combination need not be considered before starting work on the project.
  • Solutions can be easily found as issues crop up by diverting back to the team who can work on solutions while the project development continues forward.
  • A working model s available as a sample quite early in the development process and implementing changes is less inexpensive.

Disadvantages of Iterative Model

  • The cyclic design of this model can cause it to go out of its budget as it can get into a repetitive mode.
  • Time will need to be spent on closely monitoring deliverables and the time factor in order to live up to its cost saving definition.
  • There is no emphasis on maintaining documentation which can cause problems in the long term.
  • There are no overlaps in an iterative model which makes it rigid.

5. Spiral methodology

e Spiral Method.

Advantages of Spiral Model

  • Risk factors are reduced as there is it involves extensive Risk Analysis.
  • This is an excellent method to use while developing software for important projects and for large projects.
  • Additional features and functions can be easily added even as late as the testing phase.
  • High Risk projects have benefited from this methodology especially as the requirements of the business can be subject to change and these changes can be made to the software with the Spiral Method.
  • The Spiral Method requires the cycles to return to the earlier phases repeatedly thus allowing changes to be factored in.

Disadvantages of Spiral Model

  • This is not always a very cost effective model for software development and has been known to be expensive at times.
  • The risk analysis that is done affects the actual success of the model; if the risk analysis is faulty then the entire software project can be negatively affected.
  • There is also a risk that the development might keep working in a spiral manner without coming to a conclusion.
  • This is not a beneficial method for projects with low risk factors.

6. Scrum methodology

One of the most famous and widely used software development methodologies, Scrum, is a framework which makes use of the Agile software development methodology. This framework is flexible and encourages collaborative ways of managing a software project. One of the most recognized benefits of this method is that it allows you to move quickly and also pivot easily when needed. Faster feedback cycles and the ability to recognise problems early have made Scrum one of the most popular methodologies around.

Advantages of Scrum Methodology

  • Faster Feedback Cycle: There are times when you build exactly as per the requirement. However, that might still not suit the needs of the stakeholders. Scrum ensures that such problems are not recognized late. There is something actionable that can be presented at the end of the first sprint, which ensures that all stakeholders can be kept in the loop.
  • Identify Problems Early: Scrum methodology focuses on keeping meetings brief and that lets the teams stay on track. This way, larger problems are identified with ease and can be taken offline without any time being wasted.
  • Flexible Prioritization: Scrum offers flexibility in terms of prioritising customer driven features. With each sprint boundary, it becomes possible for you to more convincingly manage your shippable units of work and make overall progress towards a final product milestone.

Disadvantages of Scrum Methodology

  • The time and cost estimates must be accurate, a careless estimate can adversely affect the project.
  • This methodology is ideal for large projects but not so cost effective for smaller projects.
  • Coordination between the team members is very important for a smooth flow of the processes involved.
  • Experienced and Qualified team members are a must in order to make the Scrum methodology successful.

--

--

Sisitha jayawardhane
Sisitha jayawardhane

Written by Sisitha jayawardhane

Undergraduate Software engineering student at University of Kelaniya

No responses yet