Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Software Architecture for Busy Developers
Software Architecture for Busy Developers

Software Architecture for Busy Developers: Talk and act like a software architect in one weekend

eBook
$29.99
Paperback
$38.99
Audiobook
$48.99
Subscription
Free Trial
Renews at $19.99p/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
Table of content icon View table of contents Preview book icon Preview Book

Software Architecture for Busy Developers

Chapter 1: Introducing Software Architecture

In this chapter, I will introduce the subject of software architecture. My purpose is to help you understand my vision of software architecture and how I will tackle this topic throughout the book.

More specifically, this chapter covers the following topics:

  • Software architecture in a nutshell
  • A software architect's duties
  • Introducing the different architecture disciplines
  • Positioning software architecture within the global architecture landscape

By the end of the chapter, you should have a better grip on software architecture and a better idea of how this book will walk you through your software architecture journey.

Software architecture in a nutshell

However rich the literature is on the topic, it's not so easy to find a common definition of software architecture. We as architects like to decouple things, so let's decouple the words software and architecture. Starting with software, we can give this broad definition: computer programs. Our second word, architecture, can be defined as the art of designing buildings, houses, and the like. If we extrapolate a bit, we could define software architecture as the art of designing computer programs. This definition sounds very broad.

Rest assured, we can evacuate hardware from the equation because it represents the machines themselves. Phew—this should make our task easier, although we are left with everything that runs on a piece of hardware, which remains extremely vast.

Searching for software architecture on Google reveals about 262,000 results, which is very impressive. So many results probably mean a lot of different definitions and a lack of a common understanding of what software architecture is all about. The same query on Google Images does not bring up a single diagram that could help up figure out what software architecture is.

Given the diversity of definitions, I will provide my own, although I don't claim to have the absolute truth. I will start by tying software architecture to the Architecture Tradeoff Analysis Method (ATAM), which we will see in Chapter 3, Understanding ATAM and the Software Quality Attributes. In a nutshell, ATAM consists of evaluating different quality attributes—such as performance, availability, reliability, and so on—of a piece of software. Some of these attributes are code-related, whereas some are infrastructure- or security-related.

Although there is no single definition of software architecture, one thing is absolutely certain: a software architect should be acquainted with ATAM. Another thing that appears as an emerging consensus is that the role of a software architect is tightly coupled with the actual development of an application, and I share this viewpoint. This is how Wikipedia (https://en.wikipedia.org/wiki/Software_architect) defines software architecture, but for me, software architecture goes far beyond mere coding, and that is what you will find out while reading this book. Let's now look at what a software architect's job description might look like.

A software architect's duties

Sometimes, a good job description helps understand the tasks and duties pertaining to a given position. Here again, looking for such descriptions on the web gives many different results, but this is what I think are the responsibilities of a software architect:

  • Addressing both functional requirements (FRs) and non-functional requirements (NFRs): As you know, FRs are the primary trigger to design a solution. Whether the solution/service is designed for the business or for the Information Technology (IT) department itself, you make your business case and then start the design work. NFRs (availability, security, disaster recovery (DR), and so on) are not always expressed but are also particularly important and are often the most challenging part.

    This book will help you address these requirements in a structured way. Addressing both FRs and NFRs is also the duty of a solution architect, so it can be debated whether this should fall under the duties of a software architect or not. I think that a good software architect is able to address FRs. An excellent software architect can address both while addressing FRs in a more in-depth way than a solution architect.

  • Providing technical standards, coding guidelines, and design patterns to developers: Functional features are an integral part of the code base. It's a no-brainer that good design patterns usually improve the resulting quality of a solution. As a software architect, you must understand them and you must be able to sense which pattern is valuable in your own context. We will dive into design patterns in Chapter 5, Design Patterns and Clean Architecture, as well as in Chapter 6, Impact of the Cloud on the Software Architecture Practice, where we will explore cloud and cloud-native patterns.
  • Interacting with stakeholders to ensure developed applications land smoothly in the company's landscape: A successful software architect understands multilateral concerns. They are able to interact with security, infrastructure, solution, and enterprise architects, as well as with developers.

    This book will give you the essential keys to achieve T-shaped skills, which means being an expert in a given field (the base of the T) but also knowledgeable across disciplines (the top of the T). To reinforce your T top bar, we will explore some fundamentals of enterprise architecture (EA), which is a common practice in large organizations, and we will touch on some infrastructure and security typical frameworks. However, I have to manage your expectations here, as the book will only introduce these topics.

  • Performing an active role in the solution delivery process: A close follow-up with the development teams and a good understanding of waterfall and agile methodologies will undoubtedly lead to a smoother delivery.
  • Proactive technology watching to identify new trends and paradigm shifts: Technology is an enabler. Most digital native companies managed to leverage technology wisely and they became Netflix, Facebook, and the like. A good software architect must permanently keep an eye on the ever-evolving technology landscape.

More importantly, a good software architect must exercise good judgment. They should not blindly apply framework x or y, nor pattern a or b. They must contextualize and apply their skills wisely. Let's now discover the various architecture disciplines.

Introducing the different architecture disciplines

There are so many types of architects that we can quickly get lost and wonder who does what in an enterprise. Because this understanding is an essential asset, let's start by reviewing the different disciplines, and I will position software architecture in the mix in the next section. The following diagram shows some of the most common architecture disciplines and their main duties:

Figure 1.1 – Architecture disciplines: main duties

Figure 1.1 – Architecture disciplines: main duties

From top to bottom of the preceding diagram, you can find the main duties by order of priority. Not every discipline is represented, but the main ones are. A noticeable exception, however, is cloud architecture, which we will talk about later. We will discuss some of the related frameworks in our next chapter. Let's now focus on the scope of each discipline.

EA

Enterprise architects oversee the IT and business strategies, and they make sure every IT initiative is in line with the enterprise business goals. They directly report to IT leadership and are sometimes scattered across business lines. They are also the guardians of building coherent and consistent overall IT landscapes for their respective companies.

Most of the time, enterprise architects have a holistic view of the IT landscape and are not concerned with technicalities. Their primary focus is to identify and design business capabilities. They are helped by business architects, who are usually also a part of the EA function. Their role consists of defining the strategic orientations and making sure their standards percolate across teams. They usually work with The Open Group Architecture Framework (TOGAF) to define the processes and with ArchiMate to build visual models of the different domains. In some organizations, the EA function can assign a dedicated enterprise architect for large projects or programs.

Solution architecture (SolAr)

Solution architects help different teams to build solutions. They have so-called T-shaped skills because they oversee the design of a solution end to end (E2E). They mostly focus on NFRs to ensure a solution is fit for use. As with software architects, they also look at FRs (ensuring that they are fit for purpose), but they are not involved in the actual development of the features.

Infrastructure architecture (IA)

Infrastructure architects focus on building and operating specific application infrastructures and platforms that are shared across workloads. One of their duties is to keep the lights on, to ensure commodity services such as mail systems and workplace-related services are up and running. Infrastructure is organized around IT Service Management (ITSM), which most of the time is based on the IT Infrastructure Library (ITIL). The infrastructure department also provides a service-desk function. Many organizations have started to move (or have moved already) to ServiceNow, a more modern way to handle ITSM.

Security architecture (SA)

In this hyper-connected world, the importance of cybersecurity has grown a lot. SA deals with regulatory or in-house compliance requirements. In these modern times, more and more workloads are deployed to the cloud, which often emphasizes security concerns because many organizations are still in the middle of their cloud journey, or on the verge of starting it.

The security field is split into different sub-disciplines such as security operations centers (SOCs), the management of specialized security hardware and software, Identity and Access Management (IAM), and overall security governance, also known as the security posture. In medium-to-large organizations, you can find blue (defend) and red (attack) teams, composed of technical security experts. Together with the SOC, they evaluate the robustness of a business's overall resilience. The SA practice is usually managed by a chief information security officer (CISO), although the role is sometimes also carried out by a chief information officer (CIO).

Depending on the industry you are in, security is typically one of the lesser-known NFRs, not well understood by business, which leads to a complete lack of business requirements in that matter. Security-awareness programs are often required to alert businesses about the importance of security. In a nutshell, the way the security practice is conducted heavily depends on the culture, the risk appetite, and the organization's DNA.

Data architecture (DA)

Data architects oversee the entire data landscape. They mostly focus on designing data platforms for storage, insights, and advanced analytics. They deal with data modeling, data quality, and business intelligence (BI), which consists of extracting valuable insights from the data to realize substantial business benefits. A well-organized data architecture should ultimately deliver the data-information-knowledge-wisdom (DIKW) pyramid, as shown in the following diagram:

Figure 1.1 – Architecture disciplines: main duties

Figure 1.2 – DIKW pyramid

Organizations have a lot of data, from which they try to extract valuable information and knowledge and gain wisdom over time. The more you climb the pyramid, the more value there is. Consider the following scenario to understand the DIKW pyramid:

Figure 1.3 – DIKW pyramid example

Figure 1.3 – DIKW pyramid example

This shows us that, among other things, the work of a data architect is to help organizations learn from their data.

Application architecture (AA)

Application architects focus on building features that are requested by the business. They make sure the developed application is fit for purpose. They enforce coding patterns and guidelines to make maintainable and readable applications. Their primary concern is to integrate with the various frameworks and ecosystems. Their role resembles the software architect one but is, in my opinion, more limited. Let's now position software architecture within the various disciplines.

Positioning software architecture within the global architecture landscape

Given the introduction outlined in the previous sections, I will position software architecture very closely to the actual development of a solution, but I will not limit it to only that.

The following screenshot shows how I position the software architecture practice:

Figure 1.4 – Software architecture within the architecture landscape

Figure 1.4 – Software architecture within the architecture landscape

Software architects should ideally be knowledgeable in all the topics listed in the shapes with a dark background in Figure 1.4. As stated before, software architects will be less focused on NFRs (the shape with dotted lines in Figure 1.4) than a solution architect but should still know the basics. The same consideration applies to an EA practice. Let's now recap on this first chapter.

Summary

In this chapter, I set the scene by explaining my understanding of software architecture, which is based on real-world experience within different companies and industries. We reviewed the different architecture disciplines when positioning software architecture, and I wanted you to realize that you need to know a little bit of all the other disciplines to be a successful software architect. I hope that you understand the value proposition of this book and that you are ready to embark on this software architecture adventure.

In the next chapter, I will slightly touch on some of the typical frameworks used in the different disciplines. This will help you speak the vocabulary of your stakeholders to become an even better software architect.

Left arrow icon Right arrow icon
Download code icon Download Code

Description

Are you a seasoned developer who likes to add value to a project beyond just writing code? Have you realized that good development practices are not enough to make a project successful, and you now want to embrace the bigger picture in the IT landscape? If so, you're ready to become a software architect; someone who can deal with any IT stakeholder as well as add value to the numerous dimensions of software development. The sheer volume of content on software architecture can be overwhelming, however. Software Architecture for Busy Developers is here to help. Written by Stéphane Eyskens, author of The Azure Cloud Native Mapbook, this book guides you through your software architecture journey in a pragmatic way using real-world scenarios. By drawing on over 20 years of consulting experience, Stéphane will help you understand the role of a software architect, without the fluff or unnecessarily complex theory. You'll begin by understanding what non-functional requirements mean and how they concretely impact target architecture. The book then covers different frameworks used across the entire enterprise landscape with the help of use cases and examples. Finally, you'll discover ways in which the cloud is becoming a game changer in the world of software architecture. By the end of this book, you'll have gained a holistic understanding of the architectural landscape, as well as more specific software architecture skills. You'll also be ready to pursue your software architecture journey on your own - and in just one weekend!

Who is this book for?

This book is for developers who want to move up the organizational ladder and become software architects by understanding the broader application landscape and discovering how large enterprises deal with software architecture practices. Prior knowledge of software development is required to get the most out of this book.

What you will learn

  • Understand the roles and responsibilities of a software architect
  • Explore enterprise architecture tools and frameworks such as The Open Group Architecture Framework (TOGAF) and ArchiMate
  • Get to grips with key design patterns used in software development
  • Explore the widely adopted Architecture Tradeoff Analysis Method (ATAM)
  • Discover the benefits and drawbacks of monoliths, service-oriented architecture (SOA), and microservices
  • Stay on top of trending architectures such as API-driven, serverless, and cloud native

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 15, 2021
Length: 174 pages
Edition : 1st
Language : English
ISBN-13 : 9781801079853
Vendor :
Google
Category :
Languages :

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

Product Details

Publication date : Oct 15, 2021
Length: 174 pages
Edition : 1st
Language : English
ISBN-13 : 9781801079853
Vendor :
Google
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 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
$199.99 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 $5 each
Feature tick icon Exclusive print discounts
$279.99 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 $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 132.97
Enterprise DevOps for Architects
$54.99
Embracing Microservices Design
$38.99
Software Architecture for Busy Developers
$38.99
Total $ 132.97 Stars icon

Table of Contents

13 Chapters
Section 1: Introduction Chevron down icon Chevron up icon
Chapter 1: Introducing Software Architecture Chevron down icon Chevron up icon
Section 2: The Broader Architecture Landscape Chevron down icon Chevron up icon
Chapter 2: Exploring Architecture Frameworks and Methodologies Chevron down icon Chevron up icon
Chapter 3: Understanding ATAM and the Software Quality Attributes Chevron down icon Chevron up icon
Section 3: Software Design Patterns and Architecture Models Chevron down icon Chevron up icon
Chapter 4: Reviewing the Historical Architecture Styles Chevron down icon Chevron up icon
Chapter 5: Design Patterns and Clean Architecture Chevron down icon Chevron up icon
Section 4: Impact of the Cloud on Software Architecture Practices Chevron down icon Chevron up icon
Chapter 6: Impact of the Cloud on the Software Architecture Practice Chevron down icon Chevron up icon
Section 5: Architectural Trends and Summary Chevron down icon Chevron up icon
Chapter 7: Trendy Architectures and Global Summary 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
(16 Ratings)
5 star 56.3%
4 star 31.3%
3 star 6.3%
2 star 6.3%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Evaldas Zaranka Oct 15, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
A comprehensive book covering all the fundamental topics in a logical and structured format. It also contains core concepts about architecture frameworks, designs and patterns. Very useful for people who want to understand, improve and learn architecture frameworks better.I find the book straight to the point, easy to read, and covering multiple complex s architecture frameworks in a very clear and understandable way starting from the introduction and after scaling up.It allows people to understand how large enterprises interact with software architecture and which approach to take. I would not recommend this book for beginners because prior knowledge in the field is highly advisable so people can take most of the book.
Amazon Verified review Amazon
William Hall Oct 21, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Software Architecture for Busy Developers is very well written and concise, and uses real world examples to make it very easy to understand the conecpts presented,whether you are a seasoned developer or just getting started. If you are looking to progress from coding to a position of more responsibility in the field ofsoftware development, this book is a must have. Learning to see the 30,000 foot view of the IT field is not something that most developers are aware of, but itis essential to be able to see the big picture as it relates to software development if you are wanting to move up to a more challenging position in your company.Stephane will guide you step by step (or line by line) as the case may be, to help you to be able to be successful in your software architecture career from the start. As always, Packt delivers with another valuable resource for software developers.
Amazon Verified review Amazon
Tiny Oct 15, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The title for this work implies that you are getting the shortcut into something difficult. Eyskens doesn’t provide any shortcuts that I saw, more like the wave tops on the deeper ocean involved with software architecture. The book covers critical aspects of architecture from strategic design, to the actual .Net implementation of various concepts. Like all good software examples, the work links to a GitHub repo where you can find code examples to run and apply. The term introduction is a misnomer, a relatively short work at only 174 pages, the author jumps right into the details, beginning with an overview, and then shifting to building your own use-cases in line with one of the numerous outlined standards like TOGAF or ITIL through Archimate, a visualization tool, and then, as if either of those weren’t enough for a book, hops right into deciding between options with ATAM – the Architecture Tradeoff Analysis Method. The book concludes through demonstrating architectural principles with .Net, visiting some cloud implementation standards, and then helping the reader set up through own Kubernetes and microservices cluster to further practice architecture. Wow. So much packed into so few pages. One complaint, there are a lot of acronyms in this book. Picking a page at random (page 60), one sees SOA, BFF, gRPC, REST, HTTP/1, HTTP/2, DDD, B2C,B2B and B2E. While these aren’t bad, at times I wanted a running glossary to go back and check examples. The simplified explanations for architecture concepts like SOLID, and GoF (Gang of Four) are essential, easy to find, and even easier to understand. If you work in design, as a developer or architect, this should be in your list.
Amazon Verified review Amazon
AMol SOlanki Dec 05, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book will benefit anyone who has worked as a S/W developer and aspires to become a software Architect.This is an awesome book to get architectural guidance at any career point. It has been written in a comprehensive and simplistic way and can greatly help in the understanding of the subject. This book explores the popular frameworks and design patterns. It's also worth mentioning that numerous code examples are provided and can also be downloaded.The explanations given are very easy to understand and helps one to grasp the complex technical concepts in lot simpler manner. I felt more like talking to person rather than reading a book and enjoyed.The book mainly covers the breadth of technical knowledge required for a S/W architect role.
Amazon Verified review Amazon
SFAmyFinds Nov 01, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I received a copy of this book from Packt publishing for review.As someone who worked in Sales her whole career, then successfully transitioned to a tech career after age 40, being 'technical' wasn't an attribute that I used to describe myself. Working in IT, I always felt out of my league when speaking to developers or those with programming background. I took it upon myself over the years to study OOP and basic architecture, but still felt in over my head.This book changed all of my previous connotations.With this short book, I all the information I picked up via self study, and in real life projects has finally clicked! The way Stephane Eyskens wrote this book is truly helpful for "non-technical" and technical people alike. The examples within are real life scenarios, and written in easy to understand language. I know have a much better idea of key design patterns and overall architecture frameworks. This is a welcomed addition to my library and one to which I can continually refer.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.