Before you write a single line of code, let's see how the open-source world can help us by saving time and money. The reuse model is merely an extension to the well-accepted idea that developers will have put together a pretty decent toolbox of code chunks, application frameworks and possibly partially complete application husks. When you're planning a new application, it merely takes rummaging around in this toolbox and pulling out the components which more closely match your requirements.
Open source takes this to the logical conclusion, making the toolboxes of 500,000 other developers available to you.
Visit the well-known open-source code repositories such Freshmeat.net or SourceForge.net. Search to find projects which are thematically related to the kind of product you want to build. Next, start drilling down into the contestants. There may be only a handful or there may be dozens. Use your heuristic filtering sunglasses to help you whittle these down to two or three selections: Do they do the core of what you want? Are they written in programming languages you know? Are the projects active? Are they available under a licence which is commensurate with what you are trying to achieve?
Next, download the project which appears to have the most overlap with your intended product. Scope the code, audit it for quality, comments, structure and evenness. If it passes muster, you read through the documentation to determine if there’s a section to jumpstart new developers into the complexities of the code base. Most of the good open-source software projects have this, which is what enables them to become good open-source projects.
Now, start making some mods, for example stylesheet changes, logo changes, form changes etc. You want to get a feel for how much time and effort would be involved to get up to speed with this code, and how much effort would be involved in adding any missing functionality your putative product may need, which this open-source project lacks.
It's now up to you to determine if indeed utilising this codebase will get you to your intended destination faster than if you started from scratch. Bear in mind a few things however; many widely-used open-source projects have seen successive iterations of quality and security feedback, loopsCode being fixed and enhanced and security exploits being patched. If you start your project from scratch, it may be years before you reach a similar maturity level. Factor this cost in to your decision process too.
Do the right thing by the existing project community; make contact, alerting them to the fact that you intend to build a commercial application upon their codebase, but that you will comply with the licence they have stipulated for the project. Contact with the open-source developer community isn't mandatory, just common courtesy.
Packaging your solution in a form downloadable via the Internet for no cost provides a friction-free manner for distributing your application, allowing you to establish your product's credentials and market presence. You can also provide a packaged version which includes printed manuals and CDs. This is for all those sites that do not like to use freely downloaded software off the Internet, but prefer a real, physical product. Price varies, as it's essentially a service charge. Say US$100 to US$500. You could also consider building an appliance solution, constituted of pre-installed operating system, database, application server and your application on top. Price: US$2,000 to US$10,000 depending on the level of bundled support. With all your product options, price them in the market sweet spot, to maximise attention and gain as many quick sales as you can.
Marketing your offering
What does it take for your product to get noticed? Obviously, by using open source attributes when marketing your product: Market the fact that you give your customers the complete source code to the system; market the fact that the code does not have a use-by date or sunset clause. If you and your business collectively fall under a bus, your customers can continue to use and have third parties provide ongoing support. Leverage the fact that local business and government consumers are risk averse, and that you, unlike a group of coders in Iceland or Brazil who produced the original codebase, can indemnify your customers using your professional and product liability insurance; market the fact that you are local or regional and can provide same time zone business support.
By commercial support, I mean commercial support. Charge the customers US$200 per hour for it, but make sure you deliver the goods. You should also play the perpetual code escrow card. Many potential customers of vertical business applications need to be guaranteed that they will not be left stranded when deploying a new line of business system.
This is one of the main reasons encountered when Australian firms have trouble competing against larger international players. The argument goes that buyers are unsure of smaller Australian firms' business longevity and worry about code escrow. Ensuring that potential customers have full access to the source code is a great way of nullifying this competitive disadvantage.