Even if they have completed several in-house software development projects, most enterprises lack the right internal team for an outsourced software partnership. And that’s completely understandable. The two teams are completely different.
It’s not just a case of having a CTO and a handful of developers familiar with the tech stack, says Randy Costner, Kingsmen Software Head of Engineering: “A range of specific skills and roles are needed across each of the project’s various stages to be successful. That includes stakeholders, analysts and testers, as well as developers.”
Throwing a load of people at the problem won’t solve it, either. Too many developers tend to ruin the code base. As we’ll see, building the right team for an outsourced software partnership is about balancing size, skills and resources.
Aim For a Small Team Where Possible
Not everyone in your business needs to be involved in managing an outsourced software development project. Smaller teams are almost always a sensible choice, regardless of how large the external partner is.
Having more developers won’t make the work go much faster, writes John Krewson, founder of Sketch Development Services. Unlike a task that scales with size, coding scales with complexity, Krewson writes. That’s because two people can’t work independently on specific tasks.
“In practice, every person added to the project adds to the non-coding work that needs to be done. Put too many developers on a project, and it virtually grinds to a halt — just as having a few dozen songwriters work at the same time will never produce a commercially viable song.”
Whether your internal team and outsourced partner are upgrading a legacy system or developing a new piece of software, innovation will likely be a key ingredient for success. And small teams are much more innovative.
Research by Dashun Wang and James A. Evans — respectively a professor at Northwestern University and a professor at the University of Chicago — finds that while large teams are effective at developing existing ideas, smaller teams disrupt the status quo with new ideas and opportunities.
“In other words, large teams excel at solving problems, but it is small teams that are more likely to come up with new problems for their more sizable counterparts to solve,” they write. “Work by large teams tends to build on more recent, popular ideas, while small teams reach further into the past, finding inspiration in more obscure prior ideas and possibilities.”
This is exactly what you want of your internal team when working with a larger and more experienced software partner.
Enterprises need not worry about filling every skills gap in their internal team, says Bill Clerici, CEO and Partner at Kingsmen Software. “The point of hiring an external software development partner is that they bring the skills your team is missing. Besides, trying to create an internal team based on your existing skill set is a surefire way to limit innovation and hinder progress.”
Find the Best People and Appoint Roles
Your team should be small, but it should still have all the skills and expertise your business needs to succeed with a software project. Offloading all of the work onto your outsourced partner may be desirable —and even very effective in some cases —but you’ll need internal experts to guide development and approve the code your partner writes.
That’s not to say enterprises shouldn’t feel obliged to devote every internal resource to their partnership team. It’s common practice at large companies to use external partners to augment internal teams so that they can focus on moving the business forward, says JC Grubbs, founder and CEO of Tandem.
“For example, companies like Groupon have internal innovation teams focused on coming up with new ideas and strategies,” Grubbs says. “A lot of the time, companies will let an outside firm take a first stab at executing an idea before the internal team executes a full analysis. In other words, hiring an external agency empowers an internal team to conserve time and resources so they can focus on higher-level processes.”
Who Should Be on the Internal Team?
There are several roles that should be on the internal team for software projects:
- Product lead. A key stakeholder who understands both the software and the business goals should head the internal team.
- Developers. Several software developers familiar with the enterprises’ codebase should be on-hand to help external partners, even if they don’t deliver code themselves.
- Business analysts. The team needs at least one analyst, often more, who can translate business needs into software requirements and ensure partners deliver value.
- QA engineers. Feedback is essential in iterative projects, which is why quality assurance engineers are vital for testing and feedback purposes.
- Communication lead. This could be the product lead or could be someone else entirely. Whoever the person is, they must have the respect of all team members and be able to communicate transparently, which What matters is that everyone on the internal and external teams knows who this person is and respects their decisions.
The communication lead role is crucial because transparent communication will thwart internal politics and reduce micromanaging. It will also make it far easier and quicker for the external partner to get their code approved and stick to timelines agreed in the work breakdown structure.
Equip Internal Teams to Succeed
An internal team needs to be equipped with the right tools to work successfully with an outsourced development partner.
“Software development teams work best when they have the right tools to help them focus on innovation rather than maintaining integrations and manually completing tedious tasks,” writes the team at GitLab.
“DevOps tooling should bring teams together across the entire development lifecycle so that developers, QA, security professionals, product managers, designers, and team leads can collaborate and have visibility into projects and progress. Using the right tools helps teams resolve roadblocks, maintain version control and increase productivity.”
File sharing and communication tools should be top of the list, says Costner. “Slack or an asynchronous communication tool can be useful additions to email and video calls throughout the project, for instance — especially for quick questions or comments that don’t necessitate a larger conversation.”
Consideration must be given to your partner’s software support needs. In some cases, this may even require you to add additional IT support to your internal team, says Kevin Tolly, founder of The Tolly Group. This is especially relevant if you use systems like Microsoft Teams or SharePoint.
“Those systems require user logins that need to be defined by your system administrators,” Tolly writes. “Your collaboration partners need documentation on how to use a platform like SharePoint. Similarly, VPN access requires credentials and client software. You need to provide these to your collaboration partner.”
The Right Team for the Right Partner
Choosing your internal team for software projects is just as important as choosing the right outsource software partner. One can’t work well without the other, so keep it small, keep it skilled and keep them well-equipped.
Images by: Brooke Cagle, Mars Sector-6, Austin Distel