How to Develop Collaboration in DevOps Teams:
In our last tutorial we learned about Collaboration in DevOps, now will see how to develop Collaboration in DevOps.
Certain practices of DevOps facilitates the team to develop the mindset of collaboration amongst the team.
- Version control – a single tool for the team, brings transparency.
- Automation – learn from each other, be independent, common goal and thinking in the team.
- Inducing a production mindset.
- Monitoring performance in the life together.
Further Reading => Explanatory Guide on DevOps
So, the real value of DevOps is to,
- Value people and collaboration
- Inculcate Production mindset
- Version control everything
- Automate everything
- Create small, frequent deployments
- Monitor the production proactively
So, collaboration is not only between Development and Operations but also with all the stakeholders of the program is the key need of DevOps practice.
VIDEO Part 2 Block 6: How to Develop Collaboration – 9 minutes 54 seconds
Few cultural aspects which help to achieve collaboration in the team are the following which we studied in our earlier block.
That involves each other in all the meetings, discussions and reviews. Involve operations in the development related meeting and development team in the operation related meeting.
- Understand each other's task in the team.
- Understand the dependency.
- Maintain transparency by following version control.
- Learn from each other.
- Stop blame gaming.
- And have common thinking and common goal within the team.
These were the few aspects which helped in achieving the collaboration within the team.
In addition to these practicing few of the DevOps practices which we already spoke about, establishing common thinking in the team, focus and clear understanding will enable the team to collaborate with each other.
Use version control for all the program artifacts which undergo changes, ensure that a single version control tool is used across the team which enables the collaboration and helps in transparency as well which we also mentioned earlier.
earlier Operations team never worried about version control and now DevOps culture has got them into version control aspects and integrates with the developers.
So, now with the introduction of same version control tool for both development and operations, there is a transparency in whatever each team is doing and hence there establishes a collaboration.
Earlier in some situations, the operations team used to feel that they are highly skilled and intelligent than the developers and used to act smart and boss over the rest of the team and make the Development team feel inferior.
They also used to feel that they are close to production, and they alone know what is happening in production and what is required in production and would never let others know about it, thinking that they will lose their credibility and importance.
Now that there is enough transparency because of DevOps practices and there is a lot of collaboration between the teams.
Now, even the development team knows what is happening in each of the production sites and how it looks like and what are the specific differences from one site to another site and how they need to take care while coding and testing. So, in this context being transparent is collaboration.
Inculcate ‘Automate everything’ mindset in the team which helps in collaboration.
Automate everything is the concept, which operations have picked up, earlier which was confined to development only. So, inculcate ‘Automate everything’ mindset amongst both the teams and ensure that the team realizes that, realizes that the more we automate, the more we automate, more the stable and repeatable the deliveries would be.
This is also a point of collaboration that the team would consider and help each other in automating and reducing the dependencies. For Example, automation of software installation process by the development team helps Operations team in saving a lot of time in installation.
Similarly, the operations team automating environment is set up as an automated script and lets the development team to automatically set up an environment, whenever they want.
Induce the production mindset amongst both the teams.
This production mindset which was just the responsibility of the operations team earlier has become the responsibility of the development team as well, in the DevOps culture.
Ultimately the development team also has realized that there is a value to their work, effort spent and software that they have built over a period of time, only when it is in the production and being consumed by the users. So, same thinking, same goal for both the teams is a collaboration.
Also, participating in tracking the root cause of the issues in the production is a collaboration.
When there is a common single goal in the mind of everyone, Production first, instead of just focusing on their individual tasks, it is a union, and hence it is a collaboration.
Development and operations together are monitoring live.
Both the developments are learning from ops and ops is learning from the development, wherein both of them are on the same page and hence they are collaborating with each other.
Developers were earlier never worried about the importance of performance monitoring in live and impact and the urge of addressing those issues quickly. Now in the DevOps practice, because of the collaboration, having known these problems, developers actively participate in providing the quick resolution to the production issues.
With this understanding of the importance of performance monitoring and the critical criticality of live issues, the developers also gained knowledge on what is really expected in production and how to smartly focus on that in preventing them than fixing it later.
So, the development team knowing about various production sites and their status is helping them to resolve the issues quite fast and also helps them in contributing towards providing valuable suggestions.
Thus, the development and operations together monitoring the live is a very good instance of collaboration.
I also mentioned earlier that collaboration is just among the development and the operations in the DevOps practice but also amongst the other stakeholders like sponsors, business analysts, end users etc., then what does this collaboration mean?
This is also the same as that of the DevOps collaboration concept like working together with them throughout, with constant interaction, understanding each other’s problem and exhibiting all these aspects of support is a collaboration.
Well, these are the few instances of exhibiting collaboration, which is not really about any tools, technology, and processes in the program but mainly about people, their mindset, their thinking, and the culture that they develop which greatly influences the delivery.
So, in total, when people start working together and collaborating, amazing things will happen and anything can be achieved in a group with a common goal and collaboration.
We have learned the key four practices of the agile manifesto, that are adopted by the DevOps practices.
And How are these objectives, how are the objectives of DevOps achieved through these principles?
We have studied the role and importance of few key elements of DevOps like Version control, Automation, and delivery of small increments of value to customers.
And also, What is actually collaboration in the context of DevOps and how do we achieve collaboration between development and operations?
Summarizing the key takeaways,
- We have learned these key concepts of DevOps implementation.
- One is, Value People and collaborate a lot and throughout.
- Inculcate Production mindset in the team.
- Implement Version control on all changing assets of the program.
- Automate everything from development to Operations activities.
- Create smaller frequent deployments and provide value to customer constantly.
- Both development and operations monitor the production sites proactively and anticipate problems and work towards preventing it.
With this we complete Part2 of this learning module, demystifying DevOps.
In the next part, lets study about the role and importance of few more key elements of DevOps that’s continuous integration, continuous testing, and continuous deployment which in short is called CI, CD in DevOps terms.