How to Build a Software Company
Which values do I build my newly founded company on? There are many things I value highly – fairness, professionalism, quality, innovation, honesty – but one thing stands out: sharing. The IT community as I have come to know it is centered around the wish to help others by sharing information and software. I want to live with and support this community, and I will do that by sharing myself, both information and software. I have blogged, spoken, tweeted and developed free tools in the past, and I will continue to do so. I will even share what little knowledge I have of funding and running a software and consulting company, and I am going to start doing that right here.
The Sizzle Sells the Steak
The first thing you are going to need is something to sell. And in the case of a software company that is an app, a program, tool, or whatever you like to call it. In my case this is SetACL Studio, in your case it is something different (at least that is what I hope!). It is your product, and since you are just about to start up, probably your only one. So you better make sure that it:
- looks good (first impression is important)
- is super-easy and maybe even fun to use (user experience matters)
- installs easily and quickly (you do not want to turn potential users off before they even tried your product)
- does something people need or like
That list might puzzle you: out of four points, only one relates to actual functionality of your software. That is right. Because of the way humans are engineered, functionality is overrated. Not that anyone would admit it, but humans are greatly influenced by looks and lose interest really quickly. If your app is ugly, many people will not even bother to look at its feature list, let alone try your amazing game-changing life-prolonging tool.
By this I do not want to say that your application should not have any cool features (it should!), but that the packaging is as important as the content. Walk the extra mile and design a nice UI (or, better yet, commission a designer to do it for you, if you can). Make sure the installer is fool-proof. And focus on user experience: design your software from the UI downwards not from some technical feature upwards.
Once you start developing, you will have idea upon idea of how to make your application better. Each new function you dream up seems to be indispensable, the product feels naked without it. So you code and code and code without getting much nearer to a release date. If you continue down this path you will end up with an overengineered monster that is not fit for reality and will probably never be released.
Release early, release often (but not too often). In other words, build a usable first version quickly and get it out. You need feedback from others (and some encouragement after many lonely nights helps a lot, too).
Now that you have a presentable product you are still miles away from the finish line. Since you want to make money from your product, you will first need to establish how to license it. There are more possibilities than I have fingers on both hands: freemium, adware, shareware, regular commercial; licensing can be per computer, per named or concurrent user, per CPU, …
Once you have determined how to license your product you probably want some kind of enforcement, either in the form of a license file, a serial number or maybe even a dongle (yes, there are valid use cases even for dongles). This is where many of you will be tempted to quickly whip up some “secure” serial number algorithm that in reality is laughably easy to break and costs you more time than initially anticipated (developers are generally bad at estimating and always estimate too low).
Don’t do it yourself, unless you have very special needs. Buy a proven component that handles license generation and validation. I used SeriousBit Ellipter, a .NET component. I am very happy with the $ 99.95 purchase.
Once you have your licensing straight it is time to select a web shop. You need more than a mere payment processor like PayPal or Google Checkout. You want to sell globally to maximize your reach, but if you were to do that yourself, you would have to adhere to tax regulations and other complicated laws from hundreds of countries. You do not want to do that. Hand that off to someone else, a company specialized in nothing else but selling software to people from every corner of the globe, in every currency imaginable. The way it works is pretty simple: you sign a non-exclusive reseller agreement with the web reseller and they handle all the complicated tax stuff. And they make sure that the buyers’ money finds its way to you. For that they charge a commission, measured in percent of gross sales. They also have an absolute minimum commission per sale which may or may not be important for you depending on the price you are planning to sell your software at.
I chose eSellerate as my web reseller because they have low relative and minimum commissions. Tech support is good and the backend works well enough.
Getting the Serial Number to the Customer
Once a potential customer makes up his mind and wants to become an actual paying customer everything should ideally be instantaneous and work absolutely seamlessly. Have you ever given up in a web shop because the process was too difficult? I bet you did – at least I have. That is not what you want to happen to your prospects trying to buy a license. Consider that and answer the seemingly simple question: how to get a serial number to a customer who just bought a license quickly.
In practice there are several ways that work with most reseller’s systems:
- Upload a text file with serial numbers to the reseller
- Develop a license generation tool to be used on the reseller’s shop server
- Implement a script on your web server that returns a servial number when called from the reseller’s shop server
Out of these, uploading a text file is by far the simplest and most foolproof. And since I am a big fan of simple, effective and reliable solutions I created 10,000 serial numbers with Ellipter’s generator and uploaded them to eSellerate. That should suffice for a while – if it does not, I am happy to generate another 10,000 serial number list.
There is a lot more to starting your own software company than I could write down here. I did not even mention important topics like marketing or how to build a website (I covered part of that already). If you found this post interesting and would like to read more about my adventures and experiences as an entrepreneur, let me know by commenting below and I will write more.