Download free course 97 Things Every Software Architect Should Know, pdf file on 118 pages by O'Reilly Media.
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.
Don't put your resume ahead of the requirements
Simplify essential complexity; diminish accidental complexity
Chances are your biggest problem isn't technical
Communication is King; Clarity and Leadership its humble servants
Architecting is about balancing
Seek the value in requested capabilities
Stand Up!
Skyscrapers aren't scalable
You're negotiating more often than you think.
Quantify
One line of working code is worth 50
There is no one-size-fits-all solution
It's never too early to think about performance
Application architecture determines application performance
Commit-and-run is a crime.
There Can be More than One
Business Drives
Simplicity before generality, use before reuse
Architects must be hands on
Continuously Integrate
Avoid Scheduling Failures
Architectural Tradeoffs
Database as a Fortress
Use uncertainty as a driver
Scope is the enemy of success
Reuse is about people and education, not just architecture
There is no 'I' in architecture
Get the 1000ft view
Try before choosing
Understand The Business Domain
Programming is an act of design
Time changes everything
Give developers autonomy
Value stewardship over showmanship
Warning, problems in mirror may be larger than they appear
The title of software architect has only lower-case 'a's; deal with it
Software architecture has ethical consequences
Everything will ultimately fail
Context is King
It's all about performance
Engineer in the white spaces
Talk the Talk
Heterogeneity Wins
Dwarves, Elves, Wizards, and Kings
Learn from Architects of Buildings
Fight repetition
Welcome to the Real World
Don't Control, but Observe
Janus the Architect
Architects focus is on the boundaries and interfaces
Challenge assumptions - especially your own
Record your rationale
Empower developers
It is all about the data
Control the data, not just the code
Don't Stretch The Architecture Metaphors
Focus on Application Support and Maintenance
Prepare to pick two
Prefer principles, axioms and analogies to opinion and taste
Start with a Walking Skeleton
Share your knowledge and experiences
Make sure the simple stuff is simple
If you design it, you should be able to code it.
The ROI variable
Your system is legacy, design for it.
If there is only one solution, get a second opinion
Understand the impact of change
You have to understand Hardware too
Shortcuts now are paid back with interest later
"Perfect" is the Enemy of "Good Enough"
Avoid "Good Ideas"
Great content creates great systems
The Business Vs. The Angry Architect
Stretch key dimensions to see what breaks
Before anything, an architect is a developer
A rose by any other name will end up as a cabbage
Stable problems get high quality solutions
It Takes Diligence
Take responsibility for your decisions
Don't Be a Problem Solver
Choose your weapons carefully, relinquish them reluctantly
Your Customer is Not Your Customer
It will never look like that
Choose Frameworks that play well with others
Make a strong business case
Pattern Pathology
Learn a new language
Don't Be Clever
Build Systems to be Zuhanden
Find and retain passionate problem solvers
Software doesn't really exist
Pay down your technical debt
You can't future-proof solutions
The User Acceptance Problem
The Importance of Consommé
For the end-user, the interface is the system
Great software is not built, it is grown