Given the situation with the COVID-19 a lot of people had to shorten their staff and had to turn to outstaffing to fill in for the missing roles and processes. Software outstaffing and distributed teams have been pretty popular even before the coronavirus, hence the processes in this service industry are well set and teams can start the work pretty quickly. However, there are also certain actions that businesses have to take before ordering the outstaffing services. In this article we aim to list all stages of outstaffing and what you need to do to prepare yourself for it.
Let’s assume you have already picked a couple of companies that provide the outstaffing. I will not stop on the stages of selecting the company in detail, because there are already a lot of articles on this, but would rather concentrate on what happens next. So, once you:
- Defined the roles that need to be outstaffed
- Picked a few companies for outstaffing
What happens next?
Stage 1: Provide requirements to the team
In order to communicate the requirements to the developer in the best way, it’s important to issue the requirements outlining your expectations on their:
- Hard skills
- Soft skills
Your aim here is to provide as many details as you can discover at this stage so that your potential vendor company can select the best-suited resources for your project. If you want some form of a checklist, then you would need to provide the next information to the development team:
Project info. The information you give will help to pick developers, testers, project managers, etc that have worked on similar projects before. Below are a couple of items to communicate:
- Indicate the project industry.
- Indicate the project technologies users.
- Indicate the level of code you assess the project has (e.g. spaghetti code requires developers with more skill level).
- Indicate several modules or task samples developers should be able to execute.
- If you have the Project Vision document, ideally you would need to provide it.
More about project vision and how to fill it in, you can request from our team.
Hard Skills Requirements. When providing hard skills requirements, be realistic. Cause sometimes clients write down all technologies they ever heard of as a hard requirement while they are hardly used on the project. This narrows the number of CVs you’ll receive.
- Level of skills you are looking for in developers, e.g. senior, middle, junior.
- Technology stack.
- What other staff apart of the main technology dev should know, e.g. CI, CD, etc.
- Desired and Required skills.
- Safety standard you keep to. It’s extremely important that the team can make sure they have a sufficient level of software and hardware to provide the security level you declared.
Soft Skills Requirements
- Level of communication skills.
- What English language knowledge is required (a lot of companies provide the English speaking manager to compensate for the lack of developer’s language knowledge. This might be a good trade if a developer has the knowledge and skills you require because such resources traditionally have lower rates).
- Independent work.
- Code review practices.
- Team leading skills.
- Indicate the time zone and time hours for developers to work on. This will help the vendor to select the team members that are ready to meet the requirements of your time zone. Based on our practice the ideal variant is to have 2-3 overlapping hours.
- Task manager. Communicate what task manager you are using to keep track of the work.
- Time reporting. Show what tools you will require developers to use to report the tracked time.
- Other reports you would like a developer to provide.
- Sick leaves for the developer, would you need a substitution for this period?
- Vacations for the developer, would you need a substitution for this period?
- Coordinate holidays in your country and the country of the development team.
- Budget expectations – even though this information is not required at this stage or you have probably received it when selecting the company, it is worth mentioning. The important thing here is that you would really save yourself time if you provide expectations on the rates of the developer, this way you won’t have to pass through all stages only to find out that the rates you planned would not be provided by the outstaffing team.
Stage 2: Select developers based on CVs
Based on this information provided on Stage 1, the outstaffing company would select the CVs of those developers that fit your requirements in the most relevant way. Usually, they return back with several CVs for you to pick from, some of them fit your requirements ideally others somehow meet them. At this stage, you need to pick those developers that you would like to interview
Stage 3: Interview
Once you have reviewed the CVs, the next stage is to schedule an interview call with the developers to make sure the skills outlined in the CV are the reality. Here we recommend to have two stages of the interview:
- General one where the project manager of the project or any other contact person can communicate with a developer and make sure that the developer’s attitude, vision and soft skills are suitable to the project
- Technical interview, where a person with a technical background can verify the declared experience and knowledge of the candidate.
We recommend using the point system here to assess people you like. Use the 1-10 points system, where
- you give1-3 for candidates you absolutely do not like,
- 4-6 that might be a good fit
- and 7-10 if they are a perfect fit.
If each of the interviewers adds the points, in the end, you will have the general picture of the people that you might want to hire.
Stage 4: Hire outstaff developers
Given you have selected a developer, the next stage is to sign the agreement and make the prepayment for the works of the development team. Here the process really consists of:
- Making sure you are fine with the agreement;
- Making sure the rates indicated by the company are suitable.
A quick checklist to go through before starting the agreement:
- Rates are coordinated
- The time that each team member will spend into the project is confirmed;
- Developers names that were selected are confirmed;
- Process requirements are good for the team.
Stage 5: Integration of developers
This is probably one of the most challenging parts and a lot of projects stop before even starting. It is important here to have all processes and communications set up and all accesses provided. You as the company that orders outstaffing services is responsible for providing all environments, communicating all processes, regulations and rules that the new team members should keep to.
Access to Code
Ensure that team has access to the project and understand its purpose and what it is about.
- Share Access: Make sure that you have shared access details to the GIT, or another system you are using for the version control.
- Present the workflow: in case you are keeping to any particular workflows on the project, especially if you have several environments, it is important to discuss the flow with the new team.
- Give the test URL to the team members, so that they can click through the project safely without the fear to break something on live website.
- Give the link to the documentation of the project if any.
It is also a good practice to have a call with a product/project manager or a product owner who can outline briefly what the project is about and what its purposes are, share screen and show the main functionality and marketing points of the product. Also, remember that a good integration of a person is starting with easy or isolated tasks and only then to integrate the new person into more extended parts of the system.
- Share Access: add new developers as team members to your Jira, Trello, Asana, or any other tracker you are using to manage the tasks for your team. In case you do not use any task tracker it is extremely important to start using one because the project management tool is the only way for you to assess how effectively the work is set up.
- Present the workflow: the task has to have its own workflow and each team member has to be coordinated on the definition of done for the task. E.g. task is considered to be done when it is available for testing? Or is it done when it is available for deployment to the live environment? Below is an image of the suggested extended workflow that our team uses.
But in its most basic view the task workflow can be:
Such trackers as Jira allow to set it up customly or pick one of the templates
- Time Logging. The outstaff team usually works using the time tracking tools based on which they provide a report. Each task requires estimation of the time it needs for completion per definition of done as well as shows the actual time spent. The highly organized teams keep these two values accurate, which later allows us to optimize work. Such task trackers as Jira have the built-in tracking system.
- Meet the team. Introduce the new developers to the team and pay special attention on which questions and items the developer should go to which person. Ideally, we recommend to prepare the Team page in the system where you keep documentation, which in its simplest way can look like this:
- What person to talk to when they need a day off
- What person to talk to for new tasks
- What person to talk to in case of technical decision
RACI is the extended version of this. However, if you are aiming for the quick and minimal assistance here, prepare such doc, you’ll save so much time.
- Contact persons:
- Provide the main contact person for the new team members, which they can turn to and who can direct them to the right team member with the required knowledge. This is especially true for companies that do not have the documentation on their projects.
- Provide the access details to the main communication channel, whether it is Slack, Microsoft Teams, Skype or regular phone line. Our recommendation is Slack (!)
- Define communication hours. This is in line with the working hours of the developers that you should have coordinated at the early stages. Recommended scenarios are:
- Daily standup, during which developers report on completed things from yesterday and provide the to-do plan for today.
- Milestone/Sprint Planning meetings, where more long term planning can be done.
- The delivery meeting, where developers can provide the demo of what was developed and you can make sure they have the right vision into the project.
- The retrospective meeting, where all team members can work together to identify what was good during this iteration, what was bad, and what they can do better.
- Rules and regulations:
- Communicate all rules you have in the company to the team.
- Coordinate the holiday days. Since you might be ordering offshore development the holiday days and their number can be pretty different. You have to make sure that you are aware when a developer works and when not. Tell them what notice you’d like to receive before their holidays.
If you need the setup of the services for the outstaffing or outsourcing, contact us. We have successfully helped more than 30 companies to work more efficiently by just organizing the processes in their teams.
The list of the items can be extended and integration of each role requires the specifics, so the article lists only the most important ones. To sum everything up, you have to:
- Communicate your requirements properly
- Make sure that suggested people meet your requirements
- Provide the friendly integration process
If these three rules are met, you will have a happy team and a cost-effective budget. Happy outstaffing!