Chapter 52. Record Your Rationale
Timothy High is a software architect with more than 15 years' experience with web, multitiered client-server, and application-integration technologies. He is currently working as a software architect for Sakonnet Technologies, a leader in Energy Trading and Risk Management (ETRM) software.

THERE IS MUCH DEBATE in the software development community about the value of documentation, especially with regard to the design of the software itself. The disagreements generally cluster around the perceived value of doing a "big upfront design," and the difficulties of maintaining design documentation synchronized with an ever-changing code base.
One type of documentation that ages well, doesn't require much effort, and almost always pays off is a record of the rationale behind decisions that are made regarding the software architecture. As explained in Mark Richards's axiom "Architectural Tradeoffs," the definition of a software architecture is all about choosing the right tradeoffs between various quality attributes, cost, time, and other factors. It should be made clear to you, your managers, developers, and other software stakeholders why one solution was chosen over another and what tradeoffs this entailed. (Did you sacrifice horizontal scalability in the name of reducing hardware and licensing costs? Was security such a concern that it was acceptable ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access