We believe that the best software developers, companies, and products are those that embrace collaboration and transparency in communication, which is why we’ve compiled some of our best blog posts, articles, and videos about the topic in this blog collection.
But first, has your engineering team adopted a DevOps strategy? Start here if you need help communicating why DevOps is the best approach to stakeholders outside the engineering team.
What is DevOps collaboration?
Collaboration is as important to DevOps as automation and nearly as hard to achieve. Software development was traditionally split into very different functions that didn’t work together; the advent of DevOps, bringing dev and ops together, was designed to change all of that.
Why collaboration in software development matters
We unpack three key reasons why collaboration is an essential skill for software developers.
1. Your future as a software developer is bright if you embrace collaboration
While some might consider teamwork and communication to be soft skills, the results of our 2020 DevSecOps survey reveal a consensus among developers, security pros, ops team members, and testers that collaboration and communication are the most important skills for a DevOps professional.
"You can’t have one brain that knows it all," explains Darwin Sanoy, senior solutions architect, Americas, at GitLab. "You need communication and collaboration to work together." Read more to learn about how to brush up on soft skills to future-proof your DevOps career .
2. The best way to practice collaborative software development? In open source communities
GitLab is an open-core product with open source and source-available code. This means that community contributors can push changes to our open source codebase, and can view our proprietary, source-available code. Anyone who has been a part of an open source community can tell you that they’re very global, so you could be living in Mexico and collaborating on an MR with someone in Poland. Global collaboration without needing a passport is enriching and unique, but sometimes cultural differences can give way to miscommunication. The best way to embrace working in open source communities is to practice mindful communication and always assume positive intent. Most of the time, conflict is the result of misunderstanding, not malevolence.
Earlier this year at GitLab Commit Virtual, we shared some communication hacks to help you seem approachable and invite dialog while contributing to open source communities. Watch the video below to learn all about it.
And while open source and security might seem like a strange coupling, we found that community contributions helped fortify our GitLab Secure product. Read the blog post to learn more about how inviting contributions from our open source community helped users extend our product to suit their needs.
3. Why can’t dev and sec be friends?
Teamwork doesn’t always come easily, particularly when you’re on opposite sides of the DevOps lifecycle. While at GitLab, dev and sec teams do work well together, this isn’t the case on every engineering team.
Brendan O’Leary, senior developer evangelist at GitLab, and Ethan Strike, security manager for Application Security, talk candidly about their respective objectives and how it’s better to integrate security into the development process, as opposed to tacking it onto the end.
Best practices for developers
We explain why code review and pair programming are two methods that help engineering teams ship more stable code.
Code reviews for all
Fast feedback is one of the pillars of collaborative software development practices, and code reviews are an essential component. Whether you’ve been coding for 10 years or 10 weeks, having more than one person review your work is critical for catching errors and shipping stable code. But that doesn’t mean code reviews are simple. Read our blog post on the challenges of code review to learn tips on how to overcome the hurdles, and watch the demo on how to use GitLab for code review. Phil Hughes, staff frontend engineer for the Create: Code Review team summarizes four tips to make code review more efficient and less painful. But all in all, we believe that despite the challenges of code review, it’s absolutely worth any hassle.
While you’re at it, check out our blog post where we share some of our ideas about the future of merge requests and code review with GitLab. Not all of the ideas will necessarily be implemented, but it will give you some insight as to our vision moving forward.
Use the buddy system
Pair programming is basically code review in real time, and it is also one of the pillars of Agile software development. Typically it is done with two programmers at the same workstation, but when you’re on a a globally distributed team like we are at GitLab, that workstation exists in the virtual realm instead of IRL. In pair programming, one programmer creates the code (the driver) while the other person reviews the code (the navigator).
"Programming is fairly abstract. When you have to explain a concept verbally, it often makes you realize you're missing pieces or that there are better ways to solve problems than your initial idea." – Brandon Lyon, marketing web developer/designer
That’s not to say pair programming is the ideal workflow for everyone, one developer said that, as an introvert, pair programming is tiring. But one of the key benefits is that it speeds up the software development process and allows you to ship more stable code, faster. Read more about the upsides and downsides to pair programming for Agile software development.
Best practices for collaboration on non-engineering teams
The tools and strategies you use to communicate may vary based on where you sit in your company, but there are a few best practices that engineering teams use that can be applied to non-engineering teams, such as pairing up on design, code production, and even writing projects. Check out some of our blog posts about how to use GitLab for collaborative project management within and across teams.
- How designers collaborate sychronously: Pair designers, coffee chats with team members across GitLab, weekly UX showcases, calls with product designers and product managers, and other strategies.
- How Marketing uses GitLab for project management: In part one, we explain why the architecture of GitLab is so effective for project management, even for users in non-technical roles. In part two, we share some real-life examples of how we use GitLab was used for successful project management.
Other inventive ideas for collaboration
In a stroke of genius, our Support team recognized that the weekly team all-hands meeting was getting a bit dull, and decided to change up the format and distribute it as a podcast instead. The podcast format allowed team members to listen to the weekly update asynchronously, which is an essential component of communication for a globally distributed team such as ours. This is a great example of how thinking outside the box can improve how information is disseminated.
Some challenges with DevOps collaboration
- Maintaining security. Security and compliance are critical for successful DevOps, but these areas have traditionally been siloed, making collaboration tricky at best.
- Too many people on a project. Large and busy teams can struggle with communication and collaboration.
- Lots of communication options. Using email, instant messaging, tickets, Zoom recordings, and more to house project info can cause things to slip through the cracks.
- Dealing with different personality types and working styles. Individual needs and preferences can vary wildly and it can be a struggle to keep everyone on the same page.
Want more information on collaborative software development?
Trust us, you’ll want to bookmark this page so examples of best practices for collaboration are just a click away for the times when you’re feeling stumped or siloed.
Watch the webcast to learn how to bring cross-functional teams together using GitLab to deliver more stable software, faster.
Cover image by Volodymyr Hryshchenko on Unsplash
“Don’t be fooled into thinking collaboration and communication are DevOps soft skills. Bookmark this collection of best practices from @GitLab” – Sara Kassabian
Click to tweet