Paradigms of Selling Software

Writing code allows developers to create tools that will do almost anything. The possibilities are often limited only by the imagination of the people building the software. However, developers frequently struggle with effective ways to share the benefits of their code with others and to earn revenue for the time they have spent creating it.

Get Hired

The most common first step taken by developers to monetize their code and knowledge is to get a job. They rely on a company to pay them to use their expertise to build functionality. This could be a full time salary position or a part time consulting engagement. Either way, there are downsides to getting a “job”.

  1. Loss of Time – Getting hired to create functionality is essentially the equivalent of selling time. Often, to make more money, a developer has to put in more hours. However, time is inherently limited and limits how much money can be made, regardless of the amount of experience the developer has or the value provided by the functionality they have created.
  2. Loss of Intellectual Property – When a developer is hired to create software, they rarely retain ownership of what they have created. The compensation a company is providing is contingent on owning all aspects of what has been created. The company then becomes the one to reap the benefits of the scaling revenue generated from selling the software created from the developer’s knowledge and skill.
  3. Loss of Freedom – When a developer is under contract or in the employ of a company, the company often dictates both what can be worked on and how it is worked on. Regardless of how much freedom the company claims to provide, the reality is that there will always be project requirements and deliverables to meet and often a prescribed path to ensure they are met. Work outside of the scope of the requirements or paths that don’t lead to delivery are rarely tolerated

Build a Company

Another approach that a developer can take to avoid all of the downsides mentioned above is to create their own software company or consulting firm. They are in full control of their time, the intellectual property they create, and how and what they choose to create. They could use their knowledge and expertise to train a team of consultants or they could create a website that provides software as a service or they could create a mobile application. However, there are downsides on these paths, as well.

  1. Investment – Building a company from scratch requires a lot of initial time investment, monetary investment, and emotional investment as the developer iterates towards success often via trial and many errors. These costs can be daunting regardless of what type of company is being created.
  2. Code Complexity – Most software products, services and mobile applications that are of a quality level high enough to generate significant revenue are built by a team of seasoned developers and other specialists. Very rarely can a single developer do it all alone and create something that will generate enough profit to usurp the compensation of getting a “job”.
  3. Business Challenges – Arguably, the tallest hurdle for a developer attempting to build a company is all of the non-development tasks and areas that need to be covered. Marketing, sales, customer support, and business development take a tremendous amount of time and effort that is rarely enjoyed by the developer.

Create Open Source Code

Creating open source code is a novel path towards monetizing code a developer is creating because code contributed to an open source project is almost always licensed for free general use. Many developers take this route to build a portfolio of sorts. Then the portfolio and recognition generated from contributions is used to accelerate either of the paths above. There are definitely challenges with this approach.

  1. It’s Free – Many, many hours have to be spent creating code for a project that cannot be directly monetized. The hope for revenue lies in building a large adoption base and then using it to drive a desired outcome.
  2. To Get Hired – Developers that create open source code as a way to learn and build their skillset and attractiveness to a company often struggle more with the loss of freedom and intellectual property ownership that they had prior to being hired. And, after being hired, rather than creating software for all to use, they are now just selling their time to create software for others to profit from.
  3. To Build a Company – While there are success stories of open source companies creating software that has generated a large enough following to create a revenue stream from enterprise version and tooling upsells, this path still carries some of the investment and complexity downsides and all of the business challenges associated with the traditional route to creating a company.

These paradigms represent the historic approaches taken by developers, but a more recent trend is to create and offer apps in the marketplace of a community driven app platform. Developers taking an app-centric approach to creating and delivering functionality are able to offer their monetized product to enterprise level customers without the most of the downsides mentioned above. This creates a new compelling paradigm for developers seeking to generate revenue from the code that they have created.

App platforms significantly reduce the complexity and amount of code that needs to be created to have a monetizable product. By leveraging a platform and the development community around it, a developer can focus their time creating code in the areas of their expertise and enjoyment. The developer’s app combined with other community apps and the functionality and presentation of the platform form a compelling value proposition for large organizations looking to replace expensive enterprise software or SaaS offerings.

Many app platforms offer software development kits in mainstream languages like Python and others. Developers can often stick with the language of their preference when creating their apps and avoid the time and expertise loss associated with learning a new language. They retain the intellectual property ownership of the code in their apps while gaining new distribution avenues.

Even developers in traditional job roles can benefit when their company adopts a community driven app platform. They can create internal apps and gain all of the language and expertise focus benefits while seeing usage of their tooling increase to more users across the organization. Many companies using developers in this capacity will often find compelling benefits in using the platform just to simplify their development framework.

Byte sized updates delivered to your inbox
  • This field is for validation purposes and should be left unchanged.