Thinking Architecturally
by Nathaniel Schutta
Released June 2018
Publisher(s): O’Reilly Media, Inc.
ISBN: 9781492034414
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Book Description
New software technology appears every year. Like clockwork, another language, library, pattern, or approach will arrive on the scene with plenty of hype and developer enthusiasm. As someone whose job requires making architectural decisions, you need to evaluate these new technologies with an eye toward the inevitable trade-offs before deciding if a new framework or language is right for your project.
In this ebook, solution architect Nathaniel Schutta guides tech leads, practicing architects, and both senior and junior developers through the process of appraising promising new technologies. Recognizing how today’s tech is informed by the past is a key part—some approaches that didn’t work years ago might now have all the ingredients to succeed. You’ll learn how to make effective decisions regarding the use of new tech solutions and explore the value of fitness functions to ensure that your ultimate choice is reflected in the codebase.
Get guidelines, techniques, and advice for evaluating new tools and technologies
Determine the unique needs of your project before deciding which technology to use
Examine the codebase, documentation, testability, and other criteria when evaluating new tools
Learn approaches for introducing new technology to skeptical people in your company and on your team
Manage the quality attributes of your system once new technology is introduced
Learn practical techniques to stay current in an ever-evolving industry
Table of contents
Preface
Acknowledgments
1. Technology Changes
Haven’t We Seen This Before?
Learn From the Past
Mistakes Were Made…But Not By Me
The Technology Merry-Go-Round
The Futility of Predictions
The Value of Legacy Skillsets
Legacy Skillsets Can be Valuable Too!
Katas
2. Thinking Strategically
Keeping Up With New Technologies
Finding Focus
Litmus Tests
Cut the Cruft
The A/B Stream
Making a Plan
Schedule Individual Learning
Learn as a Team
Take Advantage of Dead Spaces
Leveraging Your Network
Staying Current
Katas
3. Evaluating Pros and Cons
Evaluating Tradeoffs
Some Risks are More Equal Than Others
Ruler for a Day
The Technology Hype Cycle
Picking the Right Tool
Choosing Wisely
&& ! ||
Katas
4. Evaluating and Choosing Technologies
Evaluation Criteria
The Spreadsheet Approach
Proof of Concept
Politics
Evaluation in Name Only
Case Study: Angular Versus React
What Should You Choose?
Katas
5. Introducing Technologies
Mitigating Change
Crawl, Walk, Run
The Hammer Versus the Ninja
Exerting Influence
Navigating Resistance
Marketing Your Ideas
Katas
6. Maintaining Technologies
Quality Attributes
Discovering Quality Attributes
Ranking Quality Attributes
Documenting Quality Attributes
Connecting Quality Attributes to Decisions
Establishing Principles
Evolutionary Architecture
Fitness Functions
Katas
7. Conclusion