Vincent, Site Reliability Engineering consultant (service reliability engineer, maintaining services in operational condition), has been on assignment for ten months with a major player in French telecommunications in its specialist managed services subsidiary. His main role is to set up the platform’s monitoring stack.
We asked him about the fundamental issues of the DevOps approach in his work environment and the links he naturally forges between DevOps and agility.
1. The advantages of a well-established DevOps culture
From the moment he took up his post, Vincent worked in an environment where the DevOps approach was already firmly established:
“We develop, deliver and maintain our products. We are trying to automate as many processes as possible and collect more measurements. And especially in the monitoring team, it is all the more targeted. We have a genuine DevOps approach. The majority of people in the team already come from these movements philosophically. It’s been in their DNA for years.”
Vincent fits in perfectly with this approach as the DevOps approach has been close to his heart for some years.
Did you know?
Although we often see job names that include the term “DevOps” (DevOps engineer, DevOps integrator, DevOps manager or even “DevOps” for short), this is not adequate, as Vincent points out: “DevOps is a culture, a way of working. It is the contraction of Development & Operations, an extension of Agile encompassing delivery and maintenance in operational conditions. So it can’t be a job title, just as you don’t recruit an ‘Agile Engineer’…”.
DevOps emphasises moving to a team structure based on results, on knowing your job (based on the value stream map), on limiting scopes, on using data to guide actions and decisions, and on recognising that, rather than doing work for work’s sake (e.g. not having a backlog of features, a history of technical debt, and a backlog of operational work). Note that one can still reasonably speak of a “coach” or “DevOps consultant”.
This is an interesting piece of information to keep in mind, especially with potential recruiters, to show that you are sympathetic, or even an advocate of the approach!
2. DevOps and agility: two sides of the same coin
Vincent is a firm believer of the DevOps approach and, for him, the link with agility is undeniable: “To simplify things a little, we might say that DevOps is the application of agility in IT terms. The first time we saw the word “agile” appear in reports, it was for manufacturing (21ST Century Manufacturing Enterprise Strategy Report, Roger N. Nagel): so we can see that an agile approach can be used for just about anything. And on the IT side, DevOps is really the application of the concept of agility in the sense that we must manage the product from development to its operability (delivery, maintenance in operational conditions and product updates).”
The relevance of this link between the agile approach and DevOps is not well known, either by agile practitioners, developers or operational staff. So Vincent is keen to raise awareness of the subject, particularly during presentations given with the Agile France association.
For him, the proof of this connection is beyond doubt: “The term DevOps is a contraction of Development and Operations, so you really have to look at it as a whole: it’s the product life cycle from start to finish. So it really is agility.”
3. Experimenting, testing, making mistakes: exploration at the heart of the DevOps approach
Among the principal challenges Vincent encountered on his assignment, the most important was experimentation, coupling technologies already in use with other forms of deployment (outside of container applications, on which their work had been focused until then), while ensuring maximum simplicity of use for the end-client.
To meet this challenge, Vincent explains it was essential to experiment, make mistakes, analyse where things worked, the sticking points, etc., and progress gradually. He said he was confident that by keeping up the momentum, he and his team would meet the challenge: “When you move into a field where no-one has been before, you can get your feet tangled in the brambles. But as we go on, as we keep moving forward, this is how explorers lay the first foundations.”
The important thing in a test and learn approach is not to lose sight of the end goal, namely to bring value to the end-user. It is not necessarily a question of having to choose between development speed and application stability. The Accelerate model asserts that the two can go hand in hand! The key is to monitor a range of indicators to ensure the overall performance of the approach:
- Two speed indicators to monitor: the frequency of deployment and the speed with which the finalised code is made available in production;
- Two stability indicators to monitor: the average time to restore a service that has failed and the quality of the code delivered.
Things to bear in mind from Vincent’s experience:
There is an urgent need to change the mindset about mistakes, about possible pitfalls during an investigation: “Let’s not talk about mistakes; let’s say we have identified the ways that don’t work!”
4. Communication: a major issue for DevOps, made more complex by remote working
Within Vincent’s team, problems with prioritising topics and organising work emerged with the first lockdown (in March 2020). The team had started working with a Kanban approach, which was not easy to implement under the circumstances.
Systematic nationwide remote working has not helped either, especially for newcomers to the team. Vincent tells us: “even if you are used to working remotely, onboarding is tricky. Misunderstandings can be more frequent when you have never met some of your colleagues (or just met them remotely). In the end, it is the time spent in informal conversations that allows us to better understand the personality of the people we are talking to and to remove any mutual misunderstandings.”
In practical terms, to improve communication, we had to plan more retrospectives and add labels in JIRA to simplify teamwork on tickets that required it.
Facilitating communication between teams is undoubtedly one of the pillars of the DevOps approach. Everyone needs to understand everyone else’s objectives and challenges so they can move in the same direction.
Let’s give Vincent the last word: “When you’re playing football, it’s better for the team to work together to put the ball in the goal, rather than for everyone to take a ball and try to go it alone. That’s what teamwork is all about: working together.”
And there’s more about keeping your team together when you are working remotely in our article!