{"id":9,"date":"2004-06-30T13:00:56","date_gmt":"2004-06-30T20:00:56","guid":{"rendered":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/?p=9"},"modified":"2004-06-30T13:00:56","modified_gmt":"2004-06-30T20:00:56","slug":"time-and-money-must-be-part-of-an-it-architecture-recommendation","status":"publish","type":"post","link":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/2004\/06\/30\/time-and-money-must-be-part-of-an-it-architecture-recommendation\/","title":{"rendered":"Time and Money MUST be part of an IT architecture recommendation"},"content":{"rendered":"<p>Why \u2013 good architecture is good architecture right?  I don\u2019t ever remember the advanced OO design and analysis courses I\u2019ve taken covering cost as part of their curriculum.  OO, Design Patterns are supposed to be universal.  The scope of the project shouldn\u2019t matter \u2013 encapsulating data is good, no matter what!<\/p>\n<p>GOOD ARCHITECTURE IS GOOD ARCHITECTURE NO MATTER THE CONTEXT, right?<\/p>\n<ul>\n<li>That\u2019s what the engineers say.\n<li>That\u2019s what computer science and programming books teach us.\n<li>As a practitioner of good OO I used to evangelize that.\n<li>Academics and architects say that. <\/ul>\n<p>How would one arrive at the conclusion that good architecture concepts, such as encapsulation, polymorphism, etc are good architectural concepts regardless of the context?  We must FIRST look at the <strong>definition of what GOOD ARCHITECTURE is.<\/strong><\/p>\n<table border=\"1\">\n<tr>\n<td>ACCORDING TO WHOM<\/td>\n<td>DEFINITION OF GOOD ARCHITECTURE<\/td>\n<td>EXAMPLES<\/td>\n<\/tr>\n<tr>\n<td>ENGINEER<\/td>\n<td>A collection of systems, programs, data that supports leading application and system development methodologies, concepts, patterns, and leading thinkers to minimize defects and increase reliability and extensibility<\/td>\n<td>Polymorphism, encapsulation, web services, component based architecture, standards based development, etc.<\/td>\n<\/tr>\n<tr>\n<td>CEO\/SHAREHOLDER (BIZ)<\/td>\n<td>Capital investment(of time\/money) to: <\/p>\n<ul>\n<li>decrease deployment and maintenance costs and increase reliability\n<li>decrease time to market for internal and external applications<\/ul>\n<\/td>\n<td>Virtual Clusters, enterprise monitoring, standardize on J2EE, investing in coding standards, building infrastructure services and components<\/td>\n<\/tr>\n<\/table>\n<p>Fundamentally these are not in opposition.  They are complementary and hardly ever are they directly opposed.  The engineers view has pieces that will enable many of the BIZ requirements for good architecture.  If they line up, and they are mostly in line and are complementary, <strong>when might they be in conflict?<\/strong><\/p>\n<p>BIZ users evaluate their capital expense in a variety of methods\u2026 Nearly all boil down to a very simple question of ROI.  What is the <strong>benefit to me over time<\/strong> if I spend this money today?  The strategy will be (no real surprise here), to invest capital that will have maximize benefit and minimal investment (do more with less).  There is no shortage of the differing calculations, tweaks, estimations involved in this process.<\/p>\n<p>So let us say that as an engineer or an organization engaged in commerce (ie, an IT department at a corporation) that given there are <strong>no motives for academic excellence or intellectual achievement<\/strong> that the true definition of GOOD ARCHITECTURE outside those endeavors is that of the BIZ:<\/p>\n<ul>\n<li>Decrease costs\n<li>Increase reliability\n<li>Decrease time to market for new technology<\/ul>\n<p>Again, <strong>the engineers view is not in direct contradiction<\/strong>.  They line up quite nicely and indeed are mostly congruent.  Good engineering principles, from an academic perspective, can have immense benefits to a business including decreased costs, increased reliability, and shorter implementation times.<\/p>\n<p>Let us, for the sake of clarity, label these two camps that are nearly always in agreement the <strong>Academic<\/strong>(predominant view of an engineer) and <strong>Applied<\/strong>(view of a business owner or executive management) architectures.<\/p>\n<p>Yeah&#8230; but you promised to tell us when they are in conflict&#8230; We\u2019re getting there&#8230;<\/p>\n<p>Ok, so when might an architectural decision be good Applied architecture but bad Academic architecture?  Let\u2019s take a practical example:<\/p>\n<p>Two particular architectures supporting two separate methods (A &amp; B) for producing widgets:<\/p>\n<ul>\n<li>METHOD A : Requires X staff to produce Y widgets.  Rates an 8.5 on an abstract ACADEMIC QUALITY SCALE.\n<li>METHOD B : Requires X-10% staff to produce Y widgets.  Rates a 9.5 on the ACADEMIC QUALITY SCALE.\n<\/ul>\n<p>Let\u2019s look at some example numbers.  There is a proposal to expend capital C (10k\/year) on architecture\/infrastructure to enable method B.  X is 5k per year.<\/p>\n<p>The engineer inherently evaluates on the ACADEMIC quality, and straightforwardly evaluates (according their engineer precepts) that CAPITAL C is money well spent on GOOD ARCHITECTURE because it increases the academic quality and saves 5% on X per year.<\/p>\n<p>The biz evaluates on the APPLIED model, looking for ROI.  In this case, it would take 20 years to recoup the cost of the capital with no increased revenue (still Y widgets).  In this example the cost required to implement method B, while significantly improving productivity and the academic quality of the architecture, is actually greater than the benefit.  In this case, doing the right thing (from an academic perspective) is actually a bad architecture based on the BIZ definition.<\/p>\n<p>In cases where the projected COST OF BAD ACADEMIC QUALITY (decreased output, slower response times, difficult QA periods etc) is less than the estimated\/projected COST SAVINGS OR BENEFIT from the invested capital in the GOOD ACADEMIC QUALITY ARCHITECTURE then it\u2019s a better business decision to go for poor academic quality.<\/p>\n<p>GET TO A POINT!!!<\/p>\n<p>I\u2019m not saying engineers striving for good architectural concepts is bad.  It\u2019s noble in precept and may also make great business sense.  One can\u2019t put a solution up on a white board and say, trust me, it\u2019s good architecture because depending on what your IT charter is, it might not actually be.  You have to prove it \u2013 add projects estimates, efficiencies, use statistics from trade organizations.  Tell the people funding the cost of the shiny well tuned machine that it\u2019s in their best interest because they\u2019ll get 30% more application throughput, 30% reduction in time to delivery for requests, 75% cost of maintaining systems X,Y, and Z.<\/p>\n<p><em>UPDATE: I was thinking it would be prudent to point out that I&#8217;ve observed the most successful implementations of sound engineering techniques has always been done by groups of people who fundamentally understand the concepts, where they are currently are, where they want to go, and then just consistently and opportunistically &#8220;realize&#8221; that vision through projects over time.  If you see opportunities to make things better; do well.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why \u2013 good architecture is good architecture right? I don\u2019t ever remember the advanced OO design and analysis courses I\u2019ve taken covering cost as part of their curriculum. OO, Design Patterns are supposed to be universal. The scope of the project shouldn\u2019t matter \u2013 encapsulating data is good, no matter what! GOOD ARCHITECTURE IS GOOD [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"tags":[],"_links":{"self":[{"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/posts\/9"}],"collection":[{"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":0,"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.nicholasgoodman.com\/bt\/blog\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}