-
Book Overview & Buying
-
Table Of Contents
Solution Architecture with .NET
By :
Every product requires a suitable approach to developing it. Usually, this decision is made based on multiple factors, such as if the requirements are well-documented, the requirements are not ambiguous, the project is short, and so on. In this section, we will highlight some of the most popular models that are used in software development.
The Waterfall model is a straightforward and sequential approach to building a software product. Each stage of the development cycle should be completed before you move on to the next stage and usually, the output of each stage is considered to be the input for the next stage.
Here is a representation of the different stages of this model:
Figure 1.10: Waterfall stages
Some of the advantages of the Waterfall model are as follows:
Some of the disadvantages of this model are as follows:
The Agile model, an example of which is Scrum, is one of the most well-known development methodologies and is widely adopted by many IT organizations. It is also applied to non-tech projects.
The approach of this model is to break the product into cycles or iterations. Each iteration lasts for about 2-4 weeks (usually, it shouldn't be a long time). At each iteration, the development team should deliver a complete working version of the software. The idea is to take the use cases and split them into iterations so that you get a functioning part of the product at the end of the iteration. In this way, the development team is producing ongoing and incremental releases that have been well tested.
This approach helps teams identify and address issues early on. It also involves the stakeholders throughout the development process to get their feedback.
The following diagram is a quick representation of the Agile stages:
Figure 1.11: Agile stages
The Spiral model is a combination of the Iterative model and the Waterfall sequential model. Usually used for large projects, it provides support for risk handling at the early stages of each iteration. With this model, the project passes through four phases:
Here is a diagram depicting the Spiral model:
Figure 1.12: Spiral model
With each iteration, you can build a prototype of the new feature and functionalities that will be delivered in this iteration.
These phases are repeated in a spiral until the entire product is delivered, allowing for multiple rounds of refinement.
The advantages of the Spiral model are as follows:
The disadvantages of the Spiral model are as follows:
In a DevOps model, the developers and operations teams work together. You may be wondering, well, what does this mean?
Using the traditional models that we talked about earlier, companies were splitting up their resources into teams that handled specific responsibilities:
With the DevOps methodology, the developers and operations teams are requested to collaborate closely – as one team – in all the stages of the SDLC process. A successful DevOps model ensures continuous feedback, accelerates the deployment, improves the development process, and automates manual processes.
Here is a representation showing the different steps in the DevOps model:
Figure 1.13: DevOps model
The advantages of the DevOps model are as follows:
The disadvantages of the DevOps model are as follows:
Now, let's learn how to choose the right model.
When selecting the right SDLC model to build a particular product, it's important to remember that each model offers a unique process that may help you overcome the challenges that you will encounter during the development cycle. One model would never fit every project or every client's needs, which is why you should understand these popular models and know when to apply them.
Finding the right model depends heavily on the factors the project will be executed with, such as your current infrastructure, the culture adopted by your team, and how the client would like the project to be managed. Certain projects may run best with a Waterfall approach, while others would benefit from the flexibility of the Agile model.
Let's take a look at the following table, which highlights the main factors when it comes to choosing the right model for your product:
Figure 1.14: How to choose the right SDLC model
In this section, you explored the most popular SDLC models. Each one offers a unique methodology that can help you overcome different challenges you may encounter in your career. You also learned how to choose the right model for your product.
Change the font size
Change margin width
Change background colour