Cross-team collaboration in software development: challenges and tips for CTOs

28 July 2021 Bartosz Podgórzak

In the 21st century, technology defines what most companies can and cannot do, which means most of them need IT support in one form or another. Sometimes your own IT department just doesn’t have the required time or expertise, so you need outside help, but you still want to keep a finger on the pulse. The solution is to look for an outside vendor and delegate some of your team members – with technical know-how or without it – to work closely with the company. Cross-team collaboration can be beneficial, but there are also some problems both sides should be aware of. How to make things as smooth and seamless as possible? Here’s some advice for CTOs and other managers, from the perspective of an experienced Head of Development and a Delivery Manager from Pretius.

Cross-team and cross-functional collaboration – what do we mean by that?

Let’s start by defining the basics. When we write about cross-team collaboration in the context of this article, we don’t mean working with people from different teams inside your organization. We also don’t think about collaboration with a freelancer or with 1-2 developers who you are “body leasing”  from some external vendor. By “cross-team collaboration” we mean a situation, when you work with a whole development team from outside your company. A common scenario for such collaboration is when your whole internal software department is swamped up with the maintenance of existing products and you need someone to develop a new solution – therefore, you outsource the development to a software house.

Cross-functional collaboration is similar but there’s an important change: you work with a team with competencies different from your own – sometimes radically different.  One common scenario is when you’re a business manager with no technical background and, together with other non-technical people from your department, you need to work closely with an external software development team (BTW: you can check out our non-technical guide to leading a development team). The other scenario would be when you’re leading an in-house software team but your people lack certain development skills needed for a new project (e.g., APEX development or cloud migration) so you need to find an external team experienced in these technologies.

Whatever the details of such cross-team collaboration, it can prove quite fruitful for both sides. But you need to prepare beforehand. And the main objective of this article is to provide you – whether you’re the CTO or a non-technical manager – with some advice on how to handle the problems that are bound to arise.

Cross-team collaboration – biggest challenges

Informing your team members and keeping them calm

When you’re about to hire an external team, problems can arise even before the actual collaboration when you need to tell your team members about what’s going to happen. If you have an in-house IT department, some of your employees might feel very uncomfortable with the idea. To put it bluntly, they’ll fear someone will take their place. You should try to soothe these fears as soon as they arise – otherwise, they’ll damage morale and may lead to unnecessary tensions. Just explain to your people that the external team is here to take some burden off their shoulders and to share the knowledge, not to replace them.

Communication problems and misunderstandings

Some of the most common issues have to do with communication. It can be as simple as two people who don’t like each other and can’t find common ground. But when talking about cross-team and especially cross-functional collaboration, the root cause of miscommunication is often the lack of understanding of each other’s points of view and fields of specialization.

For example, a business manager is often preoccupied with costs – and with good reason – but may not necessarily see that a solution that seems more costly in the short term will turn out to be cheaper in the long run, when you factor in other expenses (like maintenance costs). Other times, the manager may actually see the situation quite well, but can’t make that choice nonetheless (e.g., because of the pressure from superiors), and the other side should be able to understand that too – not every choice can be made with the comfort of caring only about the long-term and big picture.

It’s also very important not to strain the relationship with bad decisions that seem to benefit you but are in fact very damaging when it comes to future team collaboration. One of the best examples is trying to force software a team member from the outsourced company to work overtime (by speaking with them directly, bypassing their Team Leader or Delivery Manager), especially when it’s against the rules both sides agreed on at the beginning of the project. Other examples include leaving tasks unfinished, rapidly changing priorities, and even making the job too monotonous for long stretches of time (some monotony is to be expected, but it’s good to remember you’re not working with robots).

Working remotely

Nowadays working remotely – from a home office and/or with people all around the globe – seems like the norm, especially given the extraordinary circumstances we went through during the last couple of months. But it’s important to remember that just a little while ago, many companies didn’t allow home office at all, or limited it heavily. We’re speaking from experience: before the pandemic, remote work certainly wasn’t the basic model for us here, at Pretius. Like most of the IT companies, we adjusted to the new situation very quickly but not every team in the world did – which means some hurdles along the way are to be expected.

In a study carried out by Statista, collaborating with colleagues/clients took second place on the list of the biggest challenges of working remotely in 2020 (it was mentioned by 35% of respondents, ex aequo with separation/loneliness). It’s no surprise, as there are some possible, typical issues stemming from teams working remotely, such as time zone differences, language differences (it usually boils down to the English proficiency in various countries), and cultural barriers (for example, a different work ethic or communication that’s more or less direct than you’re used to).

A graph showing biggest challanges of working remote in 2020. Collaborating with colleagues/clients is second with 35% (ex aequo with Isolation/loneliness).
Collaboration with others when working remotely is still a challenge for many employees.

Benefits of cross-team collaboration

Problems aren’t everything. When you overcome them, you can find some inherent benefits and advantages to cross-team collaboration.

Better information flow

One of the things that’s certainly worth mentioning is that when a software house works closely with the client, the information tends to flow much better between both teams (compared to the scenario in which both sides only communicate occasionally and the client’s team isn’t part of the day-to-day work on the project). That information flow makes it easier to understand the client’s needs and meet his or her expectations. Thanks to that, the project can get done faster and with less hassle.

Sharing knowledge

Free-flowing information can – and probably will – also lead to people learning new things and skillsets. Being able to use another technology stack or solution is always valuable for a software developer, no matter the company he’s working for at a given moment. Aside from the technology, team members can also learn some good practices and ways to deal with problems that their colleagues – accustomed to a certain way of working and thinking – may not have come up with. We have several projects in our portfolio during which we taught the clients – used to working in the Waterfall model – some elements of the Agile methodology. They still use that knowledge today, and to good effect. In one case we even created entire Scrum teams that have been working with the client for a couple of years now. Everyone is very happy with the results.

Change of pace and fresh ideas

And finally, another valuable thing cross-team collaboration can offer is a welcome change of pace and/or environment. Your software developers can meet new people and break their everyday routines, which in turn can do wonders for morale and help immensely when it comes to overcoming typical creative blocks – it can be really important nowadays when you can’t always be sure if normal human contact (especially with people from outside your team, who you don’t see on everyday video calls) will be an option. 

Everyone has something to gain from cross-team collaboration

In the end, what you get out of the cross-team collaboration is down to your specific circumstances. Such projects tend to be more desirable for the clients because they offer them solid control over what’s going on, and often allow employees from the in-house IT departments to learn some new skills – since software houses are accustomed to working with different technology stacks and solutions. It’s not a one-sided deal, however – software companies can get some valuable domain knowledge and know-how (characteristic of your industry) in return.

Cross-team collaboration – 7 useful tips

Here are several useful tips – practical things you can do to make your cross-team collaboration as seamless and beneficial as possible.

1. Know which solution works well for you

Let’s start with something quite obvious, yet often overlooked. Before you take any steps and make any important decisions, you should evaluate and check which of the available solutions will work best in your company’s case. For example, it isn’t always necessary to hire an entire team (so-called team leasing) of software developers from an outside vendor. Outsourcing isn’t a miracle solution – it won’t fit every circumstance. Sometimes using off-the-shelf software will be a better idea. In some cases recruiting a new developer to your own IT department or body leasing one or two developers for a while will be quite enough.

2. Establish a clear ruleset and dedicated communication channels

When you know that hiring a team from outside is what you really need, the first – and in all honesty probably the most important – thing you need to do is establish clear rules for the freshly started cross-team collaboration. There should be a clear chain of command so that team members know who to talk with in case of any problems (in fact, often it’s best to specify one contact person from each team – for example, a Product Owner and a Project Manager). 

You need to set boundaries (for example, specify tasks and work hours for both sides) and goals. People need to know what they’ll have to do, and you should try to be as specific as you can. That’ll help organize the work better, and in some cases, it might also help calm your team members down – for example, your in-house IT specialists will know precisely what the outside vendor was hired for and might fear losing their jobs a bit less.

It’s also a good idea to create a list of all the team members involved in the project (along with their position, contact information, and maybe some other details, like work hours or time zone, if that’s necessary) and establish some dedicated communication channels – Slack channels, Jira tasks, and so on. That should help address some of the remote work issues, improve cross-team collaboration and make everyday contact more seamless and less problematic. If you’re not sure what tools you should use, consult the other team (or Stack Overflow’s Developer Survey).

A graph showing the most popular collaboration tools in software development. GitHub is first with 82,8%. Slack takes second place (53%).
GitHub and Slack lead the pack when it comes to collaboration tools in software development.

And finally, you need to make sure that your team knows all these things we mentioned above, and are aware of whatever rules and goals you established with the other side.

3. Schedule a kickoff meeting and make regular updates

Before you start working on something, it’s good to schedule a kick-off meeting. An important part of that first meeting should be a detailed presentation that’ll show the project, specify main goals and give both teams a timeframe (in case of cross-functional teams, do what you can to make things understandable to both sides). However, it’s probably even more important that the members of both teams will have a chance to get to know each other.

Also, once you start the collaboration, try to find time for regular status update meetings. At first, these will probably mostly be used to hold concept reviews, and later you can just use them to report progress. It’s a good practice that’ll help keep both teams informed and focused. If you don’t have experience in such project management, make sure to find a vendor who will provide you not only with top-notch developers but also with a Project Manager/Delivery Manager capable of planning the whole development process and organizing aforementioned meetings (as you can probably imagine, this is especially important in case of cross-functional teams).

4. Keep documentation up-to-date

Another important factor – especially in complex IT projects – is documentation. It’s in your best interest to keep it clean, well organized, and up-to-date. It’ll not only help you during the original work (though it certainly is a tool that will improve cross-team collaboration) but also help other developers who may work on this piece of software in the future.

It may also be a good idea to create so-called playbooks, that’ll include all the important information about a given project – standard operating procedures, process workflows, task dependencies, specific timelines. It’s a method often used in open-source projects. It’ll help you organize both team’s efforts and make sharing knowledge easier (and the same goes for project management in general).

Who should take care of creating the documentation and/or the playbook? Well, it’s for you to decide. But if you know that your employees don’t have needed experience or time to write everything down, make sure you find a vendor whose people (whether it be business analysts, software testers, or project managers) have created such documentation in the past. 

5. Consolidate information and technology

When you participate in cross-team collaboration with an outside vendor, you should make sure that both teams – your and the software house’s – have access to the same tools and all the technology they’ll need to carry out their work effectively and efficiently. It’s also a good idea to create a sandbox testing environment (so-called staging), ideally in the infrastructure that the finished software will be a part of, and using the technology your company uses (or wants to use in the future). This way, you can make sure that the deployment to the final environment (so-called production) will go as smoothly as it can. 

6. Employ people with technical know-how

In the case of cross-functional teams – when your non-technical people (business specialists, for example) are working closely with an external software house, it’d be great if you could get at least one employee with technical skills to work on your side – it’ll make the communication much easier and it’s a great way to improve cross-team collaboration. Generally, it’s a good idea to have such a tech leader in your company, especially if you plan to work with external software development companies often. This tech-savvy team member would be able to take some burden off your shoulders. 

7. Treat people as people – not robots

During everyday work routine, when problems and challenges keep piling up, it’s sometimes easy to forget that, in the end, we’re all people. We’re allowed to have a bad day, we can make mistakes, and we have other things and responsibilities outside of work. It’s generally a good practice to be as understanding and open as you can afford to be (within some common-sense limits, of course). 

But it’s not just about forgiving mistakes and not overworking people. There’s a certain inherent value in seeing human beings in your co-workers – both from internal and external teams – and understanding that can help you achieve better results. That’s true for every scenario, including cross-team collaboration. To use a specific example, it’s always a good sign for us, as Pretius’s COO and Delivery Manager, when a client checks our developers out on LinkedIn, asks for their CVs, or wants to talk about their previous work experience. It shows that the client means business and looks for actual, talented people, and not just robots who’ll do the job with entry-level effectiveness.

Final note – respect the rules and each other

Rules are great – they can really help organize your project and are essential for any cross-team collaboration. However, they can only go so far and won’t amount to much, if they aren’t equally respected by both sides. The truly important thing here is to find common ground and work in a good atmosphere, that’ll be fruitful and productive for both sides. If you can achieve that, you’re already halfway on the road towards creating your project as efficiently and effectively as you can.

Are you looking for a software development team?

Pretius has experience in working with different industries and technology stacks. Our developers successfully collaborated with many big, enterprise-level companies. Write to us at hello@pretius.com (or use the contact below) and tell us your needs. We’ll check what we can do to help and get back to you in 48 hours.

Tagged with: , ,

Hire us!

Pretius is a software development company.
We create web applications using: Java, Oracle DB, Oracle Apex, AngularJS.
Contact us to talk about how we can help you with your software project!