We know that collaboration is critical for organizations moving towards a DevOps culture. Here's how we encourage collaboration in our workflow at GitLab.
1. We make suggesting changes less scary
Using version control for more than just your source code means that everyone feels free to contribute to documentation, configurations, tests and whatever else you're working on. With the benefit of merge requests, it's possible to suggest a change or an improvement, or even just query something that isn't entirely clear or could be described better, without just going ahead and making the change immediately. This invites discussion and prevents less experienced team members from feeling nervous to voice their opinions.
"It really makes the documentation, similar to the source code, an open source and living document that everyone can contribute to." – GitLab Platform Backend Lead, Douwe Maan
2. We open our development platform
By giving everyone in your organization access to view what other teams are working on, you allow everyone to discover and contribute beyond their own projects. This inner sourcing approach makes it more likely that team members can learn from others or offer suggestions from their own experience that could be applied to a different project, avoiding duplication of work. Douwe explains: "It's working together to make all of our code better, because if we use a shared library – even if it’s just an internal one – if one person improves it or fixes a bug or increases the functionality of that application, that’s work by one person that will immediately affect all the different teams."
3. We make code review impersonal
Everyone is encouraged to review each other's code or ask for input, and the focus of that review is firmly on improving the code. The approach is not to say, "This is wrong, change it to this," which can be really demotivating. We use language like, "Have you considered this?" or "What do you think about this?"
This not only makes code review less scary for the person whose merge request is being reviewed, it also makes it less intimidating for other team members to weigh in on more senior team members' work.
"Review is really something we all do together. Even the most junior person or just someone who doesn’t really know this part of the application yet, if they see something that doesn’t quite look right to them or something they might have a question about, it’s really useful if you make them feel free to comment on that." - Douwe
By removing the barriers to contribution and making it easy and encouraged to offer input, even where team members have less experience, we've built a culture around collaboration and learning from others' expertise. Fostering collaboration across different teams and functions is just one element of a DevOps culture – to learn more, watch our webcast, "Managing the DevOps Culture Shift" on demand now.
How does your team encourage everyone to contribute? Tell us in the comments!