{"id":997,"date":"2019-03-16T17:19:11","date_gmt":"2019-03-16T17:19:11","guid":{"rendered":"http:\/\/www.seonthemon.com\/wp351\/?p=997"},"modified":"2019-03-16T17:23:51","modified_gmt":"2019-03-16T17:23:51","slug":"business-agnostic-software-buy-not-build","status":"publish","type":"post","link":"https:\/\/www.seonthemon.com\/wp351\/2019\/03\/16\/business-agnostic-software-buy-not-build\/","title":{"rendered":"Business Agnostic Software &#8211; Buy rather than Build"},"content":{"rendered":"<p>A solution that you can apply to any business at all, is what I might call business agnostic software. If you feel the urge to build such software, think again. &nbsp;Buy it instead.<\/p>\n<h3>Examples of business agnostic software<\/h3>\n<p>An insurance company maintains correspondence with the insured. &nbsp;The company buy&#8217;s or subscribes to an <em>email service<\/em>. &nbsp;It does not build the <em>email service<\/em> from scratch.<\/p>\n<p>A bank generates statements, and various notices that the government mandates. &nbsp;For this, a bank might need a <em>template engine<\/em> that generates PDF. &nbsp;Buy that <em>template engine<\/em>. &nbsp;The bank itself will have to build the templates for these business documents.<\/p>\n<p>All companies have business processes that they wish to start, track, execute, and end. &nbsp;This is what BPM (Business Process Management) engines are for. &nbsp;Buy that <em>BPM engine<\/em>. &nbsp;The business can implement its business processes using the BPM engine it buys.<\/p>\n<p>Health insurance companies that are in the Medicare business, receive beneficiary information from the government. &nbsp;Many rules determine how the company responds to this information. &nbsp;A company could use a <em>rule engine <\/em>to manage these rules. &nbsp;Buy that <em>rule engine.<\/em> &nbsp;&nbsp;The company should stick to only implementing the rules.<\/p>\n<p>Wait, here is the simplest example. &nbsp;&nbsp;Why do you buy a <em>database management system<\/em>? &nbsp;&nbsp;You don&#8217;t build an alternative to SQL Server, or Oracle, do you?<\/p>\n<h3>Why avoid building business agnostic software<\/h3>\n<p>The primary purpose of an Enterprise IT shop is to support the business. Learning the business, analyzing it, modeling it, and implementing it, is a significant challenge in itself. &nbsp;Focus on that. &nbsp;Master that before taking on other problems.<\/p>\n<p>Business agnostic software focus on more general problems.<\/p>\n<p>Take rule engines for instance.<\/p>\n<ul>\n<li>What is a rule?<\/li>\n<li>How can rules be combined to produce new truth?<\/li>\n<li>Devise an algorithm that can execute 10,000 rules in a few seconds.<\/li>\n<\/ul>\n<p>An insurance company could use a machine that answers those questions. &nbsp;Does a health insurance company want to spend time and money on building that machine? &nbsp;For most companies there will be little value in it.<\/p>\n<p>People spend their lifetimes studying these fundamental questions. &nbsp;There are PHds galore in rule systems. &nbsp;Let them build the rule engine. You confine yourself to identifying an effective rule engine, and using it well.<\/p>\n<h3>We do build business agnostic software though<\/h3>\n<p>I am surprised by how often Enterprise IT shops end up building business agnostic tools.<\/p>\n<p>In my work experience, I have seen home grown solutions to these problems, which are best left to the experts.<\/p>\n<ul>\n<li>A web framework<\/li>\n<li>An Service Locator\/IOC container<\/li>\n<li>A rule engine<\/li>\n<li>A BPM engine<\/li>\n<li>A scheduler<\/li>\n<\/ul>\n<p>We can never avoid this completely. &nbsp;Start with management that lacks engineering savvy, throw in gung-ho developers, and mix with institutional inertia. &nbsp;Less than optimal decisions will happen. So it goes.<\/p>\n<h3>Exception<\/h3>\n<p>Some companies do focus on fundamental problems.<\/p>\n<p>They have deep pockets. &nbsp;They have the means to invest in fundamental research. &nbsp;Their business model, their operating ethos, includes such effort.<\/p>\n<p>Their business problems are of such scale and complexity that currently available solutions are inadequate. &nbsp;They must invent new solutions themselves.<\/p>\n<p>Unix and C came out of &nbsp;AT&amp;T. &nbsp;Ericcson created Erlang. &nbsp;&nbsp;UML came out of research at GE, and IBM, among other places. &nbsp;Xerox pioneered Graphical User Interfaces, and Object-Oriented Programming.<\/p>\n<p>Ask yourself. &nbsp;Are you one of these companies? I am confident most Enterprise IT shops would say, no.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A solution that you can apply to any business at all, is what I might call business agnostic software. If you feel the urge to build such software, think again. &nbsp;Buy it instead. Examples of business agnostic software An insurance company maintains correspondence with the insured. &nbsp;The company buy&#8217;s or subscribes to an email service. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[43,44],"_links":{"self":[{"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/posts\/997"}],"collection":[{"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/comments?post=997"}],"version-history":[{"count":7,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/posts\/997\/revisions"}],"predecessor-version":[{"id":1046,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/posts\/997\/revisions\/1046"}],"wp:attachment":[{"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/media?parent=997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/categories?post=997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seonthemon.com\/wp351\/wp-json\/wp\/v2\/tags?post=997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}