In the current economic climate it's a good idea to find ways to maximise your income. For software developers, an attractive way of supplementing your income is to start your own software business. As well as diversifiying your income streams, there is also the satisfaction to be had from building software that other people find useful.
A small software business is often termed an "uISV" - a generic term for micro-sized Internet Software Vendor. Typically these businesses have one employee, although some may have several employees. The businesses usually sell their software online, although some use offline sales channels as well. Through history, there are many examples of small businesses that have grown to become very large businesses indeed!
Reasons to start your own software business:
- Thanks to the Internet, there's never been an easier time to start a small business with global reach.
- Gives you a recurring monthly income, which makes it easier to plan for the future, and makes you less susceptible to a drop in income from your main job.
- Product development can largely expand to fit the time available - it's a good way of making productive use of time between jobs or contracts.
- Selling a product in a niche gets you noticed and could help you to secure jobs or contracts related to your product (particularly useful for contract workers).
- Creating a successful product is very satisfying.
- Knowing how to run a business is always a valuable skill which could help you out later in life.
- It depends where you live, but having your own small business is often very tax efficient.
- There is always the possibility of coming up with a brilliant idea that makes you very wealthy!
- Starting a software business has few barriers to entry and startup costs can be minimal.
- Unlike other freelance opportunities such as building bespoke websites for people, selling software products is scalable and income is not dependent upon the amount of time spent working on it (for valuable insight about scaleable careers, read The Black Swan by Nassim Nicholas Taleb).
Reasons to not start your own software business:
- It takes a lot of time, especially at the start.
- To be successful, it's not enough to be a good programmer. It takes commitment. A lot of it. As well as building a product, you also need to write documentation, built a website to sell the product, do user support, and be willing to learn about marketing concepts.
- Starting a small business in the same niche as your employer could get you in trouble!
- Your employer may not like it. Your job contract may not even allow it!
- Owning a small software business may put off some future employers, although some will be more interested in you!
- You may be better off concentrating on your career, particularly if you want to move into project managment/development management type roles.
As stated previously, starting your own business can be time consuming. The time requirements for a software development business are usually front-loaded, especially if a product has to be developed from scratch. The good news is that with the typical product lifecycle, the latter years will mostly be concerned with technical support and minor fixes, which will not take up much time.
With a small business, it is a good idea to outsource as much as possible. As a one person company, you want to concentrate on product development and marketing. Thankfully the Internet makes this straightforward. Here are some things that may be outsourced:
- Accountancy. Depending on where you live, you may need assistance with the financial side of running a business. Don't forget that Internet earnings count as income, so it's a good idea to pay your taxes and keep your business legitimate!
- Product ordering. There are many companies that for a small percentage of the revenue will handle the entire ordering process. Examples are RegNow and Plimus (more on this later).
- Website hosting. Running your own web server is not essential for most small businesses. Obviously downtime will cost revenue, so ensure you choose a reliable hosting company.
- Download hosting. Companies such as FileKicker or Upload.com can host your trial version downloads, reducing bandwidth usage on your website hosting plan, and ensuring high availability of your download files.
Ideas, Ideas, Ideas...
The biggest stumbling block to starting your own software company is having the initial idea for a product. Thankfully, as software developers most of us have daily exposure to business processes so we are ideally situated to coming up with product ideas. For example, the second product I built way back in 2002 was the Index Server Companion. I built this product after working on a short contract with an organisation that was using Site Server 3.0 Search to build an ASP website search engine that could simultaneously allow searching of their many internal and external websites.
At the time, Site Server 3.0 was a costly product, it was difficult to install and manage. I then had the idea that if I built a web crawler to gather content from websites, it could be bolted onto the standard Windows Indexing Service to provide Site Server 3.0 Search type functionality for a fraction of the price.
Other sources of ideas may be your hobbies and interests. Your employment niche is also likely a rich source of ideas. If you are employed in a particular vertical enterprise sector such as real estate or banking, then you will doubtless come across all kinds of ideas for products.
Good Ideas, Good Ideas, Good Ideas...
Here's the bad news. Even if you have come up with an idea for a product, there's no guarantee that it will sell.
Problems that arise are generally:
- There's only a small or limited market for it. Niche software does sell well, particularly if you are the only or the best product in that niche. However, it's unwise to find a very specialised niche if there are so few potential customers out there.
- There's too much competition. You have probably noticed that there are dozens of IT issue tracking software solutions out there. Likewise for content management solutions. Competition is not necessarily a bad thing though - for example there are dozens of utilities available for ripping DVD movies to iPods and other portable devices. However, there is a big market for these products.
- Your product may not have a long lifecycle. This is a particular problem when developing developer tools and utilities. For example, Visual Studio add-ins usually have a short shelf life as Microsoft frequently release new versions of their development environment.
If I was starting my small software business now, I would look closely at the development of add-ons for SharePoint. .NET components would also be an area of interest - for one thing somebody needs to write a decent Rich TextBox control for Windows Mobile! Of course mobile Apps for Android and iPhones are also very hot!
I would also look at writing software with a long shelf life. In certain niches (particularly hobbies or education) there is software that has been around since the days of the Commodore 64, and is still selling (albeit on Windows and Macintosh and now mobile computing platforms!)
Releasing Your Product
Once you've built your product, the fun can then begin. It's important to polish your product - that means a nice looking, intuitive user interface, helpful documentation and good installation instructions.
If creating Windows applications, you may find that the standard Visual Basic 6.0 Package and Deployment Wizard and Visual Studio.NET software installers are sufficient. However, these have a number of limitations which you'll probably find out about from your users, so 3rd party alternatives are worth looking at. The Nullsoft Scriptable Install System (NSIS) is a particularly good open source installer.
There are quite a few products available that can be used to create professional looking software help files. This software documentation portal lists a few commercial utilities. Alternatively, free applications such as Microsoft's HTML Help Workshop can be used to build high quality documentation for Windows applications. As well as producing documentation for your product, it is also useful to provide some code samples (if appropriate), tutorials and walk throughs.
As far as taking payment for your work goes, you can obviously build your own e-commerce engine using a payment processor such as WorldPay or PayPal coupled to some custom ASP or ASP.NET code. A far easier solution is to outsource the ordering and payment process to a 3rd party service such as Plimus or RegNow. These payment processors generally allow you to specify a set of registration codes, one of which will be sent out to each registered user.
Using a payment processor offers some useful benefits compared to building your own e-commerce application:
- They tend to have good anti-fraud systems in operation, which are vital when selling software over the Internet.
- They usually offer statistical reporting systems which can help to track sales.
- They may be linked in with advertising systems, such as Google's AdWords.
- They have customer support staff available who can assist customers with ordering queries, and many also allow orders to be taken over the phone.
Many payment processors also offer additional benefits to the end user, including:
- Ability to request a copy of the software on CD.
- Facilities for users to purchase "download insurance", in case they forget their registration code.
- Ability to set up discounted product bundles, which are especially useful if you have built more than one product.
- Ability to make payment by a range of options including credit cards, e-money systems such as PayPal, and purchase orders/invoices (popular with large organisations).
- Some payment processors also support the subscriptions services model, which may be useful if your product needs frequent updates (e.g. ZIP code lookup software, anti-virus packages).
- Affiliate marketing schemes, which financially reward people for publisising your software, usually by taking a percentage of the product's purchase price.
Marketing Your Product
If you build it they will come!
Obviously, the first way of marketing your product is to build a website for it. It will soon make its way into Google, especially if linked from other sites related to your product. A product website should obviously describe what the product is and what it does. It might also have screenshots and walkthroughs for common tasks. Articles about problem X and how your product Y solves it are especially useful for convincing users to buy your product. In general, emphasising benefits is more effective at driving sales than focusing purely on the product's features.
Adding the product to download sites can also provide valuable exposure, especially if the product is designed for the consumer market. There are a vast number of download sites around, although sites such as download.com, tucows.com and sharewareplaza are the best visited.
Advertising schemes such as Google Adwords can also be useful for marketing products.