Some companies are founded upon industry expertise. Often in the medical application space, a group of doctors will get together and decide to automate a process that hasn't been automated by anyone or if it has, they feel it should be done better, and they go do it. They will pool their resources, hire programming staff and an application takes shape. Software programming is usually the first skill set they outsource.
But should that be the first step?
There are so many dynamics for full-time software companies to consider before they begin to design a new version of their application; shouldn't start-ups fully weigh these same factors before proceedng?
I like to think of the word "TEST" to organize and remember the four main groups of factors to consider before starting to turn your great idea into a software application.
What tools will you use to your develop your application? What application development environment? HTML, HTML5, Microsoft, Eclipse, Java? There are many alternatives here to consider. How will you data be stored? Will you be using Open Source development tools and components or commercial software to produce your product?
Some companies initially decide to use open source across the board because it lowers their start up costs. But does it really? What you save in purchasing commercial software development tools, you could easily lose in additional legal fees to ensure that your final product does not violate any open source license agreements. Ultimately when one considers that you may lose some prospective customers who do not want to take any legal risks whatsoever running open source software, commercial software seems to be the logical way to go.
What exists out there already? Does an application like yours already exist? How popular is it? Whats wrong with it? How big is the company? How does your planned product differ? Is that differentiation substantial enough to justify existing users of your competition's product to switch to yours? Is your target market still growing? Is it established? Or is it on the decline? I once worked with a software start up that had spent five years developing software for Photo shops. Sadly they went to market just a couple of years before the advent of the digital camera which has subsequently decimated their target audience and by extension their business.
Will your application reside at each customer site, on premise. Or will you be offering your software as a service? SAAS, which means your customers will access your application via the web from a server you host is growing in popularity these days. But will the trend continue? Will your application support desktops, disconnected notebooks, smartphones and/or tablet PCs? What server platforms will you support? Linux, Unix or just Microsoft? Keep in mind, the fewer server platforms you support, the more prospective customers you could stand to lose.
What is the timing of your project? How long will it take you to get to market? How will the hardware available and the speed of networks change before your release date? How much buffer time do you have in your current plans to allow for adjustments that will need to be made along the way?
During the time between concept and final product, have you considered what the competition will do? Have you made the necessary financial allocations to fund the project until you start to see some revenue flowing? Keep in mind, that there will also be some sales lead time needed after your final product is finished before you get your first sale. Depending on the industry, this can sometimes take an entire year or longer.
Last is the word TEST itself. This entire process of getting a software product to market is not easy. It will test your patience, your pocket book and your character. But it is my belief, that if you invest a little time up front to weigh your options and fully plan your project; you can end up saving yourself and you colleagues a lot of frustration in the future.