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 manifesto

Applying any agile method requires a clear understanding of the four values stated in the Agile manifesto. Let's understand these values:

  • Individuals and interactions over processes and tools: Processes and tools always help complete the project. Project stakeholders, who are a part of the project, know how to implement the plan and how to deliver the successful result with the help of tools for project delivery. But the primary responsibility for project delivery is the people and their collaboration.
  • Working software over comprehensive documentation: Documentation is always an essential process for any product's development. In the past, many teams only worked to collect and create a repository for documents such as high-level design, low-level design, and design change, which later help achieve qualitative and quantitative descriptions of the product.

With the Agile methodology, you focus on the deliverable. Therefore, according to this manifesto, you need documentation. However, you need to define how much documentation is vital to the continuous delivery of the product. Primarily, the team should focus on delivering software incrementally throughout the product's life cycle.

  • Customer collaboration over contract negotiation: Earlier, when organizations worked on a fixed bid or time and material projects, the customer always came in the first and the last stages of the software life cycle. They were outsiders who were not involved in product development; by the time they finally got a chance to see the product after launch, the market trends had changed, and they lost the market.

Agile believes that customers share equal responsibility for the product's launch and that they should be involved in every step of development. They are part of demonstrating giving feedback based on new market trends or consumer demand. Since the business is now part of the development cycle, these changes can be attainable by being agile and having continuous customer collaboration.

  • Responding to change when following a plan: In the current fast-paced market in which customers demand change with new market trends, businesses keep on changing. It is vital to make sure there's a balance between frequently changing the requirements and agilely welcoming the changes since sprint cycles vary from 1 to 3 weeks. Responding to change means that if anything changes in the specification, the development team will accept the change and show the deliverable in sprint demonstrations to keep winning the confidence of the customers. This manifesto helps the team understand the value of welcoming changes.

The Agile Manifesto is a tool that's used to establish basic guidelines for adopting an Agile methodology. These values are the core of all agile techniques. Let's understand the agile process in more detail.