In my last post in the Business Plan series, you discovered that my first company was a “software company.” What kind? Even in 1987, the software industry covered a wide variety of things. As I mentioned before, the Introduction section of a business plan should start with a general overview (“microcomputer software”) and then get specific (“database stuff”). By the end of this section, the market segment you are targeting (in this case – “semi-custom software”) should be defined.
The early days of microcomputing were plagued by a lack of software. The hardware component of the system evolved the quickest; software developers were always playing catch-up. Support tools for software companies were limited forcing the programmer to invest a significant amount of time in developing toolboxes for use on a particular machine. As a result, software developers often sacrifice the flexibility of the applications they were developing in order to simply get them to work. This changed with the advent of the IBM PC which prompted an epidemic of fourth-generation application development languages, more commonly known as database languages. For the first time, the microcomputer software developer could focus on the issues underlying his application instead of spending all his time trying to implement the application on a particular piece of hardware.
Today, database languages are beginning to replace conventional languages within the context of application development. The trend has reached a critical mass; new database languages are emerging weekly. This outbreak of products has served to legitimize a new approach to application development.
These database programming languages can serve as a basis for a new type of application development – semi-custom software. Semi-custom software is a divergence from existing software product offerings. In a semi-custom environment, the benefits of mass-produced systems and custom software are combined. A reusable “shell” is designed for a specific industry – this is the systems component. Instead of packaging and selling only the shell, a semi-custom company modifies it to fit the client’s specific needs. Some custom software is written and integrated with mass-produced software. As a result, the customer essentially gets a software product that fits his precise needs (emulating a custom product) at a systems software price.
In 1987, “semi-customer software” was a new concept. Database languages (or 4GLs) were becoming popular (remember dBase and .dbf files?) and were starting to incorporate mainstream programming capabilities (most notably procedural abstraction – a big deal at the time). The things we now call “packaged applications” were going by pre-ERP TLAs such as MRP, CAD, CAM, and POS (“point-of-sale”, although most were about as good as the other use of the acronym). We felt like there must be something in between a custom application and shrink wrapped software and decided to try to coin the phrase “semi-custom software.” While this phrase didn’t stick, the concept ended up being very relevant and foreshadowed the packaged software revolution.