Choosing the right Software development life cycle model

Selecting a Software Development Life Cycle (SDLC) methodology is a challenging task for many organizations and software engineers. What tends to make it challenging is the fact that few organizations know what are the criteria to use in selecting a methodology to add value to the organization. Fewer still understand that a methodology might apply to more than one Life Cycle Model. Before considering a framework for selecting a given SDLC methodology, we need to define the different types and illustrate the advantages and disadvantages of those models (please see the Software Development Life Cycle Models and Methodologies).

How to select the right SDLC

Selecting the right SDLC is a process in itself that the organization can implement internally or consult for. There are some steps to get the right selection.

STEP 1: Learn the about SDLC Models

SDLCs are the same in their usage. In order to select the right SDLC, you should have enough experience and be familiar with the SDLCs that will be chosen and understand them correctly.

As described in the software development life cycle models article, models are similar to the tools that important to know each tool usage to know which context it can fit into.

Imagine the image below by Jacob Lawrence, if the carpenter did not know the tools he will use, what will be the results? Did you visualize the disaster?

Jacob Lawrence
By Jacob Lawrence

STEP 2: Assess the needs of Stakeholders

We must study the business domain, stakeholders concerns and requirements, business priorities, our technical capability and ability, and technology constraints to be able to choose the right SDLC against their selection criteria.

STEP 3: Define the criteria

Some of the selection criteria or arguments that you may use to select an SDLC are:

  • Is the SDLC suitable for the size of our team and their skills?
  • Is the SDLC suitable for the selected technology we use for implementing the solution?
  • Is the SDLC suitable for client and stakeholders concerns and priorities?
  • Is the SDLC suitable for the geographical situation (distributed team)?
  • Is the SDLC suitable for the size and complexity of our software?
  • Is the SDLC suitable for the type of projects we do?
  • Is the SDLC suitable for our software engineering capability?
  • Is the SDLC suitable for the project risk and quality insurance?

What are the criteria?

Here are my recommended criteria, It will be good to share any new criteria you see that it will be valid

FactorsWaterfallV-ShapedEvolutionary PrototypingSpiralIterative and IncrementalAgile
Unclear User RequirementPoorPoorGoodExcellentGoodExcellent
Unfamiliar TechnologyPoorPoorExcellentExcellentGoodPoor
Complex SystemGoodGoodExcellentExcellentGoodPoor
Reliable systemGoodGoodPoorExcellentGoodGood
Short Time SchedulePoorPoorGoodPoorExcellentExcellent
Strong Project ManagementExcellentExcellentExcellentExcellentExcellentExcellent
Cost limitationPoorPoorPoorPoorExcellentExcellent
Visibility of StakeholdersGoodGoodExcellentExcellentGoodExcellent
Skills limitationGoodGoodPoorPoorGoodPoor
DocumentationExcellentExcellentGoodGoodExcellentPoor
Component reusabilityExcellentExcellentPoorPoorExcellentPoor
Selection Criteria

STEP 4: Decide

When you define the criteria and the arguments you need to discuss with the team, you will need to have a decision matrix and give each criterion a defined weight and score for each option. After analyzing the results, you should document this decision in the project artifacts and share it with the related stakeholders.

STEP 5: Optimize

You can always optimize the SDLC during the project execution, you may notice upcoming changes do not fit with the selected SDLC, it is okay to align and cope with the changes. You can even make your own SDLC model which optimum for your organization or the type of projects you are involved in.

[cite]

References

Software Development Life Cycle Models and Methologies. (2012, 3). Retrieved from melsatar.blog:  Software Development Life Cycle Models and Methodologies

Donate-Button

Help to do more!

The content you read is available for free. If you’ve liked any of the articles at this site, please take a second to help us write more and more articles based on real experiences and maintain them for you and others. Your support will make it possible for us.

$10.00


Also published on Medium.

Summary
Choosing the right Software development life cycle model
Article Name
Choosing the right Software development life cycle model
Description
Selecting a Software Development Life Cycle (SDLC) methodology is a challenging task for many organizations and software engineers. What tends to make it challenging is the fact that few organizations know what are the criteria to use in selecting a methodology to add value to the organization.
Author
Publisher Name
Publisher Logo

113 responses to “Choosing the right Software development life cycle model”

  1. irosh Avatar
    irosh

    who can I consult when selecting a SLDC methodology.

    1. Mohamed Sami Avatar

      Great question, actually the customer and key members of the team, for example, project manager, architect, development lead

  2. Usama Avatar
    Usama

    for ” Bus Tracking System ” which model is best

  3. Sabnam Pandit Avatar
    Sabnam Pandit

    My university is going to develop a software application for newly admitted student registration system.Which process model would be suitable and why?

    1. Mohamed Sami Avatar

      Iterative would be good or waterfall even. It is not something hard and the business, to technology, and tools are mature for this

  4. Nidya Singh Avatar
    Nidya Singh

    Thanks a lot for sharing your amazing and useful stuffs!! Sir, my final year project is ‘Sign Language Prediction using Hand Gestures”. According to your recommended criteria I know my User Requirements & familiar with technology which I going to use with limited skill, so I think Waterfall model is most preferable model for my project. Still I’m confuse on which sdlc model is best for me, Can you please suggest me the model which is most suitable for my project.🥺

    1. Mohamed Sami Avatar

      I think you maybe need agile or iterative model, which you will focus on specific scenario or use case of the prediction, test it well and move to the next one, what do you think?

  5. Jumar K. Avatar
    Jumar K.

    I really like the blog much. so much informative as well as the way you interact with the user is fascinating. I have also little project on designing a website for online video rental company. the company has video tape many of them by themselves and also some of the video tap to be rented is owned by private individual who make money every time they be rented out.
    it is possible to order different video tape based on their genre (Action movie cost 2$ per day, Action suspense cost 4$ per day, Romance 3$ and so on that their are many category of the video tape in the store )
    to rent video the customer choose the video type and for how many days they want and the system will check the availability and respond either accept the order or decline based on that. so all customer order is online through the website. you can be registered as registered customer with other benefit such us using the point of order to make new order.
    you can also registered as private video tape owner to supply the video tape and collect the benefit of 25% based on the rent.
    the company has also business partner like the empty video tape supplier and or accessory supplier.
    the system has also management module for administrator to generate statics such as the best video of the month, the highest rented video in this period and a like report.

    so based on this information which model is the best for my company web development life cycle. I really appriciate your advise.
    Thanks!

    1. Mohamed Sami Avatar

      Hi Jumar, I would like to know your judgement first based on the research you made

  6. Rid Avatar
    Rid

    Hello Mr. Mohamed

    I just want to ask you about the appropriate software development process that I can use for my project !!
    I need to investigate for a particular system. The title is ‘Perishable Goods Ordering System’

    could you please, help me choosing an appropriate model.. and give a justification of your choice ?
    Thanks for your efforts.

    1. Mohamed Sami Avatar

      Hi Rid, please write your thoughts and I will help you validate it. It is important that you think about it first.

    2. Mohamed Sami Avatar

      Tell me your thoughts, what is the closest one you find it suitable for your needs

  7. bhawish Avatar
    bhawish

    hello, D.Mohamed Sami, can you please guide me which software engineering methodology is suitable for creating an application which is useful for two way communication between normal person and a deaf or dumb person, like a normal person will record the signs of disable person through camera and application will convert it into audio or text form, and a disable person will record voice of a normal person and app will convert it into signs, in video or images form.
    hope so will get response ASAP.

    1. Mohamed Sami Avatar

      Hi there, I believe agile model will be very suitable

    2. bhawish Avatar
      bhawish

      hey, can you please explain why Agile is more suitable? as i was thinking that waterfall is more suitable because its my FYP project thats why it also requires heavy documentation.

      1. Mohamed Sami Avatar

        I think you should imagine that you deliver the project to a customer, not to the university. Or all the final year projects will be waterfall then 😉

  8. Prince Jose Avatar

    What is the difference between ‘Agile ‘ and ‘Iterative and Incremental’…is the agile also fall into ‘Iterative and Incremental’? Can we say ‘Unified Process ( RUP)’ is a Iterative and Incremental’ process?….For agile we have Scrum , XP,KANBAN etc…what is there in ‘Iterative and Incremental’ ?

  9. mazhar Avatar
    mazhar

    I am making a online shoping website , sir please guide me which SDLC model is best for it ??
    thanku sir

    1. Mohamed Sami Avatar

      Hi Mazhar, according to this article which one you see suitable for your project?

  10. Aya Avatar
    Aya

    Hello Mr. Mohamed

    I just want to ask you about the appropriate model that I can use for my project !!
    my project has pre-defined lists (something like to-do-list). and the users can create their own lists and tasks, and set reminder, also add notes. They can share the list and send it to someone.

    could you please, help me choosing an appropriate model.. and why this one ?
    Thanks for your efforts.

    1. Mohamed Sami Avatar

      I think many can be suitable for you for example iterative model and agile to deliver most important features first and get feedback early

      1. Aya Avatar
        Aya

        Thank you so much

  11. raneem Avatar
    raneem

    Hello Sir,

    Can you help me I’m having some difficulty choosing the best SDLC model for my project? My project is about personal expense manager which can add expenses and view the statistic for expenses, act as a reminder for events within a calendar and many other things.

    After I read your article I thought it will be best either Iterative and Incremental or V-shaped will best model, what do you think?

    And explain and the reason why this model is best for my project.

    Waiting for your replay. Thank you.

    1. Mohamed Sami Avatar

      Hi Raneem, thank you for your comment and question, why you did not think of Agile model? I would choose agile or the iterative model.

      Mainly the reason that I would like to deliver my application more quickly and also consider any new enhancements and changes in the next iteration or Sprint. Also, this will ensure customer satisfaction and involvement during the development process.

      1. raneem Avatar
        raneem

        thank you for your reply to my question.

        one last question, what are the main/basic phases using the Agile model?
        Because I have searched and found many different phases for different methodologies for the Agile model.

        1. Mohamed Sami Avatar

          Hi Raneem, It includes the normal phases as SDLC but the implementation is following the agile model, for example, you still conduct the analysis, development, testing, …etc. You can read this article to know more about the phases https://melsatar.blog/2017/06/13/what-do-you-need-to-know-about-the-eight-software-development-phases/

  12. Diana Avatar
    Diana

    Great article.

    I have one question. How have you arrived at your choice of criteria/factors for your decion matrix assessment of SDLC? Is it your experience or are there reference I can read for more insight into why you have chosen the factors?

    1. Mohamed Sami Avatar

      Hi Diana,

      Thank you for your comment. The factors are based mainly from my experience, but you will find many resources and researches in the same topic.

      You can always add more or change them based on your business and project context and some factors may have higher weight or important than others

      Have a great day

  13. […] its success. I wrote another article on how to choose the right SDLC, you can follow this link for more information. Moreover, to learn more about Software Testing life […]

  14. knowledgeseekers Avatar

    assalamualikum! sir dnt you think there should be poor in front of complex software in waterfall model? waterfall is accpetable for small project… am i right?

    1. Mohamed Sami Avatar

      Salam there, the complex system mainly needs good time to be developed, that’s why waterfall is acceptable as the results are not expected to be soon. I think small team would be better with agile or iterative to ensure high productivity.

  15. caidychen Avatar

    I am looking at your criteria matrix and cant figure out why Agile is a poor choice when you are unfamiliar with the technology. Can you elaborate more on this?

    1. Mohamed Sami Avatar

      Mainly, because choosing agile means that you need to deliver fast and no time to learn new technology or programming language. The team should master the tools to deliver fast.

      You can solve that by acquiring the knowledge by partnership or hiring new skills

      1. caidychen Avatar

        Hmmm so what makes Iterative and Incremental model superior to Agile relating to this criteria? Sometimes I am struggling to distinguish between the two because they are all like “iteration and integration” 🙁

        1. Mohamed Sami Avatar

          Each iteration can take time compared to sprints. I have a recent post about the difference between iteration and incremental, will share the link here

  16. Yulan Avatar
    Yulan

    Great Article!

    Can you suggest which software models to go for –
    a) Satellite-based Communication System between Mobile handsets.
    b) A compiler for a new language.
    Also, please briefly explain the reason of your choice.

    Thank you!

    1. Mohamed Sami Avatar

      Hi Yulan,

      I’m afraid, I cannot give a direct answer, I think you should put some assumptions for each project and follow the steps and you can select the most suitable one for each project context.

      Most probably, the V-Model will fit in these types.

      Thank you

  17. ERUM Avatar
    ERUM

    if road accident detecting application is made which software development process model is best for accuracy, efficiency and reliability.in application .and What benefit(s) a development team can achieve with your choice. waiting for soon.“I await your response

    1. Mohamed Sami Avatar

      I think you will need also iterative with V model for testing and feedback loop for the next iteration. The benefits can be like splitting the work in manageable iteration, test the highest priority features, and measure the impact and improve. This will make them more results oriented from the field experience.

  18. Muhammad Shaheer Avatar

    AssalamuAlaikum Sami! its a nice article, I’ve a question that Which software model is suitable for online banking?

    1. Mohamed Sami Avatar

      I think iterative v-model will be suitable for that.

  19. Ameer Hamza Avatar
    Ameer Hamza

    Help me to solve this.

    You are required to develop a software that will allow administrator to manage (add/update/delete) courses, students, and instructors. Instructors could also run the software to manage student grades, while students could use the software to register/drop courses.

    i. Which model fits well with the approach used for this case? Give a brief justification.

    ii. Which testing strategy would you suggest in this case and why?

    iii. Briefly describe 3 important attributes of software quality you will consider.

    1. Mohamed Sami Avatar

      Hi Ameer,
      I have responded to your email.
      Thank you

  20. vienna Avatar
    vienna

    I will be creating a map using augmented reality. what model will be the best for my system?

    1. Mohamed Sami Avatar

      Hi Vienna, There are many aspects to select the most suitable model can fit with your system? Please tell me what do you find when you use the created criteria here? which one of them are matching with your project context and can help you better select the model?

Let me know your thoughts

Mohamed Sami

About the author

Mohamed Sami is a Industry Advisor who has a solid engineering background, he has more than 18 years of professional experience and he was involved in more than 40 government national projects with holding different roles and responsibilities, from national projects execution and management to drafting of the conceptual architecture and solutions design. Furthermore, Mohamed contributed to various digital strategies in the government sector, which improved his business and technical skills over his career development.

Discover more from Mohamed Sami

Subscribe now to keep reading and get access to the full archive.

Continue reading

Discover more from Mohamed Sami

Subscribe now to keep reading and get access to the full archive.

Continue reading