Sometimes outsourced development projects fail. Study post mortems documenting such failures or talk to people who were involved in failed projects, and you will discover that failure was often rooted in mediocre team organisation and meager management practices. Team architecture was poorly defined, roles and responsibilities of each individual were not documented or understood and ownership was not clearly divided. Finally, and possibly most importantly, the key roles on the team were filled with people who just did not have the makings to make it work. Who are the cornerstones of the team architecture you need to outsource software product development successfully?
A John Wayne solo act?
Product championship calls for a powerful combination of both business/market and technical skills. Ideally, you would like to have ONE person to be able to provide the complete skill set needed. Even if you find one, the tasks, duties and responsibilities associated with such a large role are so numerous that they may be too expansive for a single individual to manage. Consequently, a team of TWO people are much more likely to cope with the challenge and ensure the combined market/product, technology and process leadership you are after.
The tandem that pulls it off
So, in principle, you will need at least two key players as the foundation of your team structure. One to manage the front-end, customer-focused part of the development process and the other to take care of the back-end,technology-oriented product development job. If you are a fan of S.G. Blank, you may as well think of the two as the managers of Customer Development and Product Development processes respectively. The first thing thing is to ensure both perspectives and skills are at hand, and the next is to ensure they smoothly act in sync. Get both on your team and ensure they collaborate effectively, and you are much more likely to create a great product.
The Product Owner
Your product champion, leader or owner – whatever you call them – has extensive domain expertise and great empathy for the customer/user. This understanding allows them to see what is essential rather than incidental and helps them ensure a good product-market fit. As regards organization, this person is usually the entrepreneur founding a new venture or an entrepreneurial in-house manager responsible for: the delivery of the project product management day-to-day interactions with customers/users, the outsourced team and other project stakeholders A word of caution. If you split the role into Project Manager and Product Owner, specify clearly their areas of responsibility and the associated TDRs to ensure ownership and clear lines of communication.
The Tech Lead
Your Tech Lead or Chief Engineer – again, the formal label does not count as much as the contents of the role – has the expertise to see what is possible. This person co-creates the product through technological insights and contributions. They are usually in charge of the product development team and supervise product development activities on a daily basis. They are to free the Product Owner from the time-consuming management of developers at the task level. A word of caution is in order, however. Even if the Tech Lead is your in-house co-worker, establish a delivery manager at the vendor with full responsibility for development team management. The vendor’s manager should accept responsibility for any work delivered by your vendor’s staff and act as a single point of contact for efficient communication and decision making.
Let the team architecture unfold …
If you have the Product Owner and the Tech Lead who feel personally responsible and accountable for the success of your product, or even better, who identify with the product, you may assume you have a solid foundation on which to lay the rest of your team . You can now begin to further define its architecture. Whatever the details, clearly specify the structure of the project team, accounting for both internal and vendor resources you will need. Specify roles and the associated responsibilities, document them and ensure they are understood by all the people involved.
A note on outsourcing
How should the roles be located within the team if you outsource your software product development? You are unlikely to outsource the Product Owner’s job, if only for the fact that the near-/off-shore vendor is ill-suited to manage the front-end, customer-focused part of the development process. Still, it does not mean that great, proactive teams are unable to go beyond the technical and offer valuable product and business insights. Unlike the Product Owner, the Tech Lead may be either your in-house co-worker or the vendor’s manager, depending on the skills and resources available in-house. In the latter case, they both need to be prepared for intense collaboration to keep the customer and product development in sync. As a rule of thumb, the more agile the methodology and the less precise the technical specification, the more frequent the communication exchange between the two key players needs to be. As such, your Product Owner and the vendor’s Tech Lead lend themselves to act as a single point of contact between you/your company and the vendor. Such an arrangement facilitates fast decision making (which need not preclude collaboration on a wider basis between you and the vendor’s team.) If you are not the Product Owner yourself, make sure the one who is has sufficient authority to act efficiently, i.e. to approve the work delivered. Ultimately, both sides want to avoid unnecessary delays and frustration which may otherwise burden their collaboration. It is also helpful when the Product Owner has some technical background while the Tech Lead has a degree of domain knowledge gained on earlier similar projects. Such expertise overlap allows both to better understand each others’ role and vastly enhances the efficiency of collaboration.
Who to look for?
All in all, while sourcing, make sure you carefully select not only a software development house, or rather a team, but also – possibly, first and foremost – a key player to be a cornerstone of your team. Do not simply purchase a service – hire people to work on your project team. Set selection criteria and conduct due diligence on both the company and the specific individuals you are to collaborate with – in particular, the person leading the vendor’s team. Look for an individual who: has sufficient communication and cross-cultural skills to ensure smooth collaboration possesses rich technical expertise you need for your project and thus is able to make significant technical contributions preferably, knows the application domain so that you do not spend much time getting them in the picture is able to present a proven track record of experience on similar-size-and-type projects delivered successfully leads a stable, cohesive team that follow a well-defined software development process Last but not least, make sure the Tech Lead is the person you / your Product Owner feels comfortable to work with and the attitude is reciprocated. After all, you are both in for intense collaboration in the months, if not years, to come. I am not trying to say you are hiring an individual. All I am saying is that this individual is key to outsourcing successfully.
How can you increase the odds of finding the right person? Scrutinize their personal profile / CV. Browse through their professional networks. Are they likely to scale their team fast enough when needed? Check their personal references, in particular the references from the customers they have served. Conduct interviews with the Tech Lead and their team. Check the projects the Tech Lead delivered – not necessarily only their company’s. On larger engagements, you may as well: visit the company or have the Tech Lead come and deliver initial service, e.g. tech spec and system design, on-site have them deliver a pilot project. It is the Tech Lead and their team that need to convince you they have the expertise with the specific technology stack and have successfully completed projects for other clients using your target technology. All in all, apply recruitment tactics on top of more formal B2B purchasing procedures. All of it should have one objective in mind – to establish if the candidate has the makings to lead your back-end product development team and ensure you outsource successfully.
To sum up, when organizing the team to deliver your software development project, make sure it has a solid foundation in the the form of a tandem of a Product Owner and a Tech Lead. Fill in the key roles with the right kind of individuals before you embark on the project, and you have vastly increased the chance of being a success in your quest.