People in software development companies are often faced with cultural obstacles like limited inter-team communication. Traditional operations and development teams usually work in silos with communication limited to issue-tracking system tickets. To stay relevant in an evolving industry, organizations need to become more collaborative.
Breaking down silos and collaborating across enterprise boundaries is one of the anchors of agile DevOps. By enhancing collaboration, companies can negate the traditional obstacles that prevent the continuous delivery of software.
Time is the greatest challenge faced by development teams
Most development team members will tell you that time is the biggest challenge they’re faced with on a regular basis. Deadlines are always popping up faster than before and things get more complicated as teams become larger.
If the product development teams are small with about 3 members, it’s much easier to communicate effectively and coordinate activities. But if the product is highly complex, teams usually scale up as a result of necessity.
When a team is comprised of 20 or more individuals, processes and tools that work well in small teams won’t work anymore. As a result, productivity will take a hit and will start to slow down. At the same time, communicating with several individuals while being on the same page will also become increasingly challenging.
This has the opposite effect of the intended acceleration of product development. As a result, many teams break up into smaller sub-teams along functional disciplines. This still remains the most effective way to speed things up while offering effective mentorship and peer support.
But the downside to this is the emergence of silo’ed thinking within sub-teams. It’s hard to keep up with what’s happening within the company on a macro scale, so it’s easier just to focus on their own deliverables without thinking about the overall needs of the project.
This can create a situation where short-term goals are met, but the overall project is a mess as everyone has lost sight of the big picture.
So how do you break down silos?
The best way to go about breaking down silos is to create a cross-functional team that’s comprised of individuals from the overall functional team within the organization. If you get this part right, you can help the team run fast again and achieve your goals in a timely manner.
How do you do it?
Here’s the best way to go about setting up a cross-functional team.
- Designate an Overall Project Manager
Name an individual as the overall leader of the project. This individual doesn’t have to be a functional manager of any particular team, but they need to be able to keep all team members aligned.
- Build a Team with clearly defined roles and responsibilities
- Pick out the best team member for the project based on availability, expertise, and other appropriate factors.
- Avoid listing titles within the company, just state their role within a particular project.
- Develop a contact matrix that everyone can easily access to get the necessary contact details.
- If you end up with several team members that cover the same area of expertise, designate a team lead so people know who to contact when issues come up.
- Redefine the problem as a Cross-Functional Challenge
Set a program goal comprehensively rather than approach it in the context of a functional discipline.
- Enhance clear communication
- Clearly define and describe the overall objective of the program.
- Share it with the whole team right from the beginning.
- Restate this objective often to ensure that everyone has the broader goal in mind while working on their own specific tasks.
- Develop a Program Plan that’s cross-functional
- Develop a cross-functional plan that enumerates all key milestones.
- It should be kept at a high level without exceeding 50 lines in a Gantt chart.
- All cross dependencies have to be defined clearly within the program plan.
- The program plan must be sent to all members with information about deliverables, names of people in charge, and cross dependencies with dates.
- The project manager or leader must track all work to date against the program plan to flag issues and concerns.
- Set up tools to enhance collaboration
- Enforce these collaboration tools to ensure that all team members are using the same thing.
- Decide how files will be shared among members.
- Set up an instant messaging platform for all non-synchronous conversations.
- Wherever teams hold conferences, set up speaker phones so that remote team members can also take part in the discussion.
- Develop a system to keep teams and members in synch
- If it’s a fairly small team with less than 10 members, a daily scrum that follows the Agile development format will suffice.
Check out our Scrum infographic on SlideShare!
- For teams that are significantly larger, a daily scrum for each sub-team will work as long as there are scrum masters in each team that can attend a scrum meeting (depending on the project and availability). This can be daily or weekly, just depends on the needs of the project.
If you get this right, projects will become more coordinated and effective. Further, the team members will also start identifying with the overall project team instead of their own functional team.
When everything is clearly laid out, team members will use their own ingenuity to find new ways of collaborating with others to achieve the end goal of the overall project. This, in turn, can significantly reduce development time from project inception to completion.