Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Articles Advice on Starting Your Own Software Company

Advice on Starting Your Own Software Company

Key Takeaways

  • Choosing the right stage of the market is vital
  • Different ways of selling bring different opportunities 
  • Use outsourcing, but do it wisely
  • Legal part is the immune system of your project
  • Prototyping makes a difference

So, you have an idea to start up with. Indeed, it looks like you have the idea. But is an insight, even the brightest one, enough for success? This question gives rise to a bunch of other questions. Do I have any chances to succeed without huge startup funds and experience? Do I have to be a software developer myself? What are my first steps? Be sure you stand a good chanсe to succeed even without software competence and extensive funds. Follow our guide and learn how to establish a software development company step by step.

Conduct market research

The first thing you should do before starting a software development company is conduct market research. Identify your major competitors, target audience, their needs and preferences. Analyze the stage you are entering the market in: introduction, maturity, or decline.

  1. At the introduction stage, there’s no such software on the market. As a result, your product may be either in huge demand or in no demand at all, if you fail to persuade customers that they need it.

Let’s look at some examples that illustrate this idea.

In 2008, Airbnb, Inc. launched a website for people to book accommodation worldwide. The idea was to allow tourists to rent lodging from local citizens. At first, investors were reluctant to pour money into this project because of the widespread belief that few people would want to rent their apartment to strangers. However, the company was founded during the Great Recession, when people urgently needed extra money, which contributed to the service popularity. Now, the website has more than 200 million guests and covers more than 191 countries.

Launched in 2009, Uber Technologies Inc. also managed to make money on the crisis. They developed an application that enables users to book drivers who use their own cars. The service satisfied both drivers in need of extra money and passengers who wanted cheap rides. Now, the service operates in more than 83 counties and 737 cities worldwide.

So, Uber and Airbnb managed to come up with fresh ideas right when the market needed them most. But sometimes great ideas appear way too early.

An online entertainment company was founded in the 90s and attracted 750,000 visitors per month. Although it received enough funding and was based on a great business model, the company went out of business in 2003. The reason for it was that the founders did not take into account that broadband penetration was extremely low in 1999-2000, making it too hard for users to watch video content online. Two years later, when broadband penetration in the US reached 50%, YouTube successfully entered the arena. As you can see, appeared on the market when it was not ready for it yet.

  1. At the maturity stage, your competitors already gain good revenue on similar software, but there is still some space in the market. For example, you know how to create an alternative that will be more powerful or more affordable. This is, probably, the best stage to enter the market.

For instance, Kaltura, Inc. was founded in 2006 and launched a video platform to manage, distribute and publish video content. Instead of covering the whole market, the founders decided to target several sectors, such as enterprise, education, and media. Now, about 300,000 enterprises, education and media organizations use the company’s services. This example illustrates that you can succeed at the maturity stage thanks to focusing on particular niches instead of trying to cover everyone’s needs with your solution.

An opposite tactic can also bear fruit, if thought out carefully. Masquerade Technologies, Inc. was founded in 2015 and offered customers MSQRD (Masquerade) - a face swapping mobile application. The application allows users to change their look selecting a filter mask or an effect from the library and then share it with their friends on Facebook and Instagram. Although developed in Eastern Europe, this application quickly gained popularity in the US and Asia-Pacific and was bought by Facebook in 2016. The secret of the product’s high virality is that the company glocalized their app: they went global and at the same time localized their application for each market creating different masks for different regions. For example, they offered Hollywood stars masks to users from the US, while luring users from Russia with Joseph Stalin’s and Vladimir Putin’s masks.

  1. At the decline stage, the market is already saturated with offerings similar to yours, which means that your idea lags behind.

In 2010, Rdio, Inc. launched a music-streaming website on a subscription basis. The service was popular in 85 countries. However, the company was constantly staggering behind its competitor Spotify, and eventually surrendered to them. Rdio filed for bankruptcy and was acquired by its competitor Pandora Media, Inc. in 2015.

This example shows that start ups’ problems may be attributed not to failed products, but rather a oversaturated market. If users are fully satisfied with the solutions they are already offered, they may be reluctant to look for any alternatives. What is more, they will hardly switch to your solution if they can use similar services for free. The same situation happened to Rdio when they offered a paid version of their product while Spotify started offering free services in their ad-based product version.

Choosing the right stage to enter the market is vital for the success of your product. You should focus not on the software itself, but rather on your potential customers. If they are interested in your offering, you are more likely to succeed.

Choose the way to sell your software

One more important thing is to decide how you will sell your product. If there are similar offerings on the market, study the way your competitors do it. Basically, you can either sell your software directly to the end user or allow users to download it through your website.

In the case of direct sales, you will be dealing with big companies and SMEs. You may sell licenses for your software or charge for subscriptions, making the product available for a limited period while the subscription is active. You may also customize your software to make it perfectly suit customers’ needs. Your profit will depend on the uniqueness of your software and on the number of competitors on the market. Basically, selling a few expensive licenses to big companies may be as profitable as selling lots of cheap licenses to SMEs. 

If you plan on selling your software through a website, you should start with offering users a free trial of your product to see if it works for them. Meanwhile, you may gain revenue from support and maintenance.

Run your software development business

Basically, you may own a successful software business without a technical partner. However, having someone more code-savvy may be useful. They can be involved part-time into your company and review the architecture and code. In return, you may offer them equity in your company. However, you will have to share your growing profit with the co-owner in the future.   

One more option is to turn to a reliable vendor offering software as a service. However, you will depend on them a lot, as you will have less control over the software development. Besides, you should allocate some extra time and budget for communication with the vendor to make sure the software satisfies your requirements.   

Start up

Once you’ve conducted market research and decided on the way you are going to sell your product, you may proceed to the software development company creation.

Structure your efforts in accordance with the following step-by-step guide.  

  1. Protect your intellectual property

Once you have an idea, obtain the necessary patents and register trademarks to protect it. Make your collaborators sign a non-disclosure agreement at the product creation stage to prevent leakage of any project-related information. 

  1. Draw up a business plan

State your business purpose, product, target audience, competitors, financial needs, and the expected time to market for your product. Don’t underestimate this step, as the wrong business model will most probably undermine the success.

Quirky, Inc. delivered the invention platform where people could vote on product ideas they appreciated, and the company would then manufacture and sell them in 2009. The company spent over $800,000 developing the products, but neither of them brought in high profit. The startup struggled to raise money, went through numerous layoffs, and even shut one of its offices. Later on, they eventually filed for bankruptcy and sold the business in September 2015. Now, the invention startup is back with new owners and a new business model. The platform preserves its purpose, but Quirky itself will no longer manufacture products. Instead, they delegated this task to other companies.

The startup conducted no market validation and chose the wrong distribution channel – retail chains. So, they overspent on inventory but failed to recognize whether each product addressed a real consumer need. After all, clicking on an invention you like is different from being ready to pay for it.    

  1. Consider legal issues, taxation, and insurance

Determine the legal structure of your business for the purpose of taxation. Take care of insurance in case something goes wrong with your software.   

  1. Engage developers

Organizing your own software development team is difficult, time-consuming and expensive. Consider outsourcing your development efforts at least at the first stages. This way, you will get this piece of work done by specialists. If they are overseas employees, you may benefit from their lower labor rates compared to those of the specialists inside the US. Longer project engagement, costly onsite training, language barriers, and different time zones are possible drawbacks with this option. However, reliable contractors mitigate them to the minimum.

When hiring a software development team, keep in mind the following:

  • Do not contract suspicious outsourcing vendors or freelancers. Let alone doubtful reliability and security issues, one day you may find out that your software is available for free downloading while you initially intended to charge for it. Ideally, you should turn to a reliable software development company with a solid reputation. Number of employees being over 50 and time on the market being longer than five years are easily available and useful indicators. This contributes to fewer delays in your project implementation.
  • Remember to keep the ownership of the source code. To ensure this, you may apply the ‘work-for-hire’ rule when the developer creates the software for you as an employee. If you turn to a vendor, store the source code in your source code repository, not one owned by the vendor. Otherwise, you may have to start your project from scratch when changing the development team or vendors.

On the contrary, hiring wrong people will ruin even the most elaborate plan. GovWorks Inc. was founded in 1998 and launched a web portal for civic requests to facilitate communication between citizens and local government. The founders had a sound business plan, sufficient venture capital, and a growing audience. However, the company went bankrupt and was sold to First Data Corporation in 2001 due to the struggle between its founders, mismanagement, and the project team’s inability to ensure high product quality. The absence of well-coordinated teamwork led the company to a failure.

  1. Test the software

Testing reveals bugs in your software and ensures its quality. This way, you increase customer satisfaction, which adds to your profit and reputation.

There are several testing options to ensure you offer a quality product:

  • Outsource testing to the same company that does the development. This company already understands your project. Besides, the developers and testers inside one company can cooperate easily to settle your projectrelated issues. What is more, developing and testing conducted by the same company may cost less than delegating these efforts to different companies.    
  • Outsource testing to a separate quality assurance company. This way, you bring new testers with a fresh perspective into the project. However, it will take some time for them to study your project’s specifics.
  • Do testing yourself. You will have to do some acceptance testing anyway, but the testing during development is rather timeconsuming. It will probably take around 30% of development efforts.  

It’s always cheaper to do testing yourself. However, factors such as time pressure can make you delegate your testing efforts to others.

Create a prototype

Software prototyping allows you to get an idea of how the final product will look like before investing time and money finishing it. A piece of software enough to enter the market is called an MVP (Minimum Viable Product). Users test it, provide their feedback, and decide whether they opt for it in the future. At this stage, correcting mistakes is easier and cheaper that doing if after the product final release. That is why you should come with a prototype as early as possible. After you assess how it goes with your software prototype, you can make all the necessary changes. 

Once you have a prototype, or better yet, an MVP, you may attract venture capital, grants and loans, find investors among your acquaintances or attract online funding resources.

On a final note

Starting a software development company involves much effort. Now, you have a detailed guide on how to do it. Do not neglect the steps described in it, learn from other companies’ positive experience and mistakes, and you will successfully cope with the challenge.  

About the Author

Boris Shiklo, CTO at ScienceSoft, is responsible for the company’s long-term technological vision and innovation strategies. Under his supervision, the company’s development team has successfully fulfilled complex projects of over 80,000 man-hours in Healthcare, Banking & Finance, Retail, Telecommunications, Public Sector and other domains. Boris Shiklo has a solid background in IT consulting, software development, project management and strategic planning. 

Rate this Article