Having developed many custom software solutions, there have been countless times over the years in which a friend or family member has come to me and said, “I have this great idea for _____”. You can fill in the blank with “an app”, “a website”, or “a software program” and numerous other technology products. About half the time the idea isn’t a new idea at all. Then I have to break the bad news to them. The other half the time, the idea has some legs to stand on.
When we start to dive into the idea, the conversation typically dies when I talk with them about the investment to make their idea a reality. There is a real investment, not only of dollars, but of time as well. How do you justify the investment into custom software, or do you just let the idea die on the vine?
You came up with the idea because you see a challenge that current technology can’t overcome on its own. This is purpose. The idea has legs because it addresses the issue at hand. Can another software product solve your idea? For instance, a spreadsheet is not just a list of calculations and data in tabular form. A spreadsheet can solve other problems, even problems it was never intended to solve in the first place. Can your idea be solved by hacking some other application or is it a truly unique answer to a problem? If so, will others get the same value from your software that you think you will get from it?
In your idea for a custom software product, can an algorithm or several of them in combination address inefficiencies? Software is simply just a collection of algorithms. Is your idea automating some task or series of tasks into something the computer can do better and more accurately? If so, you might be onto something here.
Custom software can be simple in nature or can be very complex. It might be a series of products that serve different purposes as well. When I write software, I always stress the idea of making things that have a singular purpose. In automation, this could be tying several of these pieces of software together to complete a task.
Does your idea require a unique method of interfacing with the software? User interface is often described as text, links, buttons and images interfaced by way of a monitor, keyboard and mouse, or mobile phone. A user interface can really be any way of interacting with the software. It could be glasses, tools, vehicles, gloves, or countless other ways to interact with the software and control what algorithms are used.
My first introduction to this was when I was kid and my friend got the Atari 2600 and we played Pong together. We used joysticks to play the game, which was a whole new way of interfacing with a device. Later, when I had a Nintendo Entertainment System a different friend had the NES Zapper, a gun to play Duck Hunt. Then I also had a friend that had the Power Pad to play Track and Field, and they had the Power Glove too. We could never figure out the Power Glove, so make sure your user interface is truly useful!
Time and cost justification
Now that you have tested the legs of your software idea it’s time to justify the time and cost to produce the software. You have found that it has purpose, automates routine tasks, and has a useful user interface. What time and cost will you recoup by developing this software? Custom software might cost hundreds, thousands or even millions of dollars to achieve what you are wanting to achieve. The reality of the time to produce the software might be days, weeks, months or years. If you are trying to capitalize on a small window of time, your idea might not be valid by the time the software is ready to be used. Any which way, you’ll need to look at the problem from multiple angles to decide if custom software is right for you and your purpose.
Will custom software increase productivity, or create a competitive advantage?
Believe it or not, many people with ideas for custom software are only thinking about commercial products. They want to build an app and sell it to millions of customers. In my experience, most software products tend to be in-house software. In-house software is developed to be used within an organization. The software is often built for competitive advantage, but sometimes it is built to automate routine tasks that have become quite repetitive or integrations to reduce duplicate data entry.
Will your software make you or your employees more productive? This has obvious benefits. The time you get back by reducing time for things such as manual entry is quite obvious, but what about things like error rate? Data entry errors are mistakes which can be costly, but also require time to correct.
Will the software create a competitive advantage? Does the software just do something better, or does it do something your competition doesn’t? Maybe the software is a special calculator that calculates time and materials. This would give you a speed to bid that your competition wouldn’t possess, having to calculate everything manually. By being first in line you would have an advantage in being the selected bid.
Will custom software allow you to reduce labor expenses?
If the software is automating a task or a series of them, or perhaps adjusting the user interface, you might reduce the need for labor to fulfill those roles. This labor could be repurposed or the positions eliminated entirely. For instance, think about a mechanical burger flipper. This user interface and custom software would eliminate the need for multiple cooks in a kitchen. This is automating tasks and adjusting user interfaces through hardware and software.
Another way to reduce labor expenses might be that you don’t require as skilled of a worker as you did before. For instance, what if your custom software was software to mine pricing data from competitors websites so you are always price competitive? Before having this software, you might need a pricing expert and several data entry people to complete the task. If the software did all of the work, you might just need an operator who is more skilled than the data entry people, but less skilled than the pricing expert, thus reducing your labor costs.
Will you be able to sell the custom software to make money?
Any custom software product needs to be evaluated for resale at some point, even if it was never intended to be sold commercially. If the software was only intended for in-house use, the advantages in-house use can provide may not maximize the value of the investment into your software product.
What if you built software for in-house use, but found that by making your competition better, you could then make money from their successes too. SaaS (Software as a Service) products fit right in this category. You could charge a subscription fee to your competition to gain the advantages you have gained, and then make more money than you do from your core competency.
Is custom software for you?
Is custom software for you? Only you can answer this question. When thinking about developing custom software, you will want to think about purpose, automation and user interface, and really decide if you are solving a problem in a unique way. Once you decide if your idea has merit, evaluate the time and cost investment and make sure through solving a problem you are developing a software solution that makes sense for you.