I've been thinking a lot about software development and strategic business strategies recently, in part because of some business work I've been doing recently and in part because the reason why the software program exists has a strong relation with how the system is designed.
'We Are All Software Companies Now' is a post I read last week suggesting that all businesses are software businesses these days, even HP, Tesla, Rackspace and Apple. Well that's not quite right, as I've noted before about Apple all one has to do is look at their financial statements to know that Apple is a hardware company, selling iPhones, iPods and Macs. Apple is no more a software company than it is a technology retail chain outlet.
But of course Apple does both because it has determined that having retail stores and software engineers are critical functions that allow themselves to effectively preform in bringing the best personal computing experience to consumers around the world.1
That is in many cases a business might determine that their own development of software for a key business activity will enable the organization to achieve its long-term objectives.
To determine if a business function might be of strategic importance, let's consider two different types of businesses and how they relate to a specific type of business software.
Spacely Sprockets is specialized widget maker, but unlike Apple, only sells its sprockets wholesale to retailers who then sell a range of individualized widgets from various manufacturers to public consumers. ACME is just such as retailer.
Both Spacely Sprockets and ACME have warehouses. Both companies have shipping requirements. Both companies are using a software solution to manage and track products from origin to destination, from creation to final sale. Spacely uses an "boxed" enterprise resource planning (ERP) solution from a highly regarded business software vendor. ACME, on the other-hand, uses a customized, self-developed and managed ERP solution.
What exactly are these two ERP systems doing for these companies? In general ERP systems are about removing barriers to data that can become trapped in department specific solutions. That is ERP systems are about eliminating standalone computer systems in finance, marketing and manufacturing, and integrating them into a single unified system.
For Spacely Sprockets this means a solution that tracks wholesale sales and overall market penetration, production volume, warehouse inventory and shipping costs. The software vendor Spacely has contracted sells a solution built on software modules for each department; marketing and sales, production and shipping. Each department can choose from a set of predefined workflows optimized for their need. At the same time the modules share a common communication infrastructure enabling access to any required piece of data for the company's Operations department.
Thus Spacely can focus on their business, building the best widget for their market. At the same time reducing the overall cost of their operation and leveraging the expertise of other similar business models via their software vendor's solution. The reduction of operating costs can either be passed on to the consumer in lower product cost or to Spacely's shareholders in higher profit margins.
For ACME their business also involves sourcing products, procurement and logistics management. They too are in need of integrating resource management solution within their company.
However, their decision to build their own ERP stems from the fact that their continued success in business is built on their ability to properly managing the procurement and logistics of numinous products, including Spacely's widgets. AMCE has years of in-house knowledge and expertise that just cannot be replicated in any "off-the-self" ERP solution.
ACME's strategic business objective is to continue applying and refining their hard-won supply-chain knowledge to their operation. In doing so they too can reduce their operating costs in relation to their competition and can either pass on the savings to their customers or to their shareholders in higher profit margins.
Of course in the abstract, this seems extremely straight-forward. In reality, business conditions change all the time. One day the hard-won knowledge your business has fought for is gold, the next it might become a liability.
And just because a business elects one option over the other doesn't mean the software concerns end there. Nope, besides deciding to build a custom solution or not, a business has to consider; do they go with a close-source solution or an open source solution? If they do decide to develop a custom solution, do they try to develop the software knowledge and solution in-house or outsource?