97 Things Every Software Architect Should Know


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 (Nitin Borwankar)
  • Chances Are, Your Biggest Problem Isn’t Technical (Mark Ramm)
  • Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)
  • Simplicity Before Generality, Use Before Reuse (Kevlin Henney)
  • For the End User, the Interface Is the System (Vinayak Hegde)
  • It’s Never Too Early to Think About Performance (Rebecca Parsons)

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.

Table of Contents
Chapter 1. Don’t Put Your Resume Ahead of the Requirements
Chapter 2. Simplify Essential Complexity; Diminish Accidental Complexity
Chapter 3. Chances Are, Your Biggest Problem Isn’t Technical
Chapter 4. Communication Is King; Clarity and Leadership, Its Humble Servants
Chapter 5. Application Architecture Determines Application Performance
Chapter 6. Seek the Value in Requested Capabilities
Chapter 7. Stand Up!
Chapter 8. Everything Will Ultimately Fail
Chapter 9. You’re Negotiating More Often Than You Think
Chapter 10. Quantify
Chapter 11. One Line of Working Code Is Worth 500 of Specification
Chapter 12. There Is No One-Size-Fits-All Solution
Chapter 13. It’s Never Too Early to Think About Performance
Chapter 14. Architecting Is About Balancing
Chapter 15. Commit-and-Run Is a Crime
Chapter 16. There Can Be More Than One
Chapter 17. Business Drives
Chapter 18. Simplicity Before Generality, Use Before Reuse
Chapter 19. Architects Must Be Hands On
Chapter 20. Continuously Integrate
Chapter 21. Avoid Scheduling Failures
Chapter 22. Architectural Tradeoffs
Chapter 23. Database As a Fortress
Chapter 24. Use Uncertainty As a Driver
Chapter 25. Warning: Problems in Mirror May Be Larger Than They Appear
Chapter 26. Reuse Is About People and Education, Not Just Architecture
Chapter 27. There Is No ‘I’ in Architecture
Chapter 28. Get the 1,000-Foot View
Chapter 29. Try Before Choosing
Chapter 30. Understand the Business Domain
Chapter 31. Programming Is an Act of Design
Chapter 32. Give Developers Autonomy
Chapter 33. Time Changes Everything
Chapter 34. “Software Architect” Has Only Lowercase a’s; Deal with It
Chapter 35. Scope Is the Enemy of Success
Chapter 36. Value Stewardship Over Showmanship
Chapter 37. Software Architecture Has Ethical Consequences
Chapter 38. Skyscrapers Aren’t Scalable
Chapter 39. Heterogeneity Wins
Chapter 40. It’s All About Performance
Chapter 41. Engineer in the White Spaces
Chapter 42. Talk the Talk
Chapter 43. Context Is King
Chapter 44. Dwarves, Elves, Wizards, and Kings
Chapter 45. Learn from Architects of Buildings
Chapter 46. Fight Repetition
Chapter 47. Welcome to the Real World
Chapter 48. Don’t Control, but Observe
Chapter 49. Janus the Architect
Chapter 50. Architects’ Focus Is on the Boundaries and Interfaces
Chapter 51. Empower Developers
Chapter 52. Record Your Rationale
Chapter 53. Challenge Assumptions—Especially Your Own
Chapter 54. Share Your Knowledge and Experiences
Chapter 55. Pattern Pathology
Chapter 56. Don’t Stretch the Architecture Metaphors
Chapter 57. Focus on Application Support and Maintenance
Chapter 58. Prepare to Pick Two
Chapter 59. Prefer Principles, Axioms, and Analogies to Opinion and Taste
Chapter 60. Start with a Walking Skeleton
Chapter 61. It Is All About The Data
Chapter 62. Make Sure the Simple Stuff Is Simple
Chapter 63. Before Anything, an Architect Is a Developer
Chapter 64. The ROI Variable
Chapter 65. Your System Is Legacy; Design for It
Chapter 66. If There Is Only One Solution, Get a Second Opinion
Chapter 67. Understand the Impact of Change
Chapter 68. You Have to Understand Hardware, Too
Chapter 69. Shortcuts Now Are Paid Back with Interest Later
Chapter 70. “Perfect” Is the Enemy of “Good Enough”
Chapter 71. Avoid “Good Ideas”
Chapter 72. Great Content Creates Great Systems
Chapter 73. The Business Versus the Angry Architect
Chapter 74. Stretch Key Dimensions to See What Breaks
Chapter 75. If You Design It, You Should Be Able to Code It
Chapter 76. A Rose by Any Other Name Will End Up As a Cabbage
Chapter 77. Stable Problems Get High-Quality Solutions
Chapter 78. It Takes Diligence
Chapter 79. Take Responsibility for Your Decisions
Chapter 80. Don’t Be Clever
Chapter 81. Choose Your Weapons Carefully, Relinquish Them Reluctantly
Chapter 82. Your Customer Is Not Your Customer
Chapter 83. It Will Never Look Like That
Chapter 84. Choose Frameworks That Play Well with Others
Chapter 85. Make a Strong Business Case
Chapter 86. Control the Data, Not Just the Code
Chapter 87. Pay Down Your Technical Debt
Chapter 88. Don’t Be a Problem Solver
Chapter 89. Build Systems to Be Zuhanden
Chapter 90. Find and Retain Passionate Problem Solvers
Chapter 91. Software Doesn’t Really Exist
Chapter 92. Learn a New Language
Chapter 93. You Can’t Future-Proof Solutions
Chapter 94. The User Acceptance Problem
Chapter 95. The Importance of Consommé
Chapter 96. For the End User, the Interface Is the System
Chapter 97. Great Software Is Not Built, It Is Grown

Book Details

  • Paperback: 224 pages
  • Publisher: O’Reilly Media (February 2009)
  • Language: English
  • ISBN-10: 059652269X
  • ISBN-13: 978-0596522698
Download [1.1 MiB]

You may also like...

Leave a Reply