<story><title>Just Enough Software Architecture (2010)</title><url>https://www.georgefairbanks.com/book/</url></story><parent_chain></parent_chain><comment><author>refibrillator</author><text>&lt;i&gt;&amp;gt; project management risks: “Lead developer hit by bus” &lt;/i&gt;&lt;p&gt;&lt;i&gt;&amp;gt; software engineering risks: “The server may not scale to 1000 users” &lt;/i&gt;&lt;p&gt;&lt;i&gt;&amp;gt; You should distinguish them because engineering techniques rarely solve management risks, and vice versa.&lt;/i&gt;&lt;p&gt;It&amp;#x27;s not so rare in my experience. Code quality and organization, tests and documentation, using standard and well known tools - all of those would help both sides here.&lt;p&gt;That&amp;#x27;s why I&amp;#x27;ve had to invoke the &amp;quot;hit by bus&amp;quot; hypothetical so many times in my career with colleagues and bosses, because it&amp;#x27;s a forcing function for reproducible and understandable software.&lt;p&gt;Pro tip: use &amp;quot;win the lottery&amp;quot; instead to avoid the negative connotation of injury or death.</text></comment>
<story><title>Just Enough Software Architecture (2010)</title><url>https://www.georgefairbanks.com/book/</url></story><parent_chain></parent_chain><comment><author>breadwinner</author><text>Architecture for architecture&amp;#x27;s sake is the worst thing you can do because it unnecessarily increases complexity.&lt;p&gt;The ultimate goal of good architecture is cost reduction. If your architecture is causing you to spend more time developing and maintaining code then the architecture has failed.</text></comment>