What is team collaboration?
Team collaboration in the simplest terms means “working and creating together.” Collaboration is an essential for any industry or organization, and more so for the IT organizations with globally distributed teams. Application development requires constant and effective communication between teams responsible for business analysis, development, testing and operations, and the goal of collaboration is to concentrate on core application development activities and reduce operational overhead.
Some of the known problems with application development through traditional development models includes:
- Operational inefficiencies leading to delayed deliverables.
- Ineffective handoffs among:
- Geographically segregated teams working in different time zones.
- Different software development and operations teams.
- Communication silos preventing development teams from building on one another’s ideas, often leading to redundancy of work.
- Ad hoc changes to configurations or environments adversely impacting product stability and release cycles.
- Excessive emails and redundant meetings.
- Lack of a single communication channel in multi-vendor and distributed teams.
- Confusion over who is responsible for what.
- Limited automation.
Clearly, there is a need to better streamline the software development life cycle through seamless collaboration.
What does team collaboration mean for DevOps?
The name DevOps itself depicts collaboration. Traditionally, Development and Operations have different priorities and work in silos, and are often on cross roads over priorities. Development needs the ability to make changes and Operations vows for stability. Collaboration, thereby, is the key cultural aspect of DevOps, which brings together Development and Operations teams. Real-time feedback and communication allow teams to make rapid changes to an application while keeping a stable and robust environment.
DevOps not only brings key concepts and tools to create automated workflows for a systems development life cycle (SDLC), it also allows integration of team collaboration tools to these workflows.
With collaboration technologies such as Atlassian HipChat,1 Slack,2 Thoughtworks Mingle,3 Bitrix24,4 Yammer5 and FlowDock6, Development and Operations teams can collaborate very easily and around the clock.
How to achieve collaboration in DevOps
The target, to begin with, is reducing operational delays and communication gaps among geographically distributed teams responsible for overall application development and release to market. This requires an inspired cultural change driven by all teams. Merely using collaboration tools is not enough. Following are a few key pre-requisites before you choose the collaboration tool that best fits your need.
- Goal definition is the first step en route to team collaboration. Identify a common set of objectives for all teams and stakeholders involved. Often teams struggle to engage when their priorities are different and they cannot find a common ground. A common set of priorities lays the foundation for developing an approach and working together to achieve the goals.
- One team approach is needed to build and inspire trust and mutual respect in your teams. Team leaders have to firmly believe in the culture of collaboration, and then inspire an atmosphere of trust, honesty and respect into their teams. This cultural change is crucial to make everyone feel part of the team and conveys the message that everyone’s work is equally important.
- Diversity is key. Once you succeed in developing a closely knit team, the next step is to build sensitivity around diversity as the teams have professionals from different regions and cultures. This brings teams closer and each team feels a sense of belonging in the overall community.
- A clear roadmap defines your path to achieving the objectives. Outline everyone’s roles and responsibilities, and how each team member's work fits into the bigger picture. Avoid ambiguities and maintain a practice of regular check points and discussions.
Case Study: Blending team collaboration tools into an existing DevOps setup
The team collaboration tool for this case study is: Slack (https://slack.com).
In this case study, Slack is integrated into a DevOps continuous integration and deployment pipeline. A regular feed from different phases of application development (build, unit testing, code analysis, deployment and testing) allows all responsible parties to see, evaluate, call out and remediate issues and even enhance the application real time, without impacting the work of others in the Development team. Additionally, this enables teams to build on the existing ideas and not spend time re-inventing the wheel.
Quick reflexes: A growing business need
With team collaboration technologies, Development and Operations teams no longer have to rely on emails for responses or book meetings to talk, share and communicate. They can do it all in real time. In the near future, we are likely to see learning and adaptation abilities embedded into systems which will make them highly intelligent. Such systems can tell us about any disconnect and give us the ability to change rapidly while keeping the underlying environments consistent and stable. Team collaboration tools are ideal to move beyond the silo environments. It also removes fear of failure because whatever breaks can be fixed immediately and with ease.