Beginning of a series of videos
Outsourcing is a way to delegate your projects, where customers outsource tasks to highly specialized companies. If there are companies that specialize in coffee machines, cleaning, engine development, or assembly. But why do a lot of companies that sell non-software development have developers? Okay, there's a lot of inhouse development right now, but what should the future hold? Personally, this question is a personal one for me, because I own a company that provides outsourced development teams to clients. And if that business model is a dead end, then I need to rebuild the business somehow. I wanted to search some scientific articles on efficiency of outsourcing in IT, but I haven't found anything serious. Maybe you can suggest me some literature or some links to scientific articles on the subject.
The supporters of inhouse have strong examples, like Tinkoff Bank which hired 9 thousand developers and built the best international fintech. And big IT companies like Microsoft and Google release, shall we say... sub-optimal solutions with non-obvious logic, weak business value, and space budgets for development. Tripple A-class game maker - CD Project Red, developing the most important game of his studio since 2012 and started active development in 2016, released a crude release in December 2020 (and judging by the leaks on the Internet, the ambition for the project has greatly diminished)! I should also add that outsourcing contractors who narrowly specialize in development come in all sorts of qualities, and just like with regular people - the skill of choosing a good outsourcing company is tricky. There may be no good outsourcing company to choose at all, and then you definitely need to build processes and have developers in-house? Advocates of inhouse development will add that in-house development is cheaper and of higher quality and many other interesting points. On the other hand, vertically integrated companies contradict the fundamental laws of economics and the current megatrends. So what happens - the fundamental laws of the division of labor, which showed their long-term effectiveness everywhere, stumble on the IT?
This video is the first in the "outsource or inhouse" series, in which I will try to address the problem in a comprehensive and voluminous way to start a discussion with IT managers, and today I will touch on the "key (or core) product" problem of the company.
The key product problem
Today, the boundary between IT and non-IT is not easy to define. After all, all businesses today are in some way IT. If this is the case, then you have to build development teams internally? If your product is delivered with the help of some IT solution - for example, in a bank it can be online banking, and in a game studio it can be the computer game itself - is development your core competence or not? After all, if it's your core competence and your key product - it definitely has to be in.
So how do you figure out whether software development is an internal competency or an external competency? Is it an asset or a liability? Is it a core competency or not a core competency? After all, accounting, HR, marketing, construction, banking, growing flowers and supplying coffee machines on a large scale all depend on IT products today. How many times have we all heard that a company has made its own ERP system for itself, or something else. A variation of the same problem is expressed in the following thesis, "we're in the cat breeding business, but we want to build a platform - an 'uber' for everybody who needs cats, so we're an IT company because now our product is an IT platform, not cats." Can we say that Wildberries or Rozetka.ua are companies with core competencies in development? After all, they think of themselves that way.
Generally, the company's product is what we sell. But as I said before, the problem with IT is that it's involved in the sale and production of any company product.
Adam Smith, more than 200 years ago who expressed the laws of the market and efficiency, determined that the higher the division of labor, the higher the efficiency. In today's world, the division of labor has become the universal agenda of the era of globalization - if one country does something efficiently, then you have to enter into economic relations with it, buy that product, and produce something yourself that no one else is producing today (the book "Blue Ocean Strategy"). So, if a Chinese company successfully assembles iPhones, it means that Apple itself should not do it - anyway, the Chinese companies themselves get less than 5% of each iPhone sold, and most of the margin goes to Apple.
From this point of view, let's look at platform or gaming companies. What is the product of Wildberries or Avito, Jiji or Rozetka? Direct code, i.e. platform development, or design of business processes of interaction between the seller and the buyer? You don't buy code from us, just like when you buy a cup of coffee, you don't buy electricity or a brand of coffee machine, but you buy the taste of coffee and the service? Or does that division not apply to IT?
Since the general megatrend of digitalization began relatively recently, the first iPhone appeared 14 years ago, there are certainly no such boundaries in the young field, just as Carl Benz, in his dream to create cars, had to invent a gearbox, and engine, and clutch, and radiator cooling, and even a car wheel. Just as those who dreamed in the early days of building a telephone company were forced to produce switching equipment - thus, the term "structured cabling systems" itself came from the AT&T concern. Just as Boeing once produced airplanes in their entirety - along with engines and everything else.
Today, all of the above companies have outsourced a lot of things; Airbus and Boeing don't make avionics or engines. Nike or Apple doesn't own a single factory, but Apple has its own developers. Of the automakers, Tesla spends the most per unit on R&D - more than the next two automakers (Ford, Toyota) combined.
If you look at the brightest cases - for example, in fintech you can stand out Tinkoff with absolute certainty, even there you will be surprised at the size of the teams. In Microsoft, a company with a capitalization of 2 trillion dollars, about 25 thousand developers (with 180 thousand employees). Tinkoff has about 9 thousand developers with a capitalization of 40 times less!
What's my point? Because in the early days of technology, if you're a true innovator and you're striving for the dream, you have to invent and produce both the engine and the avionics and everything else. But after a while, as the market takes shape, there are individual component manufacturers who start doing things more efficiently at the expense of more focus. For example, Rolls-Royce makes engines in series, but they don't make airplanes.
Isn't that exactly what we see today? Just yesterday, game studios were forced to develop the core along with the game design, and today studios are starting to use the core of games from companies that specialize in it.
More recently, Facebook had to invent the React framework to ensure the smooth display of pages, but today it's quite an independent (though still under the control of FB) framework, largely developed by the community.
Why is CD Project Red, a AAA game publisher, [abandoning its own RED Engine in favor of another company's engine, Unreal](https://gamerant.com/cd-projekt-red-explains-using-unreal-engine-5-the-witcher-4/#:~:text=Moving to Unreal Engine 5 provides a sense of guaranteed,burned after Cyberpunk 2077's release.)? It's because those who buy games buy entertainment. That is, the key competence of the game studio is to think through the scenarios. To make it fun to play. A game engine is then a core competency until there are companies that specialize in making such engines. And from Boeing one buys aircraft design and cleverness of maintenance, not cool engines. Boeing's competence is to determine what size the plane will be? What kind of layout will it have inside? How fast can you make the turnaround time? You know what I mean: if you're a platform or an application, people are most likely not buying from you the code for that platform, but rather the convenience, the speed of ordering, the comfortable and understandable process of interaction between the platform participants, the elaborate logistics, the smartness of the payments and so on. If you are a bank, they buy the design of your processes, the speed of receiving plastic cards, the ability to convert or invest, and the service.
That is, I suggest not saying "IT company" in general, because today every company is in some way IT. I suggest calling companies by the product that people buy from them. For example Wildberries is a retail company, which essentially uses technology to simplify a lot of business processes. Tinkoff is a bank. CD Project Red is a game producer. Our company develops, they buy development from us, we're a software development company.
This division, in my opinion, is important because it is the core competency that management will concentrate on most naturally. And here we come to a closely related problem.
The company's management focus problem.
Companies focus their most valuable resources every day on what they get paid directly from. Clearly, you can't buy an airplane from Boeing without an engine. But it's how it all comes together that gets paid. This means that executives concentrate all of their precious management time on just that. They do not have to worry about the fact that, for example, Rolls Roys does not produce the right engines for a particular aircraft design - they will look at Pratt and Whitney, or General Electric, for that matter. And the management of engine companies, in turn, focuses only and exclusively on innovation in the engine - how to make it even lighter, even cooler, which engines they buy, which ones they will buy, and so on. It's the same with development. Yes, both the bank and the logistics company and the game have IT and it is an integral part. The head of a bank is interested in service and accessibility of services, the head of a logistics company is interested in the competitiveness of his transport, the head of a development company is interested and thinks about development efficiency every day: how to communicate with the business customer most effectively? How to provide a more predictable result of the teams? How to solve the problem of shortage of developers? How to improve development efficiency. If a bank or a game producer decides to build a development unit inside, the management will face all these problems - problems of other business, and it will lead to the fact that the management will spend less time on the final product. This will result in one way or another in the efficiency of such a vertically integrated company.
Many managers want to hack the system - for example, they separate development companies into a separate company, or imitate the system of payment of bills - saying that the business ordered the functionality from the internal team, so let them pay for it as if it were an independent contractor. All these complicated schemes only lead to an even greater destruction of management focus - because if your IT department is not competing in the market with other companies, if you are the only customer of such an IT department, then this does not stimulate the management of such a department to improve processes the way it stimulates an independent company. Instead of simple and working market laws, you get a complex and inefficient monster. If the creation of vertically integrated companies is still justified where there is complicated state regulation or severely limited production chains (for example, your oil refinery needs strictly defined raw materials with strictly defined logistics), then adding development competencies to the company forces managers to pay attention to what they are not paid for. Owners in such companies become hostages of the IT department, it is impossible to punish the internal IT department by terminating cooperation, the focus of responsibility for the result is blurred. The number of communication nuances between heads of departments becomes even more complicated. The time that the entire company devotes to the development of a key product, rather than its components, is even reduced. The skill of choosing the right contractors and making those decisions quickly is not developing. Look at the calendar of executives in such companies, and you will see that an incredible amount of time is spent there on solving these problems, rather than on making decisions to increase key product metrics.
Thus, I believe that software development is a completely separate business with its own complexities, the era of lack of IT competencies in the market has passed - there are many outsourcing companies in the market, and the company management can certainly devote time to non-core activities, but leads to the fact that such managers have no time for core activities, and the customer-contractor relationship with internal IT departments is distorted so that it is not always clear who is in charge.
That's all for today, I tried to make the videos more compact. I have a lot of materials on outsourcing for many more videos ahead, on this topic you will need to discuss the real costs of internal and outsourced development, the presence of control, and security of intellectual property. But that's all in the next videos. Bye!