Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Software Architect’s Handbook
Software Architect’s Handbook

Software Architect’s Handbook: Become a successful software architect by implementing effective architecture concepts

eBook
₹799 ₹3276.99
Paperback
₹4096.99
Subscription
Free Trial
Renews at ₹800p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Software Architect’s Handbook

Software Architecture in an Organization

In the previous chapter, we discussed software architecture and the role of the software architect. In this chapter, we will explore those topics further, but in the context of an organization.

Software systems are developed to satisfy the business goals of an organization. Many software architects work as part of an organization. As a result, the organization's business goals, objectives, stakeholders, project management, and processes greatly affect the software architect and their work.

This chapter focuses on topics a software architect should be familiar with when working within an organization. We will take a look at the various types of software architecture roles that are commonly found in organizations, and the software development methodologies they adopt. You'll gain a good understanding of how you might be expected...

Types of software architects

The role of a software architect can vary from organization to organization. You may have also heard of a variety of job titles related to software architects, such as the following:

  • Enterprise architect
  • Solution architect
  • Application architect
  • Data architect/Information architect
  • Solution architect
  • Security architect
  • Cloud architect

Some organizations have one or more architects who perform a combination of these roles. They may go by the title of software architect or by the title of one of these roles. In other organizations, different individuals play different architectural roles. Some companies organize their software architects so that they are in an architecture team. They collaborate with the team on architecture tasks but also work on other teams to design and implement software products.

This book does not focus on any one type of software...

Software development methodologies

As a software architect working in an organization, you will typically be required to use the software development methodology that has been adopted by the organization. However, in some cases, the software architect may play a role in deciding which software development methodology is used. Either way, software architects may be able to provide input to an organization's processes, giving them the ability to make suggestions that may improve these processes.

For these reasons, it is good to have an understanding of the more common software development methodologies. There are a variety of different types that can be employed for a software project, each of which has its own strengths and weaknesses. Today, Agile methodologies are much more widely used than traditional ones, but even among the methodologies that are considered Agile, there...

Project management

Software architects typically assist project management throughout the life cycle of a software system. One of the ways in which you will be asked to do so is in estimating the level of effort for technical tasks. How estimates are derived and who participates in estimation varies from organization to organization, but typically, software architects, with their expertise and experience, will be expected to provide some level of input during the process of estimating tasks.

The importance of software project estimation

The importance of estimation cannot be understated. Estimates and project planning are major factors in the success of a project.

Estimation can be difficult and must take into account a number...

Office politics

Almost everyone in an organization has to deal with office politics to some degree. As you can see from the following pie chart, the majority of people think it is best to have an awareness of the office politics in your own organization:

Pie chart displaying How Employees View Office Politics

As a software architect, you may find yourself engaging in office politics more than you have in the past, such as when you were a senior developer. This is because you will be interacting and communicating with a larger variety of stakeholders, and you may be doing so more frequently.

In an organization, individuals from diverse backgrounds, with their own unique goals and viewpoints, come together to work toward the goals of an organization. A variety of factors can shape people's motivations, which may lead to office politics.

When you want to achieve something,...

Software risk management

Risks are potential problems, and there are many risks involved in designing and developing software. Organizations, and the people working for them, have different levels of risk tolerance. Whatever that level is, an organization should have a plan for risk management.

As a software architect, you will need to assist project managers in managing those risks. If left unmanaged, risks can lead to cost/time overruns, rework, operational failures, and possibly total project failure.

The first step in assisting with risk management is being able to identify risks. The team should come up with and document potential risks. Using your knowledge and experience as a software architect, you may be able to help identify risks that stakeholders, project management, and other team members cannot.

Some examples of potential types of risks include the following:

  • Functional...

Configuration management

As a software architect in an organization, you will be expected to be involved with configuration management. In many organizations, there is a software configuration management (SCM) team. In addition, there may be an SCM team at the project level. For small projects, this may be a single person, or it may even be taken on by someone who isn't even dedicated to the role, such as a team member who performs other duties.

Some of the responsibilities for a software configuration management team include identifying configuration items (software, documents, models, plans), implementing a change control process, and managing the process and tools used for builds. We will examine automated builds and continuous integration (CI) in Chapter 14, Architecting Legacy Applications.

...

Software product lines

Growing competitive pressures combined with the complexity of developing software systems makes it a necessity for organizations to increase efficiencies wherever possible. One way to accomplish this is to create software product lines. A variety of industries, including the software industry, have used product line engineering (PLE) successfully.

Product lines are multiple products from a single company that address a particular need or market. These products could be sold under the same brand, with the idea that customers who use one product from the brand are more likely to purchase another product from the same brand.

Organizations that develop software may have multiple existing software products and/or other software products in development. These software products may work in a similar way, have similar functional and/or non-functional requirements...

Summary

When working as an architect in an organization, you should be aware of the various types of software architect roles. The various roles have similarities and differences in terms of their responsibilities and duties. If you are required to use a software development methodology that has already been selected for your organization, it is important to become familiar with it and its practices. If you are in a position to select the software development methodology, be sure to be knowledgeable about the choices so that an appropriate one can be selected for the project's needs.

Software architects use their expertise and experience to work with project management on estimates for tasks, project planning, and controlling and monitoring the project during its life cycle.

Due to communicating with a larger number of stakeholders and management, office politics is a reality...

Left arrow icon Right arrow icon

Key benefits

  • Enhance your skills to grow your career as a software architect
  • Design efficient software architectures using patterns and best practices
  • Learn how software architecture relates to an organization as well as software development methodology

Description

The Software Architect’s Handbook is a comprehensive guide to help developers, architects, and senior programmers advance their career in the software architecture domain. This book takes you through all the important concepts, right from design principles to different considerations at various stages of your career in software architecture. The book begins by covering the fundamentals, benefits, and purpose of software architecture. You will discover how software architecture relates to an organization, followed by identifying its significant quality attributes. Once you have covered the basics, you will explore design patterns, best practices, and paradigms for efficient software development. The book discusses which factors you need to consider for performance and security enhancements. You will learn to write documentation for your architectures and make appropriate decisions when considering DevOps. In addition to this, you will explore how to design legacy applications before understanding how to create software architectures that evolve as the market, business requirements, frameworks, tools, and best practices change over time. By the end of this book, you will not only have studied software architecture concepts but also built the soft skills necessary to grow in this field.

Who is this book for?

The Software Architect’s Handbook is for you if you are a software architect, chief technical officer (CTO), or senior developer looking to gain a firm grasp of software architecture.

What you will learn

  • Design software architectures using patterns and best practices
  • Explore the different considerations for designing software architecture
  • Discover what it takes to continuously improve as a software architect
  • Create loosely coupled systems that can support change
  • Understand DevOps and how it affects software architecture
  • Integrate, refactor, and re-architect legacy applications

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 30, 2018
Length: 594 pages
Edition : 1st
Language : English
ISBN-13 : 9781788627672
Category :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Aug 30, 2018
Length: 594 pages
Edition : 1st
Language : English
ISBN-13 : 9781788627672
Category :

Packt Subscriptions

See our plans and pricing
Modal Close icon
₹800 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
₹4500 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just ₹400 each
Feature tick icon Exclusive print discounts
₹5000 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just ₹400 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 12,736.97
Big Data Architect???s Handbook
₹4542.99
Software Architect’s Handbook
₹4096.99
Architectural Patterns
₹4096.99
Total 12,736.97 Stars icon
Banner background image

Table of Contents

18 Chapters
The Meaning of Software Architecture Chevron down icon Chevron up icon
Software Architecture in an Organization Chevron down icon Chevron up icon
Understanding the Domain Chevron down icon Chevron up icon
Software Quality Attributes Chevron down icon Chevron up icon
Designing Software Architectures Chevron down icon Chevron up icon
Software Development Principles and Practices Chevron down icon Chevron up icon
Software Architecture Patterns Chevron down icon Chevron up icon
Architecting Modern Applications Chevron down icon Chevron up icon
Cross-Cutting Concerns Chevron down icon Chevron up icon
Performance Considerations Chevron down icon Chevron up icon
Security Considerations Chevron down icon Chevron up icon
Documenting and Reviewing Software Architectures Chevron down icon Chevron up icon
DevOps and Software Architecture Chevron down icon Chevron up icon
Architecting Legacy Applications Chevron down icon Chevron up icon
The Soft Skills of Software Architects Chevron down icon Chevron up icon
Evolutionary Architecture Chevron down icon Chevron up icon
Becoming a Better Software Architect Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.4
(10 Ratings)
5 star 70%
4 star 20%
3 star 0%
2 star 0%
1 star 10%
Filter icon Filter
Top Reviews

Filter reviews by




Trace Jun 27, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I’m a software developer who has spent many years developing all kinds of applications. I wanted a book that would explore the many considerations and decisions that software architects need to make and the techniques they use to go about their job. This book did not disappoint and was well worth the purchase.The book does not focus on any particular programming language or development framework (although there are some code samples in C# just to explain some points). Instead, the book concentrates on software architecture and development in general and I appreciated the fact that it did not emphasize a specific technology that I may not even be using. Because of this, I think this book has a wide appeal and will be relevant for many software developers and architects.As an experienced developer, there were some topics that I was already familiar with and there were others that were new to me, which was expected. I found the book to be very insightful and it gave me new ideas, things to look for, and concepts that I can apply to my projects. The book is large and has good coverage of many topics. As you can imagine, some of the topics could be the subject of an entire book (or books) all by themselves, and this book inspired me to explore some of those topics even further.Highly recommended.
Amazon Verified review Amazon
Hicham Jan 21, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Great book thanks
Amazon Verified review Amazon
Daniel Correa Jan 08, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is a great book which contains a lot of concepts and ideas.This book gives you a ride around the main elements that a software architect should consider and learn. This is great for people who already have a little of experience developing software. Because it show you the important things to consider when you are an architect, or part of a software project.It gives you recommendations about: maintenance, requirements, quality attributes, tests, software architectures and patterns, software principles, DevOps, cross-cutting concers, security, working on a team, leading a team, soft skills, and many more.However, there are many topics which contains only a paragraph. So, this book is more like a guide to go to learn different topics (in deep) in other books.CONS:There are only a few examples (codes). So, maybe this book is not recommend for novice developers or architects. Not recommended for people which are looking for a practical book.For example, it gives you a lot of recommendations about how to implement a MVC architecture or micro-services, but you never will find a piece of code which shows a real MVC architecture.
Amazon Verified review Amazon
Jesus B. Nov 12, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The author is very experienced and he has a wonderful way to explain very complex and details of this profession in a very simplistic matter. It was a lot of help for me, and I think anybody that it is thinking seriously to become more proficient on there software planning and Software Architect, should take a deep read on this book. :)
Amazon Verified review Amazon
Donald E Lutz Oct 23, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Covered the full life cycle of software architecture.
Amazon Verified review Amazon