Book Image

Solutions Architect's Handbook

By : Saurabh Shrivastava, Neelanjali Srivastav
Book Image

Solutions Architect's Handbook

By: Saurabh Shrivastava, Neelanjali Srivastav

Overview of this book

Becoming a solutions architect gives you the flexibility to work with cutting-edge technologies and define product strategies. This handbook takes you through the essential concepts, design principles and patterns, architectural considerations, and all the latest technology that you need to know to become a successful solutions architect. This book starts with a quick introduction to the fundamentals of solution architecture design principles and attributes that will assist you in understanding how solution architecture benefits software projects across enterprises. You'll learn what a cloud migration and application modernization framework looks like, and will use microservices, event-driven, cache-based, and serverless patterns to design robust architectures. You'll then explore the main pillars of architecture design, including performance, scalability, cost optimization, security, operational excellence, and DevOps. Additionally, you'll also learn advanced concepts relating to big data, machine learning, and the Internet of Things (IoT). Finally, you'll get to grips with the documentation of architecture design and the soft skills that are necessary to become a better solutions architect. By the end of this book, you'll have learned techniques to create an efficient architecture design that meets your business requirements.
Table of Contents (18 chapters)

Agile versus waterfall

Waterfall is one of the oldest and most traditional software development methodologies that organizations used to follow. In this section, you will learn about the difference between waterfall and agile and why organizations need to move over to agile. We are not going to look at the details of the waterfall process; instead, we will point out the key differences:

  • Agile methodologies help change the mindset from the traditional method to an agile mindset. The motivation for this is to move from the waterfall method to agile methods in order to achieve maximum business value and win customer confidence. This makes agile an advocate for customer collaboration at each step and provides transparency. The waterfall method tends to be more project-and document-centric, where customers were involved at the end phase.
  • The waterfall method is more helpful for the project when all requirements are unambiguous, and the sequence of their deliverables also known, which helps remove any unpredictability as requirements are very straightforward. The Agile methodology is helpful for companies that want to keep up with the market trend and have increased pressure from the customer. They need early releases for their products and have to be adaptive to changes in the requirements.
  • Agile projects are delivered in a small iterative manner with the highest quality and to achieve business value. Many agile teams work in parallel across the sprint to provide a shippable solution for the product at every end of the sprint cycle. As every sprint has a small deliverable and keeps building on top of that, the customer continuously gets to see the working model of the product. Waterfall has a long cycle and stakeholders get to see the final product at the end, which means there isn't much scope left to accommodate changes.
  • The agile process makes sure the team is progressing toward the goal and that the project will be completed on time by putting checkpoints at every sprint cycle. In traditional waterfall methods, there is no frequent checkpoint that can ensure that the team is on the right path and verify whether the project will be completed on time, which may cause ambiguity.
  • In the Agile methodology, the customer always collaborates with the product owner and the team. This collaboration makes sure they observe and review the small, shippable product. Agile also ensures that work is being done and shows progress to the stakeholder. However, in the waterfall method, there is no such customer interaction until the project ends.

Agile is the most adaptive methodology since fast-moving technologies and businesses are becoming so unpredictable and need high velocity. Agile supports inspecting and adapting cycles, which creates a balance between demand and control.