As part of our IT education, we learn things early on that become foundational building blocks for our later development. These are fundamental principles that we know to be true. This is no different than other parts or our life....fire is hot, force equals mass times acceleration, Nickleback is over-rated, and the SEC conference is the most dominant force in college football. These are things that we know to be true based on laws of physics, personal experience, and general common sense. However, in the IT field, the world is changing so fast that much of what we thought we knew must be re-learned because it is now wrong.
For example, my early CIO training taught me the ABC fundamentals of software. I have evangelized this approach in the organizations that I have managed over the past decade. The ABC approach is as follows; for any new line of business application, you should adhere to the following order or precedent:
1) Adopt - first try to leverage an existing platform you own (SAP, ServiceNow, Office365, Salesforce, etc.) to meet your requirements before doing anything new
2) Buy - second try to buy a Commercial Off the Shelf (COTS) software package from industry before creating your own
3) Create - as a last result, custom develop your own software to meet the business need
At first glance, the logic is solid and mostly still holds up. Who wouldn't want to maximize the return on their existing investments? If you can leverage a platform you already own, you turn it into an appreciating asset that accrues greater value to the business at the same cost (assuming it does not require new licensing). I still see this as a fundamentally solid business practice.
However, things are rapidly changing in the Buy v/s Create equation. For the last 20 years, we have been taught that custom software is bad and that we should buy COTS wherever possible to reduce our IT mortgage. While this is still generally accepted practice, we believe there are several trends that are changing the business dynamics of this decision:
1) All companies are IT companies now - IT is no longer just an indirect cost center. It is critical to delivering business value for nearly all companies. Instead of just back office and plumbing, software products are how customers are engaged (marketing/mobile apps) and products are managed (smart devices/IOT). Instead of just being a cost of doing business, they are a driver of new business growth; making your applications and IT strategic to the overall company/organization. This trend will only accelerate as Artificial Intelligence (AI) solutions become more prevalent and increasingly are seen as a differentiator in the market amongst competitors.
2) Front End is Free - it used to be very expensive to create custom applications and to build modern user interfaces. However, modern "no code" application development platforms such as Force.com and Office365 (PowerApps, Flow, PowerBI) make it easy for anyone with Excel/Business analyst skills to develop enterprise software. If you have data you can connect to or acquire easily, the application is trending towards free. If the use case for the application is strategic, it no longer makes sense to optimize purely for cost. With "no code" solutions, you can build a solution custom tailored to your business requirements with minimal or no costs. This approach allows you to differentiate your product and service offerings without exploding costs which makes the buy versus build decision more of a gray space.
3) Back End as a Commodity - with the rise of cloud services, it is quick and easy to provision and scale infrastructure on demand. You are no longer locked into long procurement cycles to buy new hardware to support your new application(s). In addition, when architecting new custom applications to be cloud native from the beginning, you can eliminate as much as 80% of the traditional IT costs by leveraging modern approaches with Kubernetes, serverless, and other DevOps techniques. Finally, it is increasingly important to be able to divorce the front end of your application from the back end data. To truly enable machine learning and AI, you must get your data into a common data lake for analysis, transformation/cleansing, machine learning, and future AI use cases. This is often easier to achieve with custom software where you have full control of the data and knowledge of the underlying code. In addition, custom code is often more portable (via containers) and can be moved easily across clouds as business or security needs may change over time.
Increasingly, custom applications are trending towards free. No code solutions and modern cloud native apps will reduce the complexity of managing custom software and the associated cost burden. This trend will only improve over time as the cloud platforms supporting no-code get better and infrastructure automation gets easier. In addition, we believe programming will become a core part of every student's education - just like Math, History, or Science which will increase the talent pool in the coming years. When you put all of these factors together, we believe the taboo of custom software is dying and the age of highly cost-effective custom business solutions has begun.
Interested in how to make custom applications a strategic asset for your business? Contact us to learn more about how C2 Labs can be a digital transformation catalyst for your organization. If you are in the DC area and want to learn more about this topic, check out the Cloud Security Alliance meetup on January 30, 2020. C2 Labs is hosting this event and looks forward to seeing you there!