Our Engineering Manager, Kenny, recently wrote an explanatory article on a modern approach to software development that we’ve created that embraces open-source tools and services. This approach minimizes server footprint and licensing costs, spreads up-front costs over the life of the product, and ties expenses to product usage.
Kenny’s article explores the technology that makes all this possible. For this blog, I wanted to reflect on what this approach means for business. I’ll explain how using this approach lowers costs overall and lines up costs with returns, and then walk through a few example use cases to show situations where small business may want to consider going this route.
Lower Overall Costs
Have you ever noticed that phones keep getting better and better, but that they stay about the same price? Innovation in manufacturing processes and increases in productivity mean that we can get more for less. The same is true on the software side of technology. Experts in the field are always finding better ways to do things, and engineers are better than ever at reincorporating these improvements into the software canon as reusable code packages and cloud-based services.
According to www.modulecounts.com, npm is by far the most popular distribution channel for code packages, and its uptake by the community is only increasing.
Aligning Costs with Revenue
In a traditional development model that uses tools like Windows Server, SQL Server, and virtualization software, licenses must be purchased up-front. If you host these servers yourself, you must also purchase the associated hardware. Finally, you must factor in the configuration time that will be spent to spin up these servers.
These outlays take place at the beginning of the project, before any benefits from the software are realized. This leads to a related problem—it’s easy to incorrectly estimate your hardware and software needs, leading to over-investment at the start of the project or an underperforming environment that you must expand at a later date.
A better approach is to align project expenditures with benefits. To help our clients do this, we use cloud-based services instead of on-premises hardware. We rely on tools that scale automatically, cost more when they are used more, and are low cost or free at low usage volumes.
The upshot is that costs are spread over the life of the product instead of being paid up front, and if the product isn’t adopted as quickly as expected, costs stay low. In the best case scenario, the product catches on like wildfire, in which case the services will scale to meet the challenge automatically.
Use Case 1: Outgrowing Excel
If you use Excel to deliver a product to your customers and you are experiencing growth, there will come a day when you will need to move to a more sophisticated tool. Of course, Excel continues to be useful even in large companies for ad hoc data manipulation and reporting. What I’m referring to here is businesses that use Excel to manage key processes or use it to produce an intellectual product that is then sold to customers.
We recently conducted a project for a small consulting firm that used Excel in the past to organize electricity price data for businesses and give recommendations based on that data. They would generate reports and email them to customers. Because the knowledge they were sharing was valuable, they were in high demand. As an avenue for growth, they decided to move from Excel to a more advanced framework to support their core product. They chose to make this move for several reasons.
First and most importantly, it is time consuming to manually copy and paste data into Excel and then manually generate reports to send to customers. These activities are low-value and easily automated, ones that certainly should not be performed by a company’s key employees. Creating a system for importing data automatically and then allowing customers to self-service the reports solved this problem.
Second, Excel does not impose the required rigor for manipulating data as companies grow. In an enterprise-grade application, data storage is separated from the rest of the application, and data is only allowed to be altered through a defined set of methods. This protects the data from inappropriate or inadvertent changes. Excel, on the other hand, allows users to change data directly, which can lead to costly mistakes, especially as more users handle the workbook.
Finally, Excel allows users to tweak data, finagle or even ignore formulas, and perform various circumventions that are difficult to track or understand. These adjustments are made by knowledge workers drawing on years of experience. How do you train a new user on the system if they don’t have years of experience and a well of tacit knowledge to draw from? It’s not possible. This impedes scaling the product and growth of the business. Moving to a system with a well-defined business logic layer forces your knowledge workers to codify all that information tucked away in their brains so that others can take advantage of it.
Use Case 2: Allowing Customers to Self-Service
There are only a handful of methods to increase the value of services provided by a firm, and one of them is to offload work performed by the firm to the customer. Picture those new self-service lines at the supermarket.
In the past, we’ve worked with companies that built internal systems to produce some reports or data that was relevant to their customers. When a company decides it’s time to stop putting in the work to provide data to its customers out of an internal system, and instead opts to have their customers self-service, you’re talking about a Customer Portal.
Although the finished product is complex, a multi-tenant customer portal is mainly constructed from existing services stitched together like patches in a quilt. Users should be able to log in to the system, reset their passwords without your involvement, and access their information (but not other people’s information). Your administrators should be able to manage tenants and users. All this can be accomplished using cloud-based servers and data storage, services for authentication and email, and freely available packages to jumpstart the coding process.
As mentioned earlier, it’s getting easier for small businesses to build this kind of portal. This is great for you as a small business, and it’s great for your competitors as well. Should you choose to not put in the effort and money to get something like this done, you can bet one of your competitors will. Would any existing customers switch if they could access up to the minute information any time they wanted instead of waiting on you to send it? Would it make a difference to a new customer trying to decide between you and your competitors?
Use Case 3: Productizing What You Do Well
If you are growing as a business, you can probably point to something that you do better than your competitors. Maybe your model is a little different. Maybe you are unusually consistent in your manufacturing or service delivery. Whatever that difference maker happens to be, you should ask yourself if it’s something that can be productized and sold to others in your industry.
McDonald’s has a market cap north of $100 billion. What does McDonald’s do better than anyone else? Consistency. How they run their stores, order product, train employees, and greet customers is all mapped out in detail and executed consistently. Rather than bogarting their competitive advantage, they’ve chosen to license it out in the form of franchises. While they could have stuck to only corporate stores, and some concepts do, the largest fast food chain in the world got that way by productizing what it does well.
In the software world, first define what your advantage is and then decide if it’s a good candidate for productizing. A business process, a proprietary database, a methodology for identifying good customers, a homegrown ERP system: all of these things are prime targets for turning into software.
Business processes can be converted into workflows, databases can be exposed through reports, customer classification techniques can be codified, and ERP systems can be re-architected to operate at scale. Around this core of value, we build the “plumbing” that makes it a product, including secure multi-tenancy, payment processing, messaging, and administration.