From Idea to Software Product: Many Roads to One Goal
In the Ukrainian IT industry, especially in the sphere of software development, new companies spring up like mushrooms after rain. Do you consider yourself a founder and CEO of such a company? So take into consideration that companies are as different as day and night. According to the approach toward business solutions, IT enterprises can be divided into several groups. After reading this article you’ll get to know about various kinds of development companies, their similarities, and differences.
In any sphere, be it home construction, tailoring or software development, the road from the initial idea to the first dollar, received from final product sales, is rocky. Production of any goods can be divided into many operations, processed by different specialists. If software is developed from start to finish by a product company, one can fairly say that not only developers and software testers have contributed to the creation of the program, but also accountants, lawyers, company’s sysadmin and a cleaning lady Mary. These people play an important role in R&D management. Usually, they do all legal and financial support for your R&D center, as well as many back-office services.
However, in many cases, it is the developer who decides which tasks it would be rational to complete by oneself, and when it’s more practical to engage an outsourced intermediary.
To shift one part of work to other shoulders is a sound idea. But which part? Well, several options are possible. From “I want you to make it nice” (outsourcing) to “Only by myself” (product company) – practically, it can include everything that lies between these two poles.
The question “Which of these two options is better?” is, in my opinion, incorrect. Here it’d be more relevant to ask “Who is this option best suitable for?”
Let’s consider them one by one.
Outsourcing development: buy results
A customer has an idea, and he/she wants to turn it into a product. The customer knows what to do with the ready-to-use product and how exactly it has to work. Nevertheless, such people often don’t know how to create a product and how it is designed – it can be out of their competence. For instance, a company, unrelated to information technologies, needs a tool for doing business in Ukraine, – for example, a very specialized app.
The task is usually given to the developer by the company’s CEO, CMO, and sometimes CIO. Then, the developer chooses technologies that are going to be used in the course of developing. He/she can create a product from scratch or customize the already given drafts. In the latter case, the developer has, of course, to make sure that the product won’t violate IP rights. He/she has to keep in mind that any kind of programming includes documentation and testing. What concerns support, it can be provided by this or that developer – it’s up to the customer.
Generally, in the outsourcing model, the customer sets the task, and the executor performs it by oneself, assuming all responsibilities. The customer just has to make clear-cut requirements. You know perfectly well that ambiguous customer requirements lead to poor results.
Therefore, outsourcing is an ideal solution for small and short-term (up to 1 year) projects, as well as for other projects that the customer won’t be able to finish alone. Either the customer doesn’t want to do that (tons of other projects, staff is busy and the project is short) or he/she isn’t able to take up the project (lack of knowledge and specialists, no plans to start developing software).
Outstaffing: personnel “for rent”
Outstaffing, or personnel leasing, should not be confused with outsourcing. Outsourcing implies the leading role of an executor, while outstaffing means that a customer plays the first fiddle.
If you are the customer, employees are at the same time yours and not yours. They are yours because you (or your manager) give them tasks, control their completion, and pay salary via a supplier. They are not yours because at the same time your employees are staff members of another company – an outstaffing agency. In other words, this is an intermediary that employes best offshore developers for you.
In this case, the customer clearly understands how his/her future product is designed, how it is going to be developed, and what technologies are going to be used. The customer supervises the project and often participates in IT staff recruitment.
The company that “rents” a team of developers has, as a rule, its own IT department and, perhaps, a development team. However, as for now they need additional workforce and brains, but expansion isn’t included into the company’s plans for the near future.
Outstaffing itself is a perfect tool for costs reduction, taxes optimization, as well as for the facilitation of HR and accounting processes. In the Western European countries and the U.S. over 90% of firms like VRHealth, BeinHarim, GThost use outsourced IT recruiting services from from time to time.
Outstaffing is more practical for middle-term (from 1 year) projects. You get specialists, who work for your company the same way as staff members, with no worries about their legal employment, taxes, payroll etc.
Outsource everything, but programming (R&D + BPO)
Business process outsourcing (BPO) is an excellent solution for a software company. Among companies that use this model are People.ai, Tonic Health, Smartling, MyHeritage and others.
Assigning all operational work to a professional service provider (programming excluded), the company makes its life easier. Accounting, tax and personnel audit – it all can be delegated to a third-party contractor so that it becomes possible for the company to work purely with software products.
The benefit is also undeniable in terms of attitude to work; developers understand the product intimately, hence you receive a dedicated team of professionals fully focused on a company’s product.
From A to Z (product company with its own R&D)
Product companies are self-sufficient. Both programming and business processes are provided on its own. All employees are staff members, including programmers, testers, accountants, lawyers, and HR managers. Samsung and Snapchat are examples of such product companies.
A product company has its own office, HR and security services. Its lawyers monitor compliance with the legal norms, interact with the controlling authorities and solve problems, and the company’s accountants know all specifics in the field.
It sounds intriguing. However, in Ukraine only 26% of companies in this field are product ones with its own R&D center. The rest 74% are outsourcing companies.
In Israel the situation looks different: 15% are outsourcing companies and 85% are product companies.
Why are there comparatively few product companies in Ukraine?
Firstly, such company is regarded as a legal entity with all follow-ups.
Secondly, at the beginning expenses are high. Office set-up and recruitment cost lots of money, if not to mention developers’ work tools. These expenses are going to pay off afterward, but it’ll happen no sooner than in a year.
Thirdly, your own R&D office from A to Z means that the company’s chiefs will have to deal with labor and tax laws, as well as with stuff, which is far from being related to development (accounting, payroll, sick leaves, vacations).
The successful product company is your own brand, it’s your dedicated R&D team and trustworthiness.
The key point here is a completely different approach to work and the team’s attitude towards the product (valuable intangible asset).
Having written the code, an outsourced developer can never see it again. Here a developer knows the product he/she makes from A to Z and understands which of its parts is responsible for the particular tasks. He realizes that after a while he/she will make changes to the code (e.g. scaling). The developer not only does his/her best (as many freelancers and outsourced employees do), but also works with an eye to the future.
Each option has its advantages
Yes, in product companies and in the R&D + BPO model a programmer is fully involved in the process of product creation and feels like its co-author.
Outsourcing and outstuffing are characterized by flexibility, as well as by rich and diverse experience of the developers. On the other hand, these models have narrow specialization in one particular field, which means high speed and quality of work.
By large, it’s incorrect to set product companies in opposition to others, especially outsourcing ones. There are product companies which take orders from outsourced developers while outsourcing companies can develop their own products. Many giant outsourcing projects last for years, and their team composition often stays the same. Companies are also constantly changing. An outsourcing company can become a product one or vice versa. The most important is that founders of product companies cannot show up from anywhere.
Those who now work as outsourced employees or just not in-house are gaining experience in programming and business. This is the very experience that will help them found their own product company and become successful in the Ukrainian market. So, we wait for the increase of such companies in the near future, provided that the business climate in Ukraine assists it.