Imagine a relay team is running a race and have a target time they must hit to qualify for conference, state or even — say — the Olympics. Regardless of the situation, the payoff is BIG. Each team member must perform at a certain speed to achieve the goal time. If not, it may be humanly impossible for the other two to run faster and compensate. The team comes in second. All bets to advance to the next stage of competition are off.
The key to achieving a winning result? All members on the team pace together. If even one member can’t keep up, it affects the team.
This analogy is a little like pacing in software development — especially pacing between internal and external development teams all working on different facets of the same project. Pacing work between a team within the parent company and a development team from a software partner can present challenges for many projects. But in this case, the stakes are even higher. Pace to win and beat the competition to market. How can you coordinate closely between internal and external development?
Set aside time for regular meetings
If your project requires splitting development duties between a software provider and an internal IT department, regular meetings between team and project leads are critical. Communication is key to ensure all parties advance at a similar speed and any new functionality can integrate with legacy systems.
Plan on a meeting of the development teams once a week. During the first meeting, identify the completion objectives, who is working on them and when they must be finished. Then, focus the subsequent meetings on sharing status updates and ongoing risks.
Ask these questions in your next cross-functional development meeting:
- Are we on track?
- Are there any blockers or impediments to success?
- What questions or challenges have we identified in the last week?
- How are we going to set up our test environments and validate success has been achieved before pushing the software to production?
Share information to piece together the complete picture
Gavin Finden, MentorMate Senior Software Engineer – Mobile, has worked with multiple teams all developing for the same project before. One project united three groups. He found sharing information between the teams essential to understand how work the other groups was completing could impact his portion. It’s impossible without open and frequent communication.
Communicating is also key to avoid re-work by one or more of the teams.
Gavin: “It’s valuable to coordinate development work so internal and external teams don’t trample on each other, complicating the job for both. It can avoid duplication of effort in some cases, such as when two teams find and try to fix the same bug. It can also make it easier to reuse code the other team is developing. If you know that the other team is about to add some component that you can make use of, it’s more efficient than implementing your own.”
Pro-tip: Plan code review across teams, so every group gets a detailed look at what the other teams are writing.