Software Entrepreneurship

Jakob Jenkov
Last update: 2014-07-23

Software entrepreneurship is the process of turning an idea into a real software product or service. This guide is intended to give you an overview of what it means to be a software entrepreneur.

I am no Bill Gates, Steve Jobs, Jeff Bezos, Larry Ellison, Larry Page, Sergey Brin, Mark Zuckerberg, Elon Musk, Janus Friis, Nicklas Zennström or anywhere close. I don't have the experience or success of these people.

I have studied lots of successful entrepreneurs and products though, and I am constantly working on my own ideas too. This guide is based on what I have learned so far. I will update this guide as I learn more. Thus, this guide is not the final truth. I is just my personal interpretation of software entrepreneurship. I have also included a list of resources where you can learn more, at the bottom of this guide.

What is Software Entrepreneurship?

The intention of software entrepreneurship is to put a product or service into real use. This may not always be the result, though. You may give up on a product or service before it is completed for various reasons (you run out of cash, your competitors look too strong etc). Or you complete the product, but nobody wants to buy it or use it. As long as the original intention was to put your product or service into real use, I would still call that software entrepreneurship. Entrepreneurs fail a lot before they succeed. However, developing a hobby project that is never intended to be put into real use would not be software entrepreneurship in my opinion.

Software entrepreneurship does not have to result in a business. I would also call open source development for software entrepreneurship. Even if you do not personally deploy the product, by making it available for others to deploy, the intention is still to have the product put into real use.

Software entrepreneurship does not have to be a full time engagement. It is possible to work as an employee during normal work hours, and as an entrepreneur in your spare time.

A key difference between being a software entrepreneur and a software developer is whether you work on your own ideas, or on somebody else's ideas. Entrepreneurs generally pursue their own product or service ideas where as a software developer typically pursue the ideas of their employers.

Another key difference between being a software entrepreneur and a software developer is that as an entrepreneur you are the final problem solver. Whatever problems your project has, if nobody else can solve them, they fall back on you. As an employee, if you have a problem you cannot solve, you can typically send the problem up the hierarchy and have somebody else deal with it.

The Software Entrepreneurship Process

Software entrepreneurship is an ongoing process, typically going through the following steps:

  • Getting an idea for some software product or service
  • Developing the software
  • Testing the software
  • Deploying the software
  • Releasing the software
  • Testing the idea
  • Marketing the product or service
  • Monetizing the product service

While there is typically an overall progression from the first steps towards the last, you will rarely process completely linearly through these steps. Most of the time you will be moving back and forth between the steps, and you may take multiple iterations through them too (for version 1, 2, 3 etc. of your product).

Additionally, some of these steps may be executed in parallel. For instance, once the first version of your product is out, marketing of the product can be executed in parallel with the development of version 2.

As a software developer in a larger organization you can often just focus on the development and testing of the software, but as a software entrepreneur you are involved in pretty much all of the processes.

Getting Ideas

Ideas for software products and services (or any kind of product or service in general) typically satisfies some want or need. Either the product solves a problem that some users have, or gives them something they desire.

Developing the Software

Developing the product is the part of this process that we software developers are reasonably comfortable with. However, when developing a product you don't know if the users like, is a different story than developing a product that some customer ordered. It requires a different approach. You develop a minimum viable product, release it, and see what the users say.

Testing the Software

Of course the product has to work reasonably well before you present it to potential users. But, depending on the nature of the product, it does not have to be perfectly tested from the first moment on. Once you know that the users actually want your product, then you should build more testing into your process. Once users start relying on your product, they will expect it to work flawlessly.

Deploying the Software

If the software needs to run on some servers (e.g. a web application or some other hosted product), then you will need to deploy the software once it is developed and tested. In a bigger company you may have somebody else doing that, but in a small startup, you as a developer will most likely be involved in the deployment.

Releasing the Software

Once the software is deployed, it is ready to be released to the users. In case of a desktop or mobile app, the software has to be made available for download to the users. You may decide to release the software to only a subset of users to test their reaction to it, before you release it to everyone.

Testing the Idea

Once the software is released you can start testing the idea that led to the software. In other words, you can start measure how people use your software, to see if they actually use it the way you expected. The numbers will give you an idea about whether the users like it or not. Low engagement means that something might be wrong with the software - or the idea behind the software.

If the users do not use the software as you expected, try experimenting with the software to see if you can get user engagement up. Add, remove or change features. Give features new names. Use different colors etc. All the time while measuring how the users are actually using your software.

Marketing the Product or Service

Once you have validated your idea, you are ready to start bringing bigger numbers of users on board. This is when the real marketing work starts.

Monetizing the Product or Service

Monetizing a product means finding some business model which enables you to make some money from the product. There are a couple of standard ways to monetize applications. One way is to show ads inside the product. That is what GMail and Facebook does. Another revenue model is to sell information extracted from the application. For instance, how many users are doing this or that, of have this or that characteristic etc.

A third revenue model is to charge for your product. This another test of your idea. Are people really willing to pay for your product?

Why Become an Entrepreneur?

Originally I wanted to become an entrepreneur because I wanted to the the CEO. I wanted the credit and the money. However, these are bad reasons for becoming and entrepreneur. In the beginning you often earn a lot less money than you would in a job, and there is not much glory in working seven days a week for the same salary you would get as a supermarket clerk, or being unable to pay your bills. If you are in it for the money and glory, chances are you will quit long before you make it.

The best reason for being an entrepreneur is that you have some idea that you just have to realize, some larger purpose you just have to pursue. Why? Because even if you experience failures and setbacks along the way, you keep going. Even if you make no money, or a lot less than you would as a software developer for a large company, that is not what matters. The idea matters. The purpose matters.

As an entrepreneur you will most often not have the same stability as an employee. Especially not in an early stage startup. Later, when your company grows (if it does) you may be able to have a more normal work life, and a more stable income. But even then, remember that all unsolved problems fall back on you in the end (or your CEO, if you have hired one). If you want stability and security, don't become a full time entrepreneur.

However, entrepreneurship does not have to be a full time engagement. At least not in the beginning. Lots of people earn their money from a combination of sources. A full time or part time job, some freelancing, and some product sale on the side. You can start small.

Why Software?

Software is a fantastic product. You can start with an idea and create a very valuable product just by flipping bits on a hard drive (as in "programming"). Software can be made from home. It requires no big factories to get started. It requires no raw material. Being digital in nature, once software is made it can be made available to almost anyone at a very low cost.

Learn More

This guide is very brief so far. That is the intention. To give you a quick overview of what it means to be a software entrepreneur. The purpose of this section is to provide you with links to where you can learn more (a lot more) about the various steps of the software entrepreneurship process. I will update this section as I discover more great resources to learn from.

Resource Description
http://thisweekinstartups.com This Week in Startups is a weekly show where entrepreneur Jason Calacanis interviews other entrepreneurs about their business. It is by far the best learning resource I have come across about entrepreneurship. In addition to giving you insights about the struggles of entrepreneurs, the shows also give you references to people, books, resources etc. about entrepreneurship.

Jason Calacanis also interviews venture capitalists, and sometimes make small videos about useful topics for entrepreneurs, like how to present your startup to an audience.
http://theleanstartup.com The Lean Startup movement has a book on the subject of testing business ideas. This book is well worth a read, and the ideas are well worth testing.

Jakob Jenkov

Featured Videos

Java ConcurrentMap + ConcurrentHashMap

Java Generics

Java ForkJoinPool

P2P Networks Introduction

















Close TOC
All Tutorial Trails
All Trails
Table of contents (TOC) for this tutorial trail
Trail TOC
Table of contents (TOC) for this tutorial
Page TOC
Previous tutorial in this tutorial trail
Previous
Next tutorial in this tutorial trail
Next