It’s a great time to be in the software business, because are many levers available to quickly produce products.
In recent years, open source has become a true phenomenon. One can find libraries for advanced technologies that are competitive with research offerings from the likes of Google and Microsoft. Even Google relies heavily on open source, which may be a key reason it iterates faster than Microsoft, which develops most of its software in-house. For instance, Chrome, itself based on the WebKit open source project, uses over 80 other open-source libraries credited in it About box. From machine translation to text-to-speech to optical character recognition to computer vision to numerical computing to video processing to GIS, the range of competencies offered from open-source to the new startup is breathtaking. In addition to the traditional source code repositories like SourceForge and CodeProject, many platform and book samples as well as course code offer ready-to-use technology.
Several cross-platform solutions have emerged C#/Mono, Qt, Air, HTML and Java to allow the products to be built on one platform such as Windows and quickly migrated to others such as mobile devices and the Mac.
Beside source code, data (both raw numbers and media files) is available freely from the government, universities and elsewhere. Natural language information is available from the Linguistic Data Consortium. Data for mapping, demographics and nutrition is freely available from the government. Websites like infochimp.com serve as a portal for these types of data files.
For hard to obtain source code and data, there are companies that offer for small sums access to that data. User interface libraries are pervasive. Nuance licenses its speech recognition technology for other companies to use within their products.
Web APIs potentially offer instant access to valuable services on the Web, though tend to be less stable that OS-specific APIS. Nick Bradbury wrote of the long-term failure of Web APIs, because web APIs have to be maintained continuously and any software that relies on them will need to be updated over time and could potentially break in the future.
A software company could provide its own gateway web service to ameliorate this situation, so that the client application should not have to change. Another advantage of this approach is that the company may use GPL code that would otherwise not be commercially viable.