<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://bliki.brandonburk.com/snipsnap/rdf'>
    <s:Snip rdf:about='http://bliki.brandonburk.com/snipsnap/rdf#Rotting+Design+Awareness'
         s:cUser='brandon'
         s:oUser=''
         s:mUser='brandon'>
        <s:name>Rotting Design Awareness</s:name>
        <s:content>&#xD;&#xA;Bob Martin speaks of four main symptoms that indicate a software design is rotting.&#xD;&#xA;&#xD;&#xA;Reference: http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf&#xD;&#xA;&#xD;&#xA;1 4 Symptoms of Design Rot&#xD;&#xA;- Rigidity&#xD;&#xA;- Fragility&#xD;&#xA;- Immobility&#xD;&#xA;- Viscoscity&#xD;&#xA;&#xD;&#xA;1 Rigidity&#xD;&#xA;- Symptom&#xD;&#xA;-- Even a simple change causes cascading changes in dependent modules&#xD;&#xA;-- Changes take long periods of time&#xD;&#xA;- Effect&#xD;&#xA;-- Managers fear allowing changes, official rigidity sets in, adverse management policy&#xD;&#xA;&#xD;&#xA;1 Fragility&#xD;&#xA;- Symptom&#xD;&#xA;-- Even simple changes cause the software to break in many, sometimes unrelated places&#xD;&#xA;- Effect&#xD;&#xA;-- Every fix exacerbates the problem, the software becomes impossible to maintain&#xD;&#xA;-- Engineering loses credibility and trust by management and users&#xD;&#xA;&#xD;&#xA;1 Immobility&#xD;&#xA;- Symptom&#xD;&#xA;-- Software reuse brings too much non-related baggage&#xD;&#xA;- Effect&#xD;&#xA;-- Software is rewritten instead of reused&#xD;&#xA;&#xD;&#xA;1 Viscosity&#xD;&#xA;Design Viscosity&#xD;&#xA;- Symptom&#xD;&#xA;-- Design preserving changes are harder to employ than hacks (High Viscosity)&#xD;&#xA;- Effect&#xD;&#xA;-- It is easy to do the wrong thing but hard to do the right thing&#xD;&#xA;Environment Viscosity&#xD;&#xA;- Symptom&#xD;&#xA;-- Compile times take too long, version control check in takes too long, unit testing takes too long&#xD;&#xA;- Effect&#xD;&#xA;-- A slow development environment causes sub-optimal development decisions, (E.g. skip compile, check in rarely, test rarely)</s:content>
        <s:mTime>2007-04-11 00:44:09.0</s:mTime>
        <s:cTime>2007-02-10 01:31:13.0</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Design Principles'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Architecture Patterns'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Presentations and Talks'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Real World Maven'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Releasing with Maven'/>
                <rdf:li rdf:resource='#snipsnap-help'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#JavaOne 2007 Notes'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Notes on Domain Driven Design'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Lean Thinking'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Notes on Expert Systems'/>
                <rdf:li rdf:resource='http://bliki.brandonburk.com/snipsnap/rdf#Theory of Constraints'/>
                <rdf:li rdf:resource='#snipsnap-portlet-1'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
            </rdf:Bag>
        </s:snipLinks>
        <s:attachments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
    </s:Snip>
</rdf:RDF>

