By Joydeep Misra September 29, 2017
You are a consumer of software. You buy commercial software. You install it on servers or employee computers (perhaps you have someone in IT do this for you). Or you consume software as a service (SaaS) through a web browser, eliminating the need to install and support software locally.
What you may not know is that if your company is operating any software at all, unless you’re limited to SaaS without customization, you are in the software business.
Here’s an example: a business is an economic system where goods or services are exchanged for value (money in most cases). You made an investment in software (goods) and people (services). Your people installed the software on servers and added custom capability to improve its behavior (service). As a result, your company receives value (in this case, productivity gain). You are in the software business. If investment exceeds value, you’re out of business!
The table below is a simple plot of complexity of installation on the left side (from complex at the bottom to easy at the top). Across the bottom it plots “customized software” on the left and “Standard Commercial Software” on the right. The left side being 100% custom. The right side means no customization. The middle is a variation of commercial software with customization added. Closer to the left means more customization. Got it?
In an attempt to reduce cost and risk, most companies will target the top-right corner as their desired state. Top-right represents completely out of the box SaaS software that doesn’t need any IT people to support and operate.
The reality is that software investments end up somewhere in the middle circle. They start with a commercial software platform, but eventually discover gaps. Gaps are missing capabilities or integrations that are critical to enabling a specific business process. Gaps are generally filled by customization.
Alternatively, the brave may decide to go completely custom, the circle on the left. There are many reasons for this.
-
- There is not a commercial option that is even close to their requirements
-
- They feel they need to differentiate from their competitors in a way that would not otherwise be possible or easy to copy
- They may want to control the timing of upgrades and enhancements
Can you avoid being in the software business?
Unless you are fortunate enough to deploy all your software with the profile of the top right, you will find yourself in the software business, providing staff and building processes for software development and software support.
The biggest challenge to being success is to overcome a people issue. It can be pretty difficult to find the right people with the right skills at the right price, offer then a career path and provide coaching and mentoring.
What Software Skills are needed?
To answer the question about software skills, let’s start with an overview of modern software. This colorful stack graphic is a typical (although simplified) software stack for a web application which is the most common.
Each layer in the software stack requires a unique skillset. Few people are proficient at the full stack. And if they are, they are expensive. The technology enabling each layer is rapidly evolving, so developers must keep up or get left behind.
Putting together a software team is a bit like a sports team owner staying under the salary cap. Remember, if investment exceeds value, you are out of business. If you are lucky enough to draft six All Stars, can you afford to keep them? On the other hand, if an owner puts together a team of affordable, low-level performers, the lack of quality will put them out of business.
The makeup of a software team
Most likely you will need to start with four people (UI, App, Database, Cloud Infrastructure). You’ll also need a software architect who can oversee the entire stack. Finally, you need a project manager who has experience with software development projects to maintain requirements, manage risk, manage the timeline, stakeholders, and deliverables. We are up to six people now.
These six positions do not disappear after the release of the product. They will remain for product enhancements and support. You will also need to have a backup plan for each person in case they decide to leave the company. And you will need to manage time between developing enhancements and supporting your existing customers.
If you are not a software company who pushes the technology and innovation envelope, the next challenge you will have is recruitment. For a small team of six, you’ll need All-Stars. Otherwise, you won’t have enough work to support a hierarchy of talent. All-Stars are necessary for mentoring hires that aren’t yet All-Stars. All Stars are rare, too. They want to live in California and work at startup software companies. Others want the opportunity to continue to evolve their skills and work on staying competitive by learning the latest technologies. They can be expensive.
Time to be real: Can you attract and keep the talent needed to complete that software development project and continue to maintain it over time? Can you do this under your investment cap? Do you have the experience to install software development processes to ensure timely delivery, quality, and cost?
If you have concerns, you’ll want to consider software outsourcing.
Software Outsourcing may be the answer
If you do consider software outsourcing, be sure to do it right!
-
-
You can outsource labor, or
-
-
You can outsource an outcome
Outsourcing and managing labor for software development might only perpetuate the problem. When these people leave (and they will), you will be faced with the challenge of supporting what they left you with.
Outsourcing an outcome may provide a better answer. An outcome could be custom software, developed to your specification, and acquired as a subscription or with a support contract. You are buying a solution that fits inside the middle circle in the above graphic while avoiding being in the software business.
Bridgera IoT is an example of outcome-based outsourced software. A business can subscribe to Bridgera IoT as they would commercial off the shelf SaaS. There will be gaps. However, Bridgera will close the gaps and maintain the result as the final SaaS solution.
-
Connect Bridgera IoT to the IoT devices and business systems
-
Customize the processing logic to meet a unique use case
-
Develop custom applications to provide interfaces to people and processes leveraging standard IoT capabilities
Bridgera will operate the system so that you don’t have to. With Bridgera IoT, you get the economic benefits of a SaaS solution (top-right), which has no need for development or support personnel. You also get the “built-to-spec” benefit of a custom solution but with without the risk associated with closing “gaps”. It’s the best solution at the lowest possible risk.