Usually, freelance implies one or two people who are ready to perform a small task in a short period of time. It’s better to use this option when you have a specific task that does not require a deep dive or a full-fledged development of something new. For example, you have a certain electronic circuit, and in order to implement it, you need to transfer this circuit to the real physical world: to separate the printed circuit board. This task may be given to an external freelance specialist who will complete it in a couple of days, according to clear specific requirements in a certain CAD system.
What is important when working with freelance, is to give only those tasks that you understand well and can do yourself. If you do not understand something and just hope that someone else can do it for you, you will not be able to check the result later. So, in the end it can backfire. Another important advice is to look for specialists in advance, not at the last moment when deadlines are tight. It is always better to find several potential specialists and give them some non-urgent tasks in order to test the format of interaction. This does not require a lot of money, but it will help you save time and stress in the future.
The term “garage development” that we use in Russia is not very good, but we got used to it. It is the most common type of outsourcing in Russia today. It is often used by customers when they do not fully understand the task and do not want to dive into R&D processes deeply enough. Such a customer hires an external R&D specialist to develop a device or an algorithm without clear requirements or understanding how exactly the project should be completed. In this case, a customer expects only a working product as a result. In fact, it is rather a personalized device order than real R&D.
Usually, in such cases the customer does not think about the future. For instance, they neglect the documentation for the device, which may be needed in the future, and the intellectual property. The customer is only focused on solving the problem now. If something happens to the device in the future: if it breaks down or needs improvement, it will be very difficult to deal with it. Sometimes it is impossible to contact the same developer company again, so new specialists will not be able to deal with the product without the appropriate technical documents. This does not mean that this type of outsourcing cannot be resorted to. It’s just important to understand that such solutions are always temporary.
Unlike amateur development, this type of outsourcing has all appropriate documentation. Sometimes even the device itself may not be developed, although usually there is a working prototype, which confirms the correctness of the technical solutions described in the documentation. Usually the documentation list is agreed upon at the beginning of the project. However, there are several documents that should always be present: drawing documents, bill of materials, methodology of testing the device and test report, as well as operating manual. Other elements can be added or changed depending on the specifics of the project. There are often prescribed special requirements for the program code. For example, the presence of comments in the code is not less than X percent. This should be done so that any other developer can understand the code. In general, the main purpose of the documentation is that other specialists can use it to understand how the device works and, if necessary, how to change it.