Should I outsource or do it myself?
Over the course of my experience, I have regularly encountered unsuccessful projects, the key mistake in which was outsourcing them without properly exploring the risks involved. I would like to share the principles that guide me in deciding whether to give work to a third-party company or find resources within the unit entrusted to me.
The reason for writing this article was several projects known to me in my company, where the decision to outsource, as it turned out, was ultimately wrong. We can’t avoid these mistakes, but perhaps my recommendations will help to avoid new problems.
Immediately make a reservation that all of the following will apply primarily to IT. About the outsourcing of accounting, logistics or other non-IT areas, I deliberately do not mention. If the principles, in your opinion, will apply to them - try it. For now, let's focus onIT solutions .
FIRST . When deciding whether to outsource the development of new software and under what conditions, I try to assess the impact of the developed product on the competitive advantages of the company. Obviously, with regard to a corporatewebsite, this influence is much less than, say, for an online store supporting retail or wholesale. If, for example, e-commerce is the main business of the company, then such a site becomes truly a “strategic resource”. It can not be transferred to a third-party company.
One illustrative example is our online store. After the developer gave us the website of the online store, only the developers themselves could fully support it, because the level of "curvature" of software solutions went off scale beyond all conceivable and inconceivable limits. If we assume that developers have their own special mentality that allowed them to create it, then, probably, they are capable of supporting it. We had to rewrite a lot. As a result, so much extra effort was invested that it was easier from the very beginning to do everything inside the company.
SECOND. The contractor needs to give either a little or a lot. By “little” I mean a small project, the quality of which the internal team can evaluate at the stage of technical acceptance, to which you can describe the requirements well and test well. By "a lot" I mean a comprehensive project, which includes the full implementation and training of technical specialists, the preparation of technical documentation, turnkey work, the transfer to the contractor of the right to make independent decisions within the budget and the high-level goals set for it. I want to note that in this scheme there is no place for “medium” projects. Because, in my opinion, they cannot be made qualitatively on the side. For small tasks (the “few” option), you can even attract freelancers,
THIRD . The contractor must be highly responsible, reliable and stable. And for this, it must be a company that meets the level and scale of the tasks assigned to it. The rule about the first pancake lumpy works here like nowhere - not a single contractor will be able to delve into all the features of your infrastructure without "stepping on a rake", without "trying" all the handles and levers. That is why it is bad to change contractors like gloves - each new one costs not only money and time, but also joint mistakes.
There are plenty of examples from our own experience - last year to develop the site we had to abandon a number of small contractors in favor of one large. The number of errors decreased by an order of magnitude, the quality improved.
FOURTH. At the end of the project, the developed solution should go completely to the customer. Technical support for the solution should already be made by the customer company. In my opinion, under no circumstances should a contractor reserveany “secret knowledge”. Any kind of warranty support after the completion of the contract, the obligation to correct errors - from the evil one. This does not work. Everything needs to be done so that the project immediately gets up on its own technical support.
As an example from my own experience, when developing one of the sites at Web Media Group, I insisted on the need to include specialists from our company in the project team of the contractor and close the key stages of development to it. As a result, we got the site along with the knowledge of how it works "inside", and the contractor better caught our Wishlist at an early stage. Typically, such a scheme is very unpopular in theweb development market , because it adds risks to the developer, which he otherwise avoids. But if you look from the position of the customer, for him this scheme works with a bang.
According to one of our software and hardware solutions for sales through the "stuffing" kiosks, an external company was developing. The peculiarity was that, in simple terms, they gave us the project on a rental basis. Technical support and product development services were gradually getting more expensive, and the price of care was increasing every month. The mistake was that the contract did not provide for the complete transfer of the product. Again, the solution was that we just did it all over again. The total cost of creating the second version of the product “from scratch” was even less than in the situation when we received the product “for rent”, and the satisfaction of absolutely all persons interested in this project has increased many times over.
The only excuse for outsourcing is saving time and money. Always balance the value of this savings with the risks that such a solution holds.
The reason for writing this article was several projects known to me in my company, where the decision to outsource, as it turned out, was ultimately wrong. We can’t avoid these mistakes, but perhaps my recommendations will help to avoid new problems.
Immediately make a reservation that all of the following will apply primarily to IT. About the outsourcing of accounting, logistics or other non-IT areas, I deliberately do not mention. If the principles, in your opinion, will apply to them - try it. For now, let's focus on
FIRST . When deciding whether to outsource the development of new software and under what conditions, I try to assess the impact of the developed product on the competitive advantages of the company. Obviously, with regard to a corporate
One illustrative example is our online store. After the developer gave us the website of the online store, only the developers themselves could fully support it, because the level of "curvature" of software solutions went off scale beyond all conceivable and inconceivable limits. If we assume that developers have their own special mentality that allowed them to create it, then, probably, they are capable of supporting it. We had to rewrite a lot. As a result, so much extra effort was invested that it was easier from the very beginning to do everything inside the company.
SECOND. The contractor needs to give either a little or a lot. By “little” I mean a small project, the quality of which the internal team can evaluate at the stage of technical acceptance, to which you can describe the requirements well and test well. By "a lot" I mean a comprehensive project, which includes the full implementation and training of technical specialists, the preparation of technical documentation, turnkey work, the transfer to the contractor of the right to make independent decisions within the budget and the high-level goals set for it. I want to note that in this scheme there is no place for “medium” projects. Because, in my opinion, they cannot be made qualitatively on the side. For small tasks (the “few” option), you can even attract freelancers,
THIRD . The contractor must be highly responsible, reliable and stable. And for this, it must be a company that meets the level and scale of the tasks assigned to it. The rule about the first pancake lumpy works here like nowhere - not a single contractor will be able to delve into all the features of your infrastructure without "stepping on a rake", without "trying" all the handles and levers. That is why it is bad to change contractors like gloves - each new one costs not only money and time, but also joint mistakes.
There are plenty of examples from our own experience - last year to develop the site we had to abandon a number of small contractors in favor of one large. The number of errors decreased by an order of magnitude, the quality improved.
FOURTH. At the end of the project, the developed solution should go completely to the customer. Technical support for the solution should already be made by the customer company. In my opinion, under no circumstances should a contractor reserve
As an example from my own experience, when developing one of the sites at Web Media Group, I insisted on the need to include specialists from our company in the project team of the contractor and close the key stages of development to it. As a result, we got the site along with the knowledge of how it works "inside", and the contractor better caught our Wishlist at an early stage. Typically, such a scheme is very unpopular in the
According to one of our software and hardware solutions for sales through the "stuffing" kiosks, an external company was developing. The peculiarity was that, in simple terms, they gave us the project on a rental basis. Technical support and product development services were gradually getting more expensive, and the price of care was increasing every month. The mistake was that the contract did not provide for the complete transfer of the product. Again, the solution was that we just did it all over again. The total cost of creating the second version of the product “from scratch” was even less than in the situation when we received the product “for rent”, and the satisfaction of absolutely all persons interested in this project has increased many times over.
The only excuse for outsourcing is saving time and money. Always balance the value of this savings with the risks that such a solution holds.