I received a lot of emails and comments regarding the best software development life cycle model. So, I had to write my opinion about that.
Actually, I think there is nothing called the best in absolute general, the best for me maybe not the best for you at this moment. Similarly, there is nothing called the best SDLC model in absolute general, you need to decide which one you need to use according to the software project context and what product or software you are developing, what about your competitors? And what are the team capabilities you have?
I wrote a guide in another article on how to choose the right SDLC for your project, please refer back to this article to have the simple steps and guide for taking the decision of what will be the best model fits your business case. Also, you can refer back to the consolidated reference about SDLC models.
Now, let us give some examples for some of the scenarios I received from the visitors here, and I would like to thank them for their engagement and to give us this opportunity to discuss some of the cases they shared.
I have a software project “Election management system ” and I want to choose a process model what do you think is the suitable one? The software requirements are clear. I think V-model is suitable but I’m not sure.
In this case, with this limited input about the case, I think we had enough information to build up the decision. First, it is election management system which is a sensitive kind of systems which needs an accuracy of data collection and privacy of data collected and how to manage fraud cases and detect them, which need deep business understanding and risk management as well as excellent testing cases. When we review the most known SDLC model, we will see some models can fit as result of that the requirements analysis activity has been finished with a clear understanding about the requirements, let us first exclude some models
- Agile Model: the kind of software does not require to be agile as it cannot be operational in phases, while the agile model can increase the interaction with the customer to validate the requirements and the final expectation. while we have also clear requirements and there are a lot of reference design for elections systems and basic features which can be used to realize the solution.
- Iterative and Incremental Model: The system will not be operationalized in iterations as well, for example, you cannot do the election process if you do not have an identity management module or fraud detection for example, while also, may be according to the business needs, they can ask to do some modules regarding the software itself in one iteration and the analytics and reports in another iteration. I do not think this will happen in real life example with a similar type of system 🙂
I can see two models fits here and also you can combine between both:
- Spiral Model: The main advantage of spiral model, the risk assessment, and analysis which is required in this system as well, the prototype which will be a good way to communicate the expectation of the system as well.
- V-Shaped Model: This model includes test planning at each phase which is extremely important for this type of the project.
I used the models’ techniques here based on the project context while the models are for our guidance for a proven way of good practices to implement the software successfully while we can combine them and use some of the good practices in one of them to complement another model which fits the project context
ABC is an international software house. ABC is currently working on a project that is totally new for the development team and even the client is confused about the requirements of this project. Hence this company is facing difficulties because they fail to apprehend user requirements properly. For this project, it is decided to build a sample application and show it to the client for feedback.
In the context of this above scenario as a project manager what will be the choice of the software lifecycle model?
I think the best model for this scenario will be the agile model this is mainly because the vague and unclear requirements, In this model we can have some sprints, each sprint duration from 2 to 3 weeks, and the team will start to take part of the requirements which it is okay to be not clear. The team has to understand what are the initial requirements and prioritize them based on which one can give an early business value to the customer and they can actually search for some information about similar systems to better understand the requirements and the future vision of this software as well. Moreover, they can build a prototype of what they understand and show it to the customer and discuss the customer feedback. This will stimulate the new requirements from the feedback as changes or new additional business requirements need to be developed. Throughout the development lifecycle, the team will build the backlog and repeat the same process with each sprint and the requirements will be clearer as well. I’m considering here that we have a skilled team has an existing experience of the agile model as well as the project manager.
Here, we combined Agile and prototyping techniques.
Suppose you are a project manager for a software product in a new and growing market with your competitors who are also developing a product will be the same product. Which model to select and why?
The Agile Model will be the most suitable model to select here. Agile derived from agility and flexibility to adapt to the new changes easily and quickly. This skill is required in most of growing companies and in the competitive environment. If you will not adapt quickly, you will not be a leader, you will be a follower. We can see that most successful companies now, they are adding features daily without affecting their operations and with zero downtime to add new innovative features which will satisfy their users’ needs and sustain their existence in the market. There are many cases of technology companies who disappeared because they were not able to change quickly and they did not understand the change happening around them. And they were not flexible enough to change. Do you remember ICQ, hi5, mySpace, Netscape, and others?
We are creating an online hospital management system and it is needed immediately, what kind of SDLC model should be used in our documentation?
A case like this can be handled by different models actually. Moreover, you do not have to reinvent the wheel for developing HMIS from scratch as there is a lot of available products for that which requires some standards for integrations and communications like HL7 and also some compliance standards like HIPAA for example. It will be more successful if you use one of the commercial off-shelf products and start customizing it.
So, if we will create the HMIS from scratch, the most suitable models here is the Incremental Model so, you can focus on some of the modules and application components which are critical for the system and deliver value early to the hospital, for example, registration, appointment module, and outpatient module.
Also, the Agile model would be good in this case while it will cost you more and the communications overhead will be high considering that the HMIS has a mature description and reference design can help easier to build a similar system, which will need some time to deliver a complete value which may not fit in sprint duration.
You should avoid the waterfall totally even if you have clear requirements because you will need to deliver value faster and also communicate the finished part to get early feedback. Moreover, it will be a disaster for the customer if he waited a long time to see the final results with many differences from the customer expectation.
In conclusion, the best model is something related to the project context and not absolute best, it will be the most suitable model you selected with consulting your team and analyzing the ecosystem and environment.
“The price of success is hard work, dedication to the job at hand, and the determination that whether we win or lose, we have applied the best of ourselves to the task at hand.” – Vince Lombardi
“I think that’s the single best piece of advice: constantly think about how you could be doing things better and questioning yourself.” – Elon Musk
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.
Also published on Medium.
30 thoughts on “The best SDLC model”
Which model is suitable for developing online gas booking system…?
I would say agile would fit 🙂
Assalam o Alaikum!
Which SDLC model to use to build a product that combines virtual reality hardware with software.
which SDLC suitable for car driving school management
Can you explain more Ankit?
Suppose, you are going to develop a system to control an Aircraft. You have to
design a perfect system but you do not have any previous experience about this
project. Your system will be pioneer in this case, and you have to ensure quality
but budget is not a fact because error may lead to a life-threatening situation.
mnow question is : Which SDLC Model will you select to develop the system as a software
engineer and why?
Hi Zaid, I would say V-Model or Spiral. Also, other models from agile practice can work. The key thing that you cannot go to production without having the full aircraft finished because it is life-threatening in case of any failure. V-Model is mainly for quality and spiral for maintaining risk mindset. As mentioned in other articles, you do not have to follow just one, you can mix between them in practice. The important thing is the logical sequence of how you do things to realize their end value.
One of the basic notions of the software development process is SDLC models which stands for Software Development Life Cycle models. There is no one single SDLC model.
ABC Arts is an arts company that handles and organize plays and musicals at a range of venues across the country.
Which would be appropriate software development model for developing the online booking system for ABC Arts?
I would say iterative model
its a company usually designs website and other application programms. which type of SDLC model will be good?
Web based car parking & guest house reservation,please which Type of SDLC Model may i use ?
Think about the requirements that you have, if you can prioritize core features that support the main purpose of the software then, you can use agile or iterative model
Which SDLC Model is best suited for a facebook like app?
Apart from agile model
The iterative will be suitable 😉
Can you please let me know the Best SDLC for an app like Uber and what are your thoughts regarding this?
Also, Is DevOps also a SDLC model?
As I discussed, we can call it the most suitable for the project, the Uber team is agile. DevOps is not a SDLC it is a practice of merging the development with the operation to ensure continuous delivery and integration
Hi, My college gave case study. Issues that are they mentioned , It is a manufacturing company.They used automated Systems but performance level & value creation related to HR functions are difficult. So they asked us to develop HRIS & choose which SDLC model is best for this?
Hi Sakthi, Can you please elaborate more?
Hello , I’m working on a safety critical project related to “Insulin Recommendation based on sugar level”…..
Which Process model is best for safety related systems.
I’m confused that in addition to v-model which model is best among spiral or RUP?
Or any other suggestion related to safety critical system.
Hello. We are making a project of “Student portal for project submission”. Which model will be suitable for this project?
I think agile or iterative model will be suitable for that
Hi. We are making a “Software as a Service of a Cashiering system for micro Enterprises”. What would be the best SDLC model to use?
Agile, good luck ☺️
Not sure if I replied you. Again nothing called the best, but use agile for sure specially on the cloud
a university wants to develop an “online student admission system”. explain which software development model should be suitable for this
Hi Bhaaveh, I think iterative model will be suitable for the online admission system