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 this article as: Mohamed Sami, (March 21, 2012). "Choosing the right Software development life cycle model," in Mohamed Sami - Personal blog. Retrieved April 19, 2024, from https://melsatar.blog/2012/03/21/choosing-the-right-software-development-life-cycle-model/.

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 thoughts on “Choosing the right Software development life cycle model

  • Which SDLC model best fit for this situation, The owner would like to have a new Information System that will be more particular in the correctness of the output. Moreover, all the details needed by the project team were already collected during the initial requirements gathering.

  • Software Development Lifecycle varies from project to project depending upon various integral factors. While Approaching towards a lifecycle involves understanding the type of projects to be made, available as well as required Development team, resources required, Infrastructure planning, type of database and UI integration, etc. The SDLC should match our project context or else it lead to extended time period or in some cases may lead to failure. Chossing the right SDLC is crucial to plan on the very first stage of Initialization and getting all the requirements ready on that stage itself.

  • Video-Rental LTD is a small video rental store. The store lends videos to customers for
    a fee, and purchases its videos from a local supplier. A customer wishing to borrow a
    video provides the empty box of the video they desire, their membership card, and
    payment – payment is always with the credit card used to open the customer account.
    The customer then returns the video to the store after watching it. If a loaned video is
    overdue by a day the customer’s credit card is charged, and a reminder letter is sent to
    them. Each day after that a further card is made, and each week a reminder letter is
    sent.
    This continues until either the customer returns the video, or the charges are equal to
    the cost of replacing the video. New customers fill out a form with their personal details
    and credit card details, and the counter staff give the new customer a membership card.
    Each new customer’s form is added to the customer file. The local video supplier sends
    a list of available titles to Video-Rental LTD, who decide whether to send them an order
    and payment. If an order is sent then the supplier sends the requested videos to the
    store. For each new video a new stock form is completed and placed in the stock file.

    Sir Suggest suitable Software process model and justify answer

  • I read your blogs and they are indeed very helpful. I am conducting research on the Selection of appropriate development methodology. I have a query on this blog. The question that I want to ask you is how can you validate that the choice that will be made based upon the table you have given, is correct or what is the accuracy. Did you run any test, or have you compared your results with case studies/ any dataset? Also on what basis did you make this choice i.e. the rankings that you have provided (poor, good, and excellent), how did you rate all this.

    • Hi Aania,

      Very interesting and challenging questions. The support for the ranking and criteria is based on my won experience first and other researches as well.

      I can not see it can be applicable for all organization, it can be different from company to another based on many factors but in common, they will be like that.

      I didn’t run a test, but you will find many case studies that provide lots of information around when waterfall worked well or not, similar to the agile model and the rest.

      So, you need to assess the situation using this methodology or another with your judgment on what will most suitable for the target organization

  • hello sir!!! can you please help me about these models… I just want to know that how we recognize the same phases of all these models and built our new model which can meet our needs.. and any easy tips to gather user requirements… I’m beginner sir that’s why much confused in SDLC models….

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

  • 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.🥺

    • 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?

  • 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!

  • 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.

  • 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.

    • 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.

      • 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 😉

  • 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’ ?

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

  • 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.

  • 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.

  • 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?

    • 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

    • 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.

  • 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?

  • 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!

    • 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

  • 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

    • 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.

  • 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.

    • 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?

  • Sir i m going to make a project in which the user will have to enter their percentage of intermediate and select the department in which they want to take admission then this application will show the list of all the universities which will be according to the percentage and department entered by the user and in this application user will be able to see all the information of the universities and their admission’s date..Sir kindly tell me which model is suitable for this project..???
    and one more question sir Is process of projects are the processes of process models???

    • Hi, I think the project is very small. You can use the waterfall or the iterative models, the development methodology shapes the project plan. So, yes the project process is similar to the development process, with some extra steps in the plan, for example, the project initiation and closure

      • Sir This application will also updated like universities eligibility criteria changes time to time and through this application the user will also be able to connect to the particular university’s site..so,still water fall is good for it???

        • I hope you are doing fine, first we should follow good practice to increase the level of software project success. that’s why the experts documented the different SDLC. if you selected any SDLC that not the best for your project context this can delay the project, which may cause confusion and unsatisfied customers as well.

          For example, if your customer needs high engagement and early delivery of part of the software early for specific business needs, you cannot use the waterfall model because this will make the customer wait until the end of the implementation and testing phase to have a working solution. Other problems may appear or new changes that you need to absorb as well. So, your SDLC should be mapped to what is good for the project context and customer needs

  • Is there a better methodology when dealing with legacy platforms. Especially those where they provide mainly middle and backend functions? i.e. Difficult to release in small iterations for feedback… since there is little or not front end for users to review.

    • Good question Simon, I think I may use V-Model in this case because it mainly used to ensure the delivery quality and to ensure that every change did not affect old features during the development. Meanwhile, you can even iterate in small chunks of work if this features will enhance or add a business value, for example, it may be an integration project with no interaction with the users but specific integrations have higher quality than others.

      I hope this answer helped you more

    • It depends, while agile and iterative models will be effective for website development.

        • Because, you will need to deliver part of the website with initial features, then another features in another iteration or sprint and so on. I do not think that any customer can wait until you fully finalize all the requirements

  • Hello,
    D.Mohamed Sami
    I’m IST student.
    I want some advice from you for my mini thesis.
    My thesis is to implement a software used for car entertained device shop.
    Which SDLC model shoud I choose?
    And shaoud I implement it as web-based or java-based software?

    • Hi Shwe,
      Can you tell me more information about the project, like what it is actually do, it’s benefits, …etc

    • Hi Kawi, all the current factors mentioned in the post are applicable and you can add your own factors as well. Also, you can assign weights for each factor based on which factors are most critical than other. This will help you choose the most suitable. Please read this article regarding the best model https://melsatar.blog/2017/05/05/the-best-sdlc-model/

  • I want to implement a software development methodology for a side project I’m doing as a way to learn more about the methods. I’m creating a Linux OS using LFS and BLFS. All the requirements are pre-defined. What would you suggest would be the best methodology to use.

    • Good luck, it looks a hard project. Indeed, I think something like operating systems cannot be published with the absence of basic features. I think Spiral Model will be suitable here.

      Spiral model for risk and integration between iterations and extensive testing as well. The important that you should list what are the minimum functionalities you should have and the OS cannot be published for the users without them. Actually, you should have more than the minimum to make the users favor your OS than the others already exist.

      Would like to know your feedback.

      • Turns out, LFS has pre-defined steps that I have to follow in order to implement a stable OS. I have decided to use custom waterfall model with iterative and incremental development in the implementation phase, since I need two sets of requirements, one for the whole project and the other for each steps that I have to follow. I am building the Linux distribution for myself but I wanted to implement SDLC as to practice and get a fill for it. I also thought about Spiral in the beginning but since risk management is not that big of a problem for a single user use, I have decided against it.
        Thank you very much.

    • Developers only are not a software engineers who understand and manage the process of project implementation. So, they can fit in any process if they are mixed with software engineers who understand the process. If not I think traditional model like waterfall will be the best

  • hello, D.Mohamed Sami, I have a question of which methodology is suitable if the project was to develop an campus Notification system.
    with respect.
    from Ethiopia.

  • hello, D.Mohamed Sami, I have a question of which methodology is suitable if the project was to develop an automated tracking and monitoring system and I know that I may add some feature or requirement after.
    And explain the answer, please .
    better to tell me which one is suitable or not and why.
    hopefully that you understand me.
    I am waiting for your answer 🙂

    • Hi Reem,

      Thank you for your comment, let us start with the ones will not work, Waterfall and V-Model will not work as they are not flexible with requirements change. So, the most suitable models will be the iterative model or the agile model as well.

      This is a broad answer but as you know there are a lot of other factors to decide which model to choose 🙂

      Thank you I hope that will help you

  • HI,
    I’m the SE for a development team that customize BMC Remedy, Service Now base on clients requirements.
    We also do integrations between ticketing system, CMDB, Using BAO, TIBCO REMEDY API, AI. and more
    I’m looking for a suitable SDLC.
    I defined my criteria’s look at the suitable models. also make a development project history reviewed for our last 5 years.

    Found out that we are using almost all the model depending of the project. so basically I’m looking for a SDLC that can do hybrid Models and Mythologies. is that kind of SDLC exist?

    Best Regards
    Martin L

    • Hi Martin,
      Yes, you can mix between different models. you will notice that some models are partially originated from other models like V models and the iterative model, they are enhanced versions of the waterfall to overcome the waterfall process limitations and disadvantages.

      I think there is no SDLC can fit all type of projects. but you can make some grouping for the projects which have similar characteristics and select a preferred model based on these preferences.

      If you would like more help we can talk privately. You can contact me through “contact me” link the menu

      Thank you

  • I have proposed systems in one of my subjects. Inmates Information System and Online Pets Consultation. Based on your recommended criteria, Spiral Model has the highest “Excellent”. Do you also recommend Spiral Model in my two proposed systems? Will be waiting for your response. Have a nice day 🙂

    • Hi Eufro,
      Yes, may be it has the highest “Excellent” count but it does not mean it is the best choice.
      You may need to give each criteria a different weight, for example, you can give the cost a weight of 50% compared to other criteria based on project situation, context, and constrains. At this case, Spiral model will not be the best option to choose.

      You can explain more about the projects and I can help you in which model can help you.

      Thank you and have a nice day

      • Thanks for your reply. This is the brief explanation about my two projects.

        Inmates Information System – It’s a system that stores prisoner’s info. From paper-based record keeping to computerized record keeping. It will be easier for the prison officers to access the prisoner’s info, add and update their records.

        Online Pets Consultation – Many pets that live in areas where ready access to routine veterinary care, much less emergency care, isn’t available. With the proposed system, the pet owners will be able to obtain preliminary advice from veterinary professionals online regarding their pet’s condition. Save pet owners
        from the costs of unnecessary travel and can avoid stressful car trips with pets.

  • i want a case study which explain all model and one of the example that describe all model can you please help me

Let me know your thoughts