Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Solution Architecture with .NET

You're reading from   Solution Architecture with .NET Learn solution architecture principles and design techniques to build modern .NET solutions

Arrow left icon
Product type Paperback
Published in Aug 2021
Publisher Packt
ISBN-13 9781801075626
Length 238 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Jamil Hallal Jamil Hallal
Author Profile Icon Jamil Hallal
Jamil Hallal
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Preface 1. Section 1: Understanding the Responsibilities of a Solution Architect
2. Chapter 1: Principles of the Software Development Life Cycle FREE CHAPTER 3. Chapter 2: Team Roles and Responsibilities 4. Chapter 3: What Makes an Effective Solution Architect? 5. Section 2: Designing a Solution Architecture
6. Chapter 4: Designing a Solution Architecture 7. Chapter 5: Exploring Architecture Design Patterns 8. Chapter 6: Architecture Considerations 9. Chapter 7: Securing ASP.NET Web Applications 10. Chapter 8: Testing in Solution Architecture 11. Section 3: Architecting Modern Web Solutions with DevOps Solutions
12. Chapter 9: Architecting Modern Web Solutions with ASP.NET Core and Azure 13. Chapter 10: Designing and Implementing Microsoft DevOps Solutions 14. Other Books You May Enjoy

Getting familiar with the popular SDLC models

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

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

Figure 1.10: Waterfall stages

Some of the advantages of the Waterfall model are as follows:

  • Stages are clearly defined and easy to understand
  • Stages are well-documented
  • Works well for smaller projects where the requirements are well-defined

Some of the disadvantages of this model are as follows:

  • The working version of the product will be delivered at a late stage of the development cycle.
  • Not a good model for complex and ongoing projects since the stakeholders won't be able to give their feedback at the early stages of the development process.
  • Not a good model when there is a high risk of requirements changing.

The Agile model

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

Figure 1.11: Agile stages

The Spiral model

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:

  • Identifying objectives by gathering the business requirements
  • Performing risk analysis
  • Reviewing and evaluating
  • Developing and testing

Here is a diagram depicting the Spiral model:

Figure 1.12: 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:

  • This model provides an early indication of the existence of risks.
  • Critical high-risk functionalities are developed first.
  • Stakeholders are closely tied to the entire development life cycle phases.
  • Users can see the system in action at early stages with the use of prototypes.
  • Stakeholders can incorporate early and continuous feedback.

The disadvantages of the Spiral model are as follows:

  • This model is costly and is not recommended for small projects that have low risks in most cases.
  • Managing the process is somewhat complex.
  • Risk assessment expertise is required to run this model.

The DevOps model

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:

  • A development team to architect and build the product.
  • An operations team to prepare the environment and host the product.
  • A test team to prepare the test cases and conduct thorough QA testing and to report back to the development team.

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

Figure 1.13: DevOps model

The advantages of the DevOps model are as follows:

  • Fast delivery of features
  • Better responsiveness to problems
  • Efficient operations
  • Reduced bottlenecks
  • Better communication and collaboration
  • More productive team members, with more time to innovate

The disadvantages of the DevOps model are as follows:

  • DevOps requires culture change and new methods of communication, which is a big challenge in a traditional environment.
  • There is a need to upgrade the infrastructure to optimize the process, which can be expensive for some companies.
  • Fast development can lead to critical security shortfalls.

Now, let's learn how to choose the right model.

Choosing 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

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.

You have been reading a chapter from
Solution Architecture with .NET
Published in: Aug 2021
Publisher: Packt
ISBN-13: 9781801075626
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image