Florian Lorétan - Boosting developer happiness with DevOps
Florian Lorétan is a European technology advocate and public speaker. As the CTO at the digital agency Wunder, he has helped foster a DevOps culture and implement processes to enable his developers to perform better.
This is what this particular episode is about, namely, how leveraging DevOps can improve the work of developers by allowing them greater autonomy and enabling them to achieve true mastery of the technologies and practices they use. We discuss the basics of DevOps, the workflows, some of the key considerations, its overlap with agile software development, and some on-point practical examples of DevOps in action.
Links & mentions:
“So I think it's really important to provide the opportunity for developers to develop this mastery but also to have this kind of internal open-source culture where we enable people to contribute back and to say, hey this is something that works really well, I think everybody should use it, and really sharing that mastery.”
Welcome to the Agile Digital Transformation podcast, where we explore different aspects of digital transformation and digital experience with your host Tim Butara, content and community manager at Agiledrop.
Tim Butara: Hello everyone, thank you for tuning in. Our guest today is Florian Lorétan, whom you might know as a regular presenter at Drupal events talking about decoupled architectures, Elasticsearch in Kubernetes. In the past couple of years, he has helped establish the DevOps culture at the European Digital Agency Wunder as their CTO.
So in this episode Florian and I will be discussing how leveraging DevOps can improve the happiness of developers by giving them greater autonomy and enabling them to achieve greater mastery of the technologies they use.
Welcome Florian, it's great to have you with us today. Well let me just go ahead with what I think is the most essential question and that is what does DevOps even mean? Can you give us a brief definition and maybe a little bit of history?
Florian Lorétan: Yes, of course. So I would say that… well I’m not an expert on DevOps and there's, DevOps has been around for like over a decade we just got started a few years ago so we're definitely not in a position and I’m not in a position to say really where it comes from. But what I see is that it's really a methodology that is not actually very well defined but that has a goal to improve the way that we deliver software.
And I think this is the main thing. The most important part is, what is it there for. There's a lot of different practices, infrastructure as code, monitoring and so on. These are all really important but I would say DevOps is really about why we do this. And I think one of the best illustrations of this is from a book that I’ve recommended to many people and got really good feedback from this, a book called the Phoenix Project.
So it's not a textbook, it doesn't explain how to do DevOps, it's a novel. It tells the story of a project that's gone horribly wrong over budgets over the deadline and that really illustrates why we need DevOps. And I think this is a-- it's a fascinating read and also one that for me when I read it I was like, hey this-- now I have a better, concrete understanding of what DevOps is about. But yes I would say it's really about improving the way that we build and deliver software.
Tim Butara: Yeah that's a very good point. So you would say it's defined not by what it is, by what its goal is. That's actually a very cool distinction. It's good that you brought this up right at the very beginning. And I’ll make sure to link the book that you mentioned in the links for the additional resources. Okay maybe now that we got the first thing out of the way, how would you describe the DevOps workflow or the DevOps process? What are like the most integral parts?
Florian Lorétan: So I think one of the ways that we could look at it is looking at the process of building software as software itself. So rather than saying, well we built an application, and then actually taking this application and well deploying it locally, making sure that it works at each step of the development process and also making sure that when we deploy it, it works in production, it still works in production when we bring changes, all of that.
Well we don't want to treat all these things as just manual steps where it's about taking our application from one place and kind of like putting in the box and then handing it over to somebody else who will run it on the server and so on. So it's pretty much treating this whole aspect as software and we want to automate all of this. So just the same way that we want to, like if we build an application for end users we want to automate the manual steps of the process and whatever, well whatever the organization is where the application is used and we want to take that exact same approach and use it internally for our development team.
And so what we want to make sure is that we reduce any times when there is a need to wait. So for example like you need a… you build a new application, start a new project of course you want to deploy it but the server is not there and you don't have the permissions to create the servers, you don't have the credit card to create the account and so on and I think these are the small things that really kill the productivity, kill the flow and something I’ll mention as well also I think have a big impact on the happiness of development teams.
So really focusing on automating all the things that cause friction in the development process and not only that but also iterating. So the more, well, really taking close look at how things are working, which parts are not working well trying to improve this software that manages the process as we progress and… yeah so I think these are really the key parts: automating as much as possible and improving. So constantly evaluating how is this process going and what can we do better.
Tim Butara: This sounds to me very similar to the approach that agile software development uses. Would you say… I mean from what I’ve noticed so far, I’ve noticed that there's a huge overlap between DevOps and agile software development. How would you say the two kind of play together? How do they overlap?
Florian Lorétan: Yeah. So, the DevOps movement actually comes quite directly from the agile software world and I think the agile software is really focusing like traditionally on the software and the application. If you look at the typical scrum team of course you have the product owner that's representing the stakeholders. You have the scrum master that facilitates the processes. You have the development team, could be in a Drupal project for example but any kind of web project. You typically have front-end developers, back-end developers, you might even include the designers but usually the operations people, the people who run the servers are not necessarily included.
There could be various reasons; sometimes for example the hosting could be managed by a different company or it is just a managed solution, so there's not like you don't actually have a person who's dedicated to the hosting part of the stack. But it's always kind of assumed that, yeah, this is something separate and I think the key part of the DevOps process is applying that same idea of the agile process and I think… for example this constant evaluation, we also have this in agile.
So when we do the sprint review after sprint review, we do the sprint retrospective where we take a look at not only what we built but also how we built it and I think it's important to apply this same principle… well in the DevOps methodology we apply these same principles, but also to the entire organization and really taking a look not only at the application itself but really like taking, like the application is only bringing value when it's in production serving users. It doesn't matter… like if you have a new version that's sitting somewhere in a server that's not used then it's not bringing anything.
And I think it's really interesting to see how this can really bring the whole organization together and then it also includes different stakeholders like who are, like what are your sales people doing your account managers and so on and I think that this is really the part that's interesting is that well it's not only about the, like the tools to set up the servers. And what we've seen for example it changes the way that we can do accounting for when we invoice for hosting costs because it lets us automate into the accounting process.
Tim Butara: So, if done right DevOps actually has like organizational level benefits? Like not just producing better, more quality software but actually you know enabling all of the different teams within an organization to be more efficient, to streamline their productivity, because the processes have been optimized?
Florian Lorétan: Yes.
Tim Butara: Nice. Awesome. So we kind of started talking about the benefits of DevOps already but I want to reiterate on what you already mentioned that we're going to talk about how DevOps can help enhance developer happiness and so what are the main benefits of DevOps for developers? What factors contribute to DevOps improving the happiness of developers and their efficiency?
Florian Lorétan: Yes, so I think DevOps can actually look very differently depending on the organization that you're talking about. Actually just recently I was I was talking about at a CTO meet-up about pretty much the same topic and how we use DevOps to get happier developer teams and then the second speaker was talking from a completely different organization that has something like 30,000 employees and a very corporate culture and their DevOps process looked very different and it was much bigger undertaking and there the benefits might also be quite different even though the basic principles are the same.
But what I would say... so the way that we've enabled this DevOps process at Wunder, it really enables the developers to be fully autonomous. So they are able to create projects in the development stage. So pretty much everyone in the organization is able to create a Git repository and then there is some automation built in that will automatically deploy that Git repository with very simple configuration.
So there's no prerequisites in terms of knowledge, no prerequisites in terms of permissions and also no prerequisites in terms of budget. And the way that we can do this is because our development cluster is set to: pretty much whenever you don't use something then it gets scaled down and so even if somebody just creates a personal project or a quick experiment to see if something would work, it's not going to be up and running in the long term, so the costs are actually very minimal and so it enables us to do this kind of thing without having our hosting budget going through the roof.
And I think really having this kind of autonomy gives us, like really gives it makes people happier because they're more in charge of things that they do and it really goes like well of course creating a new project but also taking that project into production and doing a live launch and we've actually been able to do this without any involvement from our operations team which is something that is actually pretty cool to see, hey, somebody launch a project and we didn't have anything to do and I think this is something that's really exciting.
And for us at Wunder the idea was to originally to focus on this developer experience but what I’ve seen actually in in retrospective looking back at this motivation theory and one of the references that I use is the book Drive, by Daniel Pink where he talks about how the key to motivation is, autonomy, mastery and purpose and it's actually really interesting to see how these three key requirements to motivation are actually addressed quite well by this this automation process.
Tim Butara: Yeah it seems totally perfectly in line with what we've been talking about so far. I know that you've exposed the mastery of the technologies, autonomy and what was the third element, purpose, you said?
Florian Lorétan: Purpose, yes.
Tim Butara: Yeah I mean from what I… from how I understand DevOps it gives you all of these three benefits so it's… and as you said it's like essentially it plays along and correlates well with motivation and probably each of these skills and traits is kind of essential for the other one and they just work in tandem so well.
Florian Lorétan: And maybe one thing to mention especially regarding the mastery; one thing that is important… The mastery that the development teams care about is not about mastering Kubernetes, usually. It's not about mastering this tool that does the things for them. It's about building the application whether that's using React, whether that's using Drupal or something else or also having the freedom to use something else.
So I think it's really important to provide the opportunity for developers to develop this mastery but also to have this kind of internal open-source culture where we enable people to contribute back and to say hey this is something that works really well I think everybody should use it, and really sharing that mastery.
Tim Butara: Yeah definitely. It's about finding the most efficient solutions, most efficient tools and if they prove to be really efficient and really well performant then why just limit them to a specific team or a specific person. This is the power and beauty of open source, right? That everything is open, everything is able to be taken as an inspiration, taken as kind of new approach for something and it isn't closed off.
It's-- it allows for much more of that autonomy, that freedom that we're talking about. Maybe it's actually one of the essential parts of the autonomy. Okay, what about some of the kind of main considerations and maybe challenges when implementing and executing DevOps strategies?
Florian Lorétan: I think one of the biggest challenges is, it's really changing culture. So it's not about changing tools but it's also changing the way that the, for example development teams and operations interact. So what we had previously was an operations team that was focusing on doing things that were needed to set up a new server whether it's for a new project for production and so on, and it has changed so that the development teams themselves can do things themselves but it also means that they are expected to do those.
And so rather than the operations team providing like, well, doing, performing certain tasks they're actually facilitators and that means that they also have a different role when it comes to the budget in the company. And so, there's really a lot of different things that really need to change and as… I think there's also these types of, well, I mentioned monitoring and cost before that we make sure that we give the freedom to the teams but that we also give some responsibility.
So if a team decides, hey you know the website is a bit slow let's double the amount of resources that we use in production, that definitely works and maybe there are some situations where this is actually a good way to go about things at least in the short term but then there also need to be some accountability for this.
And so that means there are different responsibilities and then we also need to make sure that we have proper measurements in place. So for example for costs, yes it's great to have an infrastructure that scales automatically, the cloud makes this very easy but at the same time, yes, the cost will scale as well and so it's really important to make sure that there is monitoring not only of server load but also how much are things costing, where do we use the money and things like that.
So I think that this is really something that it takes some time and I would really recommend going one step at a time and really constantly evaluating. So using the DevOps methodology to improve the way that you do DevOps pretty much.
Tim Butara: Hey, well that's actually a very cool thought. Can you say that again maybe?
Florian Lorétan: Using the DevOps methodology to improve the way that you do DevOps.
Tim Butara: Nice. Awesome. That’s a quotable line right there. So you mentioned the balancing of freedom and responsibility and I think that's a very good point because it's kind of the you know too much freedom kind of diminishes responsibility and too much responsibility kind of diminishes freedom so it's kind of a seesaw of these two aspects and I guess one of the most important considerations with DevOps as you mentioned is kind of making this perfectly balanced between the two.
Florian Lorétan: Yeah and this is also something that will really greatly vary from one organization to the other so it could be that you are a pure Drupal agency for example and then it's kind of expected that all the projects will be using that technology and then if you want to use something else then that's going to be like that's not a freedom that is given and then there are some other agencies where well it will be whatever is most appropriate. Maybe there are different like much more diverse fields so I think it's really important to take a look at the organization specifically in which you're moving and then seeing what is the appropriate level of freedom when it comes to a lot of different aspects.
im Butara: Yeah because DevOps is not like a completely set-in-stone strategy, a set-in-stone approach. So you-- as you mentioned before it really depends from company to company and because it's also very dependent on the company culture and kind of kind of the change in the company culture with the adoption of DevOps, so yeah, I can see how probably as you mentioned before during that talk at the meet-up you quickly came to the real realization that actually, whoa, okay the way these guys are doing DevOps is something completely different from what we've been used to but our approach worked great for us and obviously their approach worked great for them so why try to reinvent the wheel if we've kind of invented our own wheels, our own respective wheels for each of our organizations.
Okay now maybe let's try to make our discussion a little more current and place it kind of in the context of everything that's been going on in 2020 and the question I have for you is, how can DevOps help businesses that are struggling in the wake of COVID and the mass digitization that we've seen this year?
Florian Lorétan: Well I think there is… there again it depends on the organization. So if you have an organization that builds software that's already working with remote tools that's like kind of like modern distributed ways of working using Slack and Zoom and so on or well it doesn't have to be these tools but these types of tools, I think these type of organizations have had a relatively easy time adjusting and well it's just instead of working from home once in a while then you just work from home most of the time.
So that's not a huge change in terms of like ways of working but this is definitely not the case for everyone and we see like there are many places where desktop computers are the standard and then suddenly it's like it's very difficult to adjust that. And I think bringing this type of principles where you want to, you want to make things flow as easily as possible and really I think using this methodology where you take a look at what are the things that are time consuming to some of our staff.
It could be the operations team, it could be the people managing the laptops and installing and configuring the printers and it doesn't really matter but I think this idea of work on automating the things that cost you the more time so that you have more time to focus on other things.
I think this is really key and it applies to a lot of a lot of things outside of just software development. One really good example that I saw at a Google Cloud Event, this company that we visited had like some really incredible growth and one of the ways that they facilitated simple things like getting a new mouse or getting a new keyboard because the old one wasn't working, they had a vending machine in the office and it was a vending machine that was full of computer equipment and you just went up there and just like swiped your company card and just said, I want a mouse, and then pretty much whenever there was something that you didn't need there was a box next to it and you would just put it there.
So you didn't have to ask someone for a mouse or ask someone for a keyboard or something like that or an adapter and yes these types of things can actually save a lot of time and I think there's a very big pressure on companies and especially in the digitalization world to really optimize and to reduce costs and I think this can also be done not only by reducing costs in a way that makes people unhappy but also improving the efficiency and really do that in a way that really makes people's working lives easier.
Tim Butara: Yeah because you mentioned cost and cost does not necessarily need to be financial costs. You know in this sense it's kind of saving costs for the businesses in terms of both finance and productivity and time. So it kind of has a win-win-win advantage.
And I love that example with the vending machines for computer equipment. This is like digital transformation in real life in practice. I love it. And it's interesting throughout these conversations that I’ve been having for the podcast. I’ve-- a trend that I keep noticing time and time again is the fact that basically at the essence of digital transformation it's not so much the digital but it's enabling your people, your employees, the whole organization to perform better, to kind of streamline our workflow as we just said to kind of save costs both in terms of money, time, efficiency which leads to so many benefits for everybody involved in the processes.
Okay thanks Florian. This is all the questions that I have at this time. Is there anything that you'd like to specifically point out before we finish our chat?
Florian Lorétan: Well maybe one thing; I’ve been really becoming more and more involved in this topic of helping teams grow and really well not only grow in size but also grow in maturity and do that in a sustainable way. And this is something that I’m really passionate about and I have a ton of experience from Wunder but I’m also really interested in hearing how things are going in other places, other types of organizations.
So if anybody has some questions, some ideas, definitely feel free to get in touch with me. I would be happy to have a conversation and there's no commitment at this point really just have a conversation, share how things are working for you and yeah having a talk about that. So you can find me pretty much anywhere on the regular channels so LinkedIn, Twitter and so on.
Usually my handle is floretan. So F-Lorétan and if you Google me usually you'll find me. I haven't met another person with my full name. So Florian Lorétan anywhere you should be able to find me.
Tim Butara: Cool. Thanks Florian. I'll make sure to include this info in the links. Thank you again for the great conversation and sharing the interesting insights with us. And to our listeners: that's all for this episode, have a great day everyone and stay safe.
Thanks for tuning in. If you’d like to check out other episodes, you can find all of them at agiledrop.com/podcast, as well as on all the most popular podcasting platforms.
Make sure to subscribe so you don’t miss any new episodes, and don’t forget to share the podcast with your friends and colleagues.