The two most common business models among software companies are based on doing projects for clients or investing in product development. While both models can be rewarding and profitable, there are important differences that might make one model more appealing than the other. Moreover, initial investment and future predictability for those models are quite different. While one provides return of investment in a short period of time, the other requires a lot of time and money with unpredictable future but potentially much higher rewards.
Projects for Clients
Your clients are contracting your company for various reasons:
- They do not have expertise or tools to do the job themselves
- They do not have time to complete the task
- It is cheaper for them to contract your company than to do it themselves
Your company, on the other hand, will probably accept every project that has good return of investment. Since cost per hour is lower than what you're charging to the client, all but the smallest projects are considered as a good ROI. For many, it does not matter much what type of the project it is, whether technology is new or old or whether it is even a good idea to do the project. Those are concerns clients should be having and your business is to capitalize on their needs.
There are many types of clients. Some of them will come to you with a small budget and big expectations. Some will require you to sign NDA (non disclosure agreement) and SLA (service licence agreement). Some will require you to pay penalties if things go wrong. Others will come with a big budget but will require total control and will pick apart every single task trying to confirm that you actually know what you're doing. Some clients act like they are experts even though they contracted you to do the job.
Your business is to sell expertise in units of time. Because of that, you are in constant search for new projects and new hours to charge. If your company is successful in finding big clients, you might be able to jump from one project to another with the same customer. However, many clients are one timers. You are constantly on a lookout for new projects. The bigger the project, the longer period of stability you have.
Project clients are a great way for start-ups to earn money. More over, some very big companies also use this approach. Revenue starts pouring in as soon as the first project starts. There is no big up-front investment. The more projects you have, the bigger the business. Growth is limited only by your ability to find new clients and to contract new workers. Investment is minimal. If you are doing a good job, your reputation is increasing. Reputation, together with the price per hour are the only things that separate you from the competition.
One among many benefits of having a product is that you are in charge. You are the master of your future. Your product is either good or it isn't. People want to have it or they don't. The major difference when compared to projects done for clients is that people come to you. They pay you for what you already built instead of paying you for what you are going to build. They do not come to you with their own ideas or ways of doing business. They come to you because you have something that they need and they are willing to pay for it.
Instead of spending your time and energy trying to please your clients, your job is to continuously make your product better. Each improvement potentially increases the appeal your product has. Each new user of your product is a new validation of your ideas. The amount of time you spend working is not directly related with your revenue stream. The quality and appeal of your product is. Whether ten, a thousand or a million people choose to use your product does not directly affect the amount of effort you need to invest.
Another advantage of working on a product instead of client projects is that all your effort is dedicated on improvement of your own products instead of dividing your attention to projects that do not even belong to you. Each fix of the problem found by one of your users directly affects everyone. Each new feature that you develop produces benefits for all your users. The same applies to any other activity you do. Effort invested in improved documentation, marketing, deployment, customer support, etc. Everything you do affects all your users for good or bad. If you introduce a bug, it will be experienced by all.
When working on a product, helping your individual user or customer makes your product better. Whereas, when you're working on a client project, you do not keep any of the value you are producing. The only non-financial benefit you are gaining is knowledge and expertise. However, even that is limited since the direction you go is decided by others. While project client might have his mind made up regarding the technological stack or ways to manage flow, when working on a product you are free to choose the best way yourself.
The major downside of product development is investment. You often do not know how successful your product will be and when it will start generating revenue. Still, you need to invest time and money in development of that product. Time until investment is returned is much higher than with client projects. It might take a week, a month or a year until product produces ROI. It might even be a complete loss. On the other hand, potential earnings from a product are much higher than with client projects.
Project clients pay for what they expect is the valid outcome. Most of the time they pay for your time and retain all the value you produce. Investment is very low and ROI is almost immediate.
Product development puts destiny into your own hands. Success or failure depends on you. Value produced by you is owned by you. Downside is long period until the return of investment.
Why would you work on client projects? It provides easy and fast money without much investment. Many individuals and companies start with client projects. Extra revenue made like that can be invested into product development thus providing more stable and rewarding business.