Patrick Smacchia [MVP C#]

Sponsors

The Lounge

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
Advices for developers on starting an Independent Software Vendor (ISV) business

 

As a developer (and if you read my blog there are good chances you are a developer) you have an enormous potential to start a company. I think that most developers don’t realize how big this potential is. I started an ISV business by selling the tool NDepend for .NET developers. I am still in the process of making the business growing and it is a great adventure. I would like to expose in this blog post some advices that could help a developer doing so.

 

 

The cost of developing and selling software

 

What do you need to start developing a software? A good PC, some development tools and an internet connection. Maximum 3000US$ investment (that you certainly have already invested). Most other engineering industries needs millions of $ investment. Think of the cost of starting a business of physical assets like electronic devices.

 

Minimal investment is a good incentive but the biggest advantage of software over others engineering industries comes from the cost of unit. What does it cost to build one license of a software? 0 US$. What does it cost to build 1.000 licenses of a software? 0 US$.

 

I am caricaturing and the provocation is intentional. Of course the cost of doing software is the investment made in development. Also, if you have 10.000 users, the cost of the support will certainly be 10 times the cost of supporting 1.000 users. Concerning the support it is all about making it scale. The experience we have with our tool, shows that playing the agility rules largely pays. Releasing often to make sure that all bugs reported are fixed, investing in the quality, investing in a neat UI by listening carefully to feedback, making sure to update the documentation each time a user ask a question, yes it pays. The number of questions asked and bug reported stays small and is not increasing linearly with the number of users.

 

 

Advantages of becoming an ISV over doing another software development job

 

Before digging further, I would like to underline the advantages of being an ISV over being a consultant, an employee or a trainer? Here are my thoughts:

·         You spend most of the time doing what you really like, coding.

·         Freedom! There is nobody to tell you what you should work on, when you should work or the amount of quality you want to put in your code. You can also (more than less) choose who you want to work with and the location from where you are working. South of France or a tropical island, nobody cares except you. The availability of a decent and reliable internet connection is the only limit.

·         Day after day, you capitalize on a code base and you can begin dream on. Successful small ISVs business sometime end up being bought by bigger companies.

·         The amount of incoming money is not proportional to the work put in it. If the software doesn’t sell well this is a very bad point. But in the case of successful sales, it can be much more income than any consultancy position. The reason is clear: as explained below, you can make it so that selling 1 or 1000 licenses cost you the same price. Software is the only industry that makes this magic possible. Is it by chance that the richest man in the world during the last 13 years was primarily a software developer?

·         Starting a business tends to be a positive point on a CV. Even if your business fails it doesn’t mean that you lost some time in your career. During a job interview you can ramble on the courage and motivation you had starting such an adventure and what you learnt on the way. Many interviewers you’ll meet are employee forever that might be impressed by what you dared.

 

Controlling the human factor

The only human factor you can control is your own motivation. How can you prevent anyone on earth potentially ruining your business? The answer I found is to multiply the number of clients. This is only possible if the price for a license is affordable, like a few hundreds of US$. The other option is to have a few clients and to sale expensive licenses. But then instead of having a powerful boss, you get a powerful client and here come the human factor.

 

Don’t take me wrong here on the term powerful client. For example, we are constantly striving to give power to NDepend users by listening very carefully to any client feedback and do our best to satisfy each of their requests. Satisfying one user results in satisfying all users. On the other hand there is no user with enough power to impair our business. There is no user that invested more than a few hundreds or thousands of US$. If it happens that a company asks for its money back, this is not a problem. Hopefully it has never been even close to happen.

 

Sometime you don’t have the choice on the range of clients: your idea of software will only help a few dozens of users, maybe important users that can pay hundreds of thousands of US$ licenses (like design tools for semiconductor). My opinion on this: forget it! If less than several dozens of thousands potential users and independent companies, then you will expose yourself to the human factor.

 

Reducing the risk to almost 0

What is the biggest risk? Quitting your job for a poor business and not being able to recover a job as good as you had.

 

I would be scary to do some B2C (Business to Customer) software, even though the range of customers is virtually millions. Something like video game for mobile phones, real-estate web agency or web search engine. Last decade has proven that successful B2C software earn billions of US$ per year. On the other hand, the risk is extremely high. It is like playing lottery. How many web search engines do you use? How many web search engines projects have been started and failed?

 

The safer solution is to find a B2B (Business to Business) market, to target professional users. You need to provide a software with an affordable license price (100/500 US$ per seat) that can save a few hours a week of some professional users. Professional users won’t hesitate to spend of few hundred US$ to save a few hours a week. To reduce the risk closer to 0, my advice is to start providing a free version of your software on the web. Then you can wait 6 to 12 months to see if indeed your software is able to get a few thousands of download. This will show if there is a real demand for what you want to do or if the usefulness of your software is just the product of your imagination. A bit of free marketing here (articles on specialized web sites, enthusiast’s bloggers reviews, user group presentations…) is needed for cranking what you are looking for: the word to mouth effect.

 

This is what happened accidently for NDepend. At the beginning, 4 years and half ago, I developed a simple tool in a few days to compute a few metrics on a .NET code base. At that time, I was consulting on a large code base and part of my job was to help improving quality. Then I put the tool on the web simply because there were no reasons to not sharing it with others developers. One year and a half later, a few thousands of developers were interested in it. Some of them were very enthusiast about it. I realized that a small (but existing) percentage of them would be happy to pay a few hundreds bucks to have a more sophisticated tool to control precisely their code structure and quality.

 

Do the math, a small percentage of a few thousands users a year, ready to spend a few hundreds of US$ each: it is enough to start making a living on it, and consequently it is enough to quit your job to work full time on it and with a bit of luck, starting hiring.

 

Deciding what your software will do

This is by far the most critical point. You absolutely need 2 fields of expertise: the ability of developing good software but also a strong competence on the field targeted by your product. A seasoned software developer usually lacks the second expertise. Which kind of professional users will your software help? Architect? Manager? Health pro? Insurance pro? Transportation pro? Financial pro? Administrator? Accounter? Security pro? Lawyer? Then you need to be associated with someone as motivated as you are and with many years of professional experience in the targeted field.

 

We all saw several successful projects (in terms of sales) made by non-expert development team. I consulted in the past for a software company that made many millions of US$ a year by developing and selling a tool that made the life of Lotus Notes administrators a bit easer! What your software will do and how it will do is much more important than how it is developed. A very well coded software that is not useful to anyone is a failure. Hopefully having a sane development certainly helps satisfying more users and be able to add important features often.

 

The market of software tools for developers is unique. Indeed, a developer can hold both the capacity to do the software and the expertise to imagine how to make the life of developers easier. The downside is that doing a tool for developers is very challenging because there are plenty of talented guys that already had many ideas. I wouldn’t even think of trying to start a project to compete with tools like Reflector, Resharper, CodeRush , DXPerience, dotTrace, ANTS Profiler, Dotfuscator, Llblgen, SmartFTP or Beyond Compare. Each of these tools is the result of many man-years of super talented developers. If you start a promising tool, some competitors will come and challenge you anyway. But at the beginning, it is your choice to avoid any field where some solid and recognized competitors are already there.

 

However, each new technology represents an opportunity. Certainly, it is still time to do the next super useful tool for Silverlight developers. Within the next years there will be hundreds of thousands of Silverlight developers. The most enthusiasts ones will be ready to pay a few hundreds of US$ for a tool that will save them a few hours a week.

 

A promising case-study of this tenet is the initiative of Ayende to develop a profiler for NHibernate users.

 

Conclusion

·         Start small and take the time to assess in the real-world the sale potential of your software before quitting your job.

·         Target professional users that do spend money to save time and pain.

·         Don’t even start if you can’t count the potential number of professional users in thousands.

·         Don’t even start if some solid competitors are already addressing properly the need for your product.

·         The software should be able to pay the development bill with an affordable license price, like a few hundreds US$ per license.

·         Don’t even start if you need to borrow money to crank the business.

·         Once started, make sure to play the agile rules to limit the cost of the support. The support is the only recurrent cost in software that can potentially increase linearly with the number of users.

·         And the most important by far: be sure to have a super-solid expertise in the field your software will target. If you need a tier person for this expertise, ensure that his motivation is as strong as yours.

 

After being a developer, a team leader, a consultant, a trainer, a software book writer, I found it very exciting starting an ISV business adventure. I hope that these few advices can help you doing so.

 


Posted 11-03-2008 3:04 PM by Patrick Smacchia

[Advertisement]

Comments

Patrick Smacchia wrote re: Advices for developers on starting an Independent Software Vendor (ISV) business
on 11-03-2008 9:57 AM

Interestingly enough, I just found these articles that reflect for the most part what I think:

www.userscape.com/.../4_rules_for_the_practical_entrepreneur

www.startupspark.com/ian-landsman-userscape-helpspot

Pick a large, but fragmented market.

If possible go B2B instead of B2C.

Keep your pricing really simple.

If possible make your first product something you can use yourself.

Blog blog blog.

Finest Real Estate Info » Blog Archive » Advices to developers on starting an Independent Software Vendor … wrote Finest Real Estate Info » Blog Archive » Advices to developers on starting an Independent Software Vendor …
on 11-03-2008 10:06 AM

Pingback from  Finest Real Estate Info  » Blog Archive   » Advices to developers on starting an Independent Software Vendor …

Romain Verdier wrote re: Advices for developers on starting an Independent Software Vendor (ISV) business
on 11-03-2008 10:33 AM

Nice post. All that sound really true, and it surely is. But beyond the pragmatic vision, I think it takes more than a bit of motivation to start your own business as an ISV.

One safe way to succeed could be to wait for an "accidental" success, while developing small tools, contributing to OSS projects, blogging, etc. All what you described well...

Julien wrote re: Advices for developers on starting an Independent Software Vendor (ISV) business
on 11-04-2008 1:16 AM

patrick, this is a great story, all the best for your software company.

Microsoft is lucky to have partners like you.

regards

Julien

Fernando wrote re: Advices for developers on starting an Independent Software Vendor (ISV) business
on 11-04-2008 9:18 AM

Patrick:

Look here:

On passion

www.lostechies.com/.../on-passion.aspx

Passion for the craft

Passion for the domain

Fernando

Arjan`s World » LINKBLOG for November 4, 2008 wrote Arjan`s World » LINKBLOG for November 4, 2008
on 11-04-2008 4:40 PM

Pingback from  Arjan`s World    » LINKBLOG for November 4, 2008

Manoj Waikar wrote re: Advices for developers on starting an Independent Software Vendor (ISV) business
on 11-04-2008 10:28 PM

Excellent, practical advice Patrick - specially the points like "going for B2B instead of B2C". And this one is a gem - "If possible make your first product something you can use yourself."  [ eating your own dog-food :) ]

Thanks for a great post.

Regards,

Manoj.

The tech (s/w) biz « Life, programming etc. wrote The tech (s/w) biz « Life, programming etc.
on 11-04-2008 11:31 PM

Pingback from  The tech (s/w) biz « Life, programming etc.

2008 November 05 - Links for today « My (almost) Daily Links wrote 2008 November 05 - Links for today « My (almost) Daily Links
on 11-05-2008 4:23 AM

Pingback from  2008 November 05 - Links for today « My (almost) Daily Links

New Casino Gambling Info » Blog Archive » Advices to developers on starting an Independent Software Vendor … wrote New Casino Gambling Info » Blog Archive » Advices to developers on starting an Independent Software Vendor …
on 11-05-2008 11:40 PM

Pingback from  New Casino Gambling Info  » Blog Archive   » Advices to developers on starting an Independent Software Vendor …

Code Monkey Labs wrote Weekly Web Nuggets #37
on 11-10-2008 1:08 PM

Pick of the week: Advice For Developers On Starting An Independent Software Vendor (ISV) Business General Tips For Preparing For A Technical Presentation : Scott Hanselman shares how he prepares for technical presentations. LINQ Cheat Sheet : Brad Vincent

Code Monkey Labs wrote Weekly Web Nuggets #37
on 02-22-2009 10:36 PM

Pick of the week: Advice For Developers On Starting An Independent Software Vendor (ISV) Business General Tips For Preparing For A Technical Presentation : Scott Hanselman shares how he prepares for technical presentations. LINQ Cheat Sheet : Brad Vincent

Add a Comment

(required)  
(optional)
(required)  
Remember Me?