In my final article on the features and risks of onsite software development, I would like to discuss such important onsite project aspects as remote project management and a higher degree of responsibility imposed on onsite engineers. In the previous parts of this series, I talked about communications and business requirements, as well as the risks associated with the customer processes, equipment and IT infrastructure, when cooperating onsite.
Remote Project Management
Customers usually appoint project managers among their own engineers. A PM monitors the whole project, allocates resources, provides access, distributes tasks, controls the implementation of and adherence to the development processes. This approach gives certain advantages to the client and, in theory, reduces the responsibility of the software R&D service provider, since the customer becomes responsible for meeting the project deadlines. Some clients believe that in this case the project manager at the software development company is not needed at all.
In practice, however, it is usually more complicated. The customer may simply not have engineers of the necessary qualifications. If the project penetrates a new technological area, in-house engineers may not have the niche knowledge and skills for it. On the contrary, if third-party engineers take on some routine tasks, the customer’s project managers may show no enthusiasm. Moreover, project managers on the customer’s side often carry out only technical project management and do not want to be involved in the direct management of the contractors (the so-called people management). In case of any problems with engineers (low productivity, conflicts with customer representatives, etc.), they escalate problems to the software R&D company’s representative. In Auriga, it is always a project manager. In most cases, a PM manages a team of engineers remotely from his/her office. That is why customers are often concerned that the remote (and, as a rule, partial) involvement of an external manager may lead to the loss of control over the team and delays in delivery dates and in the process of replacing/rotating employees on a project.
Thus, Auriga offers customers to mitigate risks through the following practices and procedures:
- Conduct regular status meetings of the project manager with engineers (on a daily or weekly basis, depending on the duration of the phases and the project as a whole).
- Conduct regular joint status meetings with engineers and customer representatives (usually on a weekly basis).
- Holding regular meetings with each engineer separately, one to one (biweekly), to discuss both development and personal issues.
- Maintain current project plans to monitor not only the outsourcing team’s tasks, but also the tasks of the client’s engineers involved in the joint project.
- Holding meetings with the customer’s management representatives (usually on a quarterly basis) to discuss engineers’ performance and personnel issues, such as engineer rotation, hiring new engineers, and business relations development in the nearest future.
Save the tip: If you plan to transfer the project management risks to the software R&D services company, ask what kind of communication plan the contractor has at the project start. It is also better for customer representatives to get acquainted with the contractor’s PM in advance.
Why is it important? Relying on a contractor’s PM, you reduce your own risks connected with the engineering team management – they become an outsourcer’s headache. You get a manager who knows the team and already has a fairly extensive experience managing engineers and similar projects in the past.
Engineers’ Responsibility
There is one more distinctive onsite cooperation feature I cannot keep silent about. Onsite support requires great responsibility from the engineers who are constantly visible and in contact with the customer representatives. Their attitude to work, professionalism, and technical experience, give the client an impression of the software development company as a whole. In this regard, we cannot ignore the following risks:
- The loss of credibility and confidence in the software development company as a whole due to mistakes or behavior of an engineer
- Unexpected replacement of engineers at the request of the customer
Our company values its reputation; therefore, we have implemented a multi-stage personnel selection, motivation, and training system. The list of our clients includes large international companies and some of them choose the onsite model. It is obviously rather costly to replace an employee located abroad. Hence, while selecting engineers for onsite projects, we very carefully evaluate each of them and follow the practices listed below:
- Prior to forming a project team, the client provides us with an approximate list of tasks that the engineers will deal with and a description of the technical requirements that the engineers must meet. We discuss the interviewing procedure. To make a final decision, the engineer must pass an obligatory interview (sometimes there are several interviews) with the customer representative.
- While selecting engineers for a project, we usually pay attention not only to whether they have the necessary technical skills, but also to their personal qualities related to communication skills, responsibility, and professional attitude to work. Given similar technical experience, the preference will be given to specialists who, in our opinion, are better suited to work in the office of this particular customer.
- Auriga’s project manager participates at all interview stages and makes a list of questions asked to the engineer. At the end of the interview, he forms his own opinion on the interview results. If the opinions of the project manager and the customer representative do not match, the former tries to produce arguments to convince the latter and work out a compromise solution for the mutual benefit of both sides.
- Auriga’s project manager participates in all important meetings with customer representatives.
Save the tip: If you have any questions or complaints about the employee of the software R&D company, do not delay the time – contact the contractor’s project manager straight away.
Why is it important? Software development project is not only coding or testing, but teamwork that relies on so-called soft skills. The higher these skills are, the lower the risk of the project disruption is. Direct and open communication with the contractor and early problem escalation considerably reduce the risk of downtime required to find and deploy replacement staff.
The onsite software development models considered in this article, their peculiarities and risks they incur, lead to the conclusion that such projects require solid project management skills and experience from both the customer and the contractor. Having great experience of onsite work, we at Auriga offer our clients a big pool of tips and practices to efficiently plan and organize their software development and testing process and achieve their business goals together.