Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

97 Things Every Software Architect Should Know

Collective Wisdom from the Experts

by Richard Monson-Haefel, Kevlin Henney

97 Things Every Software Architect Should Know

Subscribe to new books via dBooks.org telegram channel

Join
DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects - including Neal Ford, Michael Nygard, and Bill de hOra - offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as:

- Don't Put Your Resume Ahead of the Requirements;
- Chances Are, Your Biggest Problem Isn't Technical;
- Communication Is King; Clarity and Leadership, Its Humble Servants;
- Simplicity Before Generality, Use Before Reuse;
- For the End User, the Interface Is the System;
- It's Never Too Early to Think About Performance.

To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading.

This open book is licensed under a Creative Commons License (CC BY). You can download 97 Things Every Software Architect Should Know ebook for free in PDF format (6.2 MB).

Table of Contents

1
Don't put your resume ahead of the requirements
2
Simplify essential complexity; diminish accidental complexity
3
Chances are your biggest problem isn't technical
4
Communication is King; Clarity and Leadership its humble servants
5
Architecting is about balancing
6
Seek the value in requested capabilities
7
Stand Up!
8
Skyscrapers aren't scalable
9
You're negotiating more often than you think.
10
Quantify
11
One line of working code is worth 50
12
There is no one-size-fits-all solution
13
It's never too early to think about performance
14
Application architecture determines application performance
15
Commit-and-run is a crime.
16
There Can be More than One
17
Business Drives
18
Simplicity before generality, use before reuse
19
Architects must be hands on
20
Continuously Integrate
21
Avoid Scheduling Failures
22
Architectural Tradeoffs
23
Database as a Fortress
24
Use uncertainty as a driver
25
Scope is the enemy of success
26
Reuse is about people and education, not just architecture
27
There is no 'I' in architecture
28
Get the 1000ft view
29
Try before choosing
30
Understand The Business Domain
31
Programming is an act of design
32
Time changes everything
33
Give developers autonomy
34
Value stewardship over showmanship
35
Warning, problems in mirror may be larger than they appear
36
The title of software architect has only lower-case 'a's; deal with it
37
Software architecture has ethical consequences
38
Everything will ultimately fail
39
Context is King
40
It's all about performance
41
Engineer in the white spaces
42
Talk the Talk
43
Heterogeneity Wins
44
Dwarves, Elves, Wizards, and Kings
45
Learn from Architects of Buildings
46
Fight repetition
47
Welcome to the Real World
48
Don't Control, but Observe
49
Janus the Architect
50
Architects focus is on the boundaries and interfaces
51
Challenge assumptions - especially your own
52
Record your rationale
53
Empower developers
54
It is all about the data
55
Control the data, not just the code
56
Don't Stretch The Architecture Metaphors
57
Focus on Application Support and Maintenance
58
Prepare to pick two
59
Prefer principles, axioms and analogies to opinion and taste
60
Start with a Walking Skeleton
61
Share your knowledge and experiences
62
Make sure the simple stuff is simple
63
If you design it, you should be able to code it.
64
The ROI variable
65
Your system is legacy, design for it.
66
If there is only one solution, get a second opinion
67
Understand the impact of change
68
You have to understand Hardware too
69
Shortcuts now are paid back with interest later
70
"Perfect" is the Enemy of "Good Enough"
71
Avoid "Good Ideas"
72
Great content creates great systems
73
The Business Vs. The Angry Architect
74
Stretch key dimensions to see what breaks
75
Before anything, an architect is a developer
76
A rose by any other name will end up as a cabbage
77
Stable problems get high quality solutions
78
It Takes Diligence
79
Take responsibility for your decisions
80
Don't Be a Problem Solver
81
Choose your weapons carefully, relinquish them reluctantly
82
Your Customer is Not Your Customer
83
It will never look like that
84
Choose Frameworks that play well with others
85
Make a strong business case
86
Pattern Pathology
87
Learn a new language
88
Don't Be Clever
89
Build Systems to be Zuhanden
90
Find and retain passionate problem solvers
91
Software doesn't really exist
92
Pay down your technical debt
93
You can't future-proof solutions
94
The User Acceptance Problem
95
The Importance of Consommé
96
For the end-user, the interface is the system
97
Great software is not built, it is grown

Book Details

Title
97 Things Every Software Architect Should Know
Subject
Computer Science
Publisher
O'Reilly Media
Published
2009
Pages
118
Edition
1
Language
English
ISBN13 Digital
9780596522698
ISBN10 Digital
059652269X
PDF Size
6.2 MB
License
CC BY

Related Books

97 Things Every SRE Should Know
Site reliability engineering (SRE) is more relevant than ever. Knowing how to keep systems reliable has become a critical skill. With this practical book, newcomers and old hats alike will explore a broad range of conversations happening in SRE. You'll get actionable advice on several topics, including how to adopt SRE, why SLOs matter, when y...
Scaling a Software Business
Software has changed the rules of the game. The world talks about the digitalization in industry and society – how the focus has shifted from producing tangible things towards software and services. This trend started many years ago, but is now affecting every company, whether it's a software company or not. There are many companies that hav...
The Essence of Software Engineering
This book includes contributions by leading researchers and industry thought leaders on various topics related to the essence of software engineering and their application in industrial projects. It offers a broad overview of research findings dealing with current practical software engineering issues and also pointers to potential future developme...
Agile Processes in Software Engineering and Extreme Programming
This open book constitutes the proceedings of the 21st International Conference on Agile Software Development, XP 2020, which was planned to be held during June 8-12, 2020, at the IT University of Copenhagen, Denmark. However, due to the COVID-19 pandemic the conference was postponed until an undetermined date.XP is the premier agile software devel...
Open Source Systems
This book constitutes the refereed proceedings of the 16th IFIP WG 2.13 International Conference on Open Source Systems, OSS 2020, held in Innopolis, Russia, in May 2020.* The 12 revised full papers and 8 short papers presented were carefully reviewed and selected from 42 submissions. The papers cover a wide range of topics in the field of free/l...
Pro Git
Pro Git, 2nd Edition is your fully-updated guide to Git and its usage in the modern world. Git has come a long way since it was first developed by Linus Torvalds for Linux kernel development. It has taken the open source world by storm since its inception in 2005, and this book teaches you how to use it like a pro. Effective and well-implemented v...