Ilya Dudkin 28/11/2018 #Popular #Tips 10 min read Contrary to popular belief, outsourcing is not simply passing the buck to someone else. The work that is being done by the outsourcing company that you choose, should be on par with the expectation of your in-house team. However, since the needs of each individual company are unique there are different types of outsourcing for you to choose from. In this article, we will examine the four types of software contracts which you could choose depending on your needs. These IT contracts are: Dedicated team Fixed price Time and Material Outstaff Let’s examine each software development contract in greater detail. Hiring Dedicated Team Model This is the most widely used model for big, long-term and complex solutions. This model involves the selection of a full-fledged team to implement the client’s idea. For example, the customer says that they need a mobile application to pay for orders at their restaurant. They find an IT company which signs a contract for the provision of a dedicated team for this project, determined which specialists are necessary i.e. Project manager, Designer, Android or iOS app developers, Backend dev, QA, DevOps, etc. The client is told the approximate time needed to implement his idea. Based on the composition of the team, the client knows the monthly cost of such a team and thus fully understands and can plan on what to concentrate. This method allows for maximum flexibility to develop a project since the customer takes part in the formation of the scopes of each sprint. The advantages include: Flexible development with instant response to market changes Transparent team cost without risk taking The main disadvantage is a high cost for short-term projects. Fixed Price Model The fixed price contract is great if you already know all the functionalities of the product and the stages you would like to implement it. You will need to give clear and precise project specifications in order to agree on the workflow. However, keep in mind that since this model is not very flexible, it will be very difficult to adjust deadlines if the project is running behind schedule. Therefore, in order to avoid all the hidden pitfalls, you will need to invest a lot of time and energy into the preparation, which could take up to 2-3 weeks and perhaps, the scariest aspect is that you lose control over the process. This model does not foresee frequent communication between you and the team members which means that most, if not all, management decisions will be made by the team, not you. The main disadvantage of this approach is minimal development flexibility. Therefore, it would not make sense to do a long project for a fixed price (maximum 4-5 months). Long-term projects cannot be taken on a fixed price, since during the development a lot of things can change, business demands, user cases, etc. A lot depends on the details of the technical specifications for which the development will be conducted. This is when you need to choose the middle ground in order not to take 3 months to write the technical specifications, or vice versa, to describe everything too superficially. Time and Material Model This is when a customer needs two front-end developers to finish his existing site. The customer does not need to hire a dedicated team or take on outstaff employees on a full-time basis. This is a great option for the clients since they can take 2 developers, for example, and 2 weeks later their role in the project is over. Then the client only pays for the specific time spent: 2 weeks of work for 2 developers. The biggest advantages of this model is that you only pay for the hours that were spent developing your product. The team manager would substantiate all the time that was spent on development and explain the development process in great detail. Outstaffing Contract There is a lot of confusion out there between outstaffing and outsourcing software development. Outstaffing is when you set the number of team members you need and the Outstaffing supplier goes out and finds them. These people can be treated as members of your own team but the Outstaffing suppliers provide official employment, benefits, etc. Think of it as “renting” an employee. With the software outsourcing model, you transfer most of the control to the software development outsourcing company and, in most cases, employees are usually working on many projects simultaneously. The main advantage of outstaffing is that you, the client, do not have to think about where the developer will sit, about their workplace, training, etc. But you have to fully manage the time of each developer. One of the big advantages of outstaffing is the cost. You do not have to pay all the taxes that you would be required to pay with regular in-house employees and the team members that you hire via outstaffing will be much cheaper as well. You will get the same qualified and experienced employee but at a fraction of the cost. If you are looking to hire software developers who will focus solely on your project, then this model is definitely for you. Whichever model you ultimately end up choosing, be sure to do a thorough evaluation of where you are in terms of the project’s development. If you have a clear vision in terms of the dates, guidelines, and costs, then this will save you a lot of time and headache when deciding upon the type of cooperation. Also, you know better than anyone else, the expertise necessary to do the job properly and it is not prudent to lower the bar for the people that you hire because not only will you be working and communicating with them every day, but you will be putting a great deal of trust into them. The last thing you want to see happen is that the weak link turns out to be in the remote employees because you really have a wide talent pool to choose from and, if this is the case, then you should go after what you really want. By taking the time to do some self-evaluation in terms of where you are in the project development process and where you like to be in a certain amount of time, come up with the proper criteria for the remote team member(s) you would like to bring on board. Hiring mistakes could cost you big time in the end, so be sure to do a lot of due diligence to avoid such problems down the road.