Conf42 Platform Engineering 2023 - Online

The Digital Factory

Video size:

Abstract

We are entering the age of the industrialization of software development. The Digital Factory together with Platform Engineering will help industrialize digital product development across teams to efficiently develop products and improve the lives of our staff, time to market, quality, and alignment

Summary

  • Romano Roth is chief chief of DevOps and partner partner at Zirke. He talks about how we can industrialize our product development. He says DevOps is about bringing people, process and technology together to deliver value.
  • Scaling DevOps is already quite difficult. It's not only about tools, it's also about these technical practices. Can you scale DevOps? Is that really possible?
  • The platform engineering is the foundation of the digital factory. It enables the teams to do DevOps. And here again, it's very important, they need to love the platform. When you want to deliver complex products, you need a holistic approach.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
You. Hi and welcome to my presentation about the digital factory, how we can industrialize our product development. First to myself, my name is Romano Roth and I am chief chief of DevOps and partner partner at Zirke. I work now since 21 years at Tilke. I joined Tilke directly after university, became a junior net engineer, then an advanced software engineer, then an expert software engineer, then a lead software architect, and then a consultant. And one thing that was always at my heart is how can we continuously deliver value? How can we ensure the quality of what we are building, and how can we automate things? And when the whole DevOps movement started, I jumped right on top of that, became one of the organizers of the DevOps Meetup Zurich, which is a monthly meetup we are doing in person in Zurich. And you can always join us, it's completely free. And I'm also one of the organizers of the DevOps days Zurich. The DevOps days is a global movement. In all of the big cities all around the world, there are DevOps days. And I'm the president of the DevOps Days Zurich. And you can see DevOps is really a topic that lies at my heart. And that's also why I have my own YouTube channel with over 100 videos all around DevOps platform, engineering, architecture and leadership. And I'm also posting quite a lot and tweeting quite a lot. You can always follow me on all of the social media channels that you see there. When you want to learn more about DevOps in the products that I'm doing, I work for different clients in different industries and I do DevOps transformation. Now when I'm at such DevOps transformation, or when I go to the clients, then I see the following picture, which you can see here. The business together with the clients, they have great plans. They are putting these great plans into ideas and they put that into word documents and into gyra tickets. And then they throw these word documents and chira tickets over the wall of confusion to the development team. The development team looks at these documents and they say, yeah, if you want to have that, we can implement that. And they implement it and then they throw it over the wall of confusion to the testing team. The testing team looks at that, what got delivered and looks at the specification, and it is not the same, but they test something, it's green, and they throw it over the wall of confusion to the operation team. The operation team said, how should we operate that? That will never ever work in production. But of course, somehow they get it to work and it goes back to the customer and to the business. And they say, hey, what is that? That's not what we wanted. This is not usable. And what you can see here is actually this infinity symbol. This is a value stream. And in that value stream you see all of these walls of confusion. And these walls of confusion, they are coming from the silo organization, which we find in many companies. So the value stream, the value flow is broken by these walls of confusion. You also can see that there is no alignment. These different organizations, they don't work at the same goals. And overall there is a very bad developer experience and a complete lack of excellence, also of software engineering excellence. Now there is this big movement of DevOps, where you put the client into center, you stop using projects, you go into product development. So you have products instead of projects, and you continuously deliver value across the value stream. So DevOps is a mindset and a culture and a set of technical practices which allows you to continuously deliver value or the products to your customer. So when we talk about DevOps, then we also need to talk about that term, DevOps, because that term DevOps is not so well chosen. It says development and operation. And of course there are some people, smart people out there, they say, yeah, we need to fix that term, because nowadays security is very important. So let's call it devsecops, which is development, security and operation. And others say, no, we need to call it Bisdev ops because the business is a very, very important, they are giving us the money. So BisdevOps business development and operation is the right term. And you can see this discussion does not go everywhere, because as I mentioned before, it is about organizing across the value stream, bringing all the people together which work on a product. So we should need a term like Dev, Sec bits, Arc, user experience, quality assurance, Ops. Or we just call it DevOps, because DevOps is about bringing all the people, process and technology together to continuously deliver value. This is what DevOps is at its heart. So what does that DevOps bring us? So science has looked at that, there is this state of DevOps report and the amazing book accelerate which had a look from a scientific perspective to DevOps. And they are comparing companies which are not doing DevOps versus companies which are doing DevOps. And you can see the benefits are huge. For example, you have a 973 lives, increased deployment frequency. So how many deployments you can do also faster lead times into production, faster time to discovery, and you have a much lower change failure rate. When you summarize all of that, then you can clearly say when you are doing DevOps the benefits are you get more value for the money, a faster time to market, a better quality, a higher customer satisfaction and top qualified employees. This is the benefits of DevOps. So now we have understood what DevOps is, but doing DevOps is already quite difficult. Scaling DevOps is even more difficult. Let's have a look how we scale that. So usually what we see in companies is this picture. You have different development teams and then you have the wall of computation and then different Ops teams. And many companies try to fix that by establishing a DevOps team in the middle. While this is sort of an okay start point, it is not a real solution to the problem, because with that you are just introducing another silo and you are not organizing yourself across the value stream and bringing all the people together to work on a product. So it's just another silo. But of course it can be a starting point. Now, how does DevOps look like when you are doing DevOps? Then you will have such a picture where you bring all the people together, not only dev and Ops as you see it here. So there will be all of the people which are working together in product teams. But this is also not the silver bullet, because with that you are introducing quite some inconsistencies and some redundancies. And you also can see that many of these teams, they are lacking product or operation experience. And of course there is also that complexity, for example of the toolings of the cloud and everything. So there is quite a lot of cognitive load on these teams. Let's have a quick look on the tooling. You may have heard of the term CI CD, which is continuous integration and continuous deployment or delivery. And usually what I also say is this is not enough because what you have in front is you have the continuous exploration where you are doing the requirements, engineering, the ideation and all of that, the backlog management. And in the end you also have the release on demand where you are continuously deploying and switching on and off features. So the whole thing is called continuous delivery pipeline. And here you see just an example of such a continuous delivery pipeline. It's really an example of what kind of tools you have in there. But what you can see is you need to integrate all of these tools together and you also need to maintain all of these tools. And when you have DevOps teams, they need to maintain that there. They need to maintain their continuous delivery pipeline. Of course, there are big vendors out there which say, hey, we got you GitLab, GitHub or Azure DevOps and other vendors are out there which say, yeah, we have that DevOps platform for you where we can cover everything. When you take a closer look you will see, yeah, they have a platform, but still you need to integrate quite a lot of tools in there. And also they are promising that they have everything, but in the end they are also integrating some other third party tools into that and you still need to maintain, of course the integration is quite good and everything is okay. Nevertheless, you need to understand these platforms. Now you have recognized that DevOps is a mindset, a culture and a set of technical practices. It's not only about tools, it's also about these technical practices. And here I show you in this DevOps cycle what that means, these technical practices. So if you want to build great products, if you want to do modern software development, then you need to implement these technical practices in order to continuously deliver value and build in quality. Of course you don't need to implement all of that, but some of them need to be implemented when you want to build great products. And what you also can see is, and especially when for example I join different clients, what I see is when a new team member or when I join a team, the onboarding takes quite a lot of time until I have really access to all of the environments, to the source code, to the repository, to the CI CD pipeline, to the Kubernetes cluster, it takes weeks and even months. And then when I want to have for example a new Kubernetes cluster, new VM or a new database, it again takes quite a lot of time until it gets provisioned for me. And also when I got it, usually I need to configure it according to words document or a gyro ticket. And when it comes to devsecops, doing devsecops, identifying all of these vulnerabilities, this is also quite a huge topic. When you enable vulnerability scanner license compliance, scanner software composition analysis or SAS, you get a lot of vulnerabilities and you need to make sense out of that. In the end, what you can see in most of the product development or the projects, you have a bad time to productivity, a slow time to market and low quality and no standards. So this is quite bad. Can you at all scale DevOps? Is that really something that is possible? For that we need to make a step back and think about what do we want or what does our company want. And I'm bringing now you a picture which I will build up so that you understand what we really want. On the top level you have the board, the board of directors, the management and what they have, they have a clear vision where they want to go with the company. So, for example, in this example here, you have a drone, you have a small market share and you want to have more market share. In the end, you want to earn more money and get bigger. So potentially you want to have more drones. When you only have software products, it's the same. You have a small application and you want to have more application or a bigger market share. So what does these people do? They are the portfolio level. There you have the portfolio of all the big initiatives. They have a portfolio backlog, and in the portfolio backlog, there are all of these bright ideas, and now they will choose the most promising bright idea and give that down to the product level where the product managers are. So in this example here, you see the board of directors, they have chosen that they want to build a drone which can lift heavy weights. So that's the idea. It's not yet a product around that. And they give it down to the product managers to sketch it out. What do we need to make? Sort of a drone which lifts heavy weights. So they give that down and the product managers, they will have a look at that and they will extract the features out of it, which you need to build. For example, a drone which can do the heavy lifting in software, it would be the same. Perhaps you want to have an additional software, additional feature and you would give that, again, down. So on the product level, you have the product backlog, where all of these features are in, and these features are then broken down into user stories, which you give down to the team level. And of course, they are all discussing these things. They are working very closely together. You always have feedback cycles from the top to the bottom. But in the end, you have teams, perhaps already working teams, and you give these user stories down there. They are going on the team backlog, and the teams are continuously working on these user stories. And of course, because you are now creating perhaps something special, like here, you perhaps also need a new team in order to create that. And this is where the platform engineering comes into play, which builds the platform for these teams. The teams are owning their own platform, but the platform engineers, they are providing these platforms to the teams so that they can work efficiently on these platforms. Here in this example, we will create a new team with their new CI CD pipeline. In the end, all of the parts are coming together, are getting assembled and it will be shipped to the customer and the customer will be, of course, happy about that. But the most important thing is now we have implemented the first step, we deliver value very fast to the customer. Now what we need to do is we need to get feedback from the customer and we need to make sense out of that. And it's not only customer feedback, it's also the whole telemetry about how our application is working so that we can again give feedback also to the teams. And you see that in there, feedback goes everywhere. It not only goes to the teams, to the product level, it also goes to the portfolio level, to the board, because they had an idea, an idea has hypothesis, and now they can evaluate if this hypothesis is true or false, if they want to invest more money into this idea, or if they want to stop investing money in this idea and build something else. And what you see here is exactly a digital factory. And this is what most companies want to have. Talking about this platform engineering, I think here we need to dive a little bit deeper so that you get a better understanding, because the platform engineering is the foundation of the digital factory. So in the end, what you want to have is you want to have product teams which take care about a product. They build it and they run it. So the whole operation is within them. In the middle you have the platform team. But bear with me, this is not a silo organization which you have, and you again have walls of confusion. No, they are building a product which the product development team can use. And the point lies on can. They don't need to use it, they can use it. They need to love that product. Let me give you another picture about that. You see, the platform team builds the platform and the platform can be different things. It can include API gateways, CI CD pipelines, repositories, synthetic test data, kubernetes cluster, and so on and so on. So really the platform where the products of the product teams can be built upon that. So the platform teams, they develop, build and maintain the whole platform. So they are generating value for the product teams. The product teams, they generate value for the customer. So the platform team, they are enabling the teams to do DevOps, because the platform teams will build and run and maintain their products using that platform. And here again, it's very important, they need to love the platform. So the platform itself is a product and you should never force the teams to use this platform. They need to want to use your platform. That's the approach you want to follow. But platform engineering is not the only thing you need to do. You really need to look at the digital factory from a holistic point of view. Because when you want to deliver complex products. This always requires a holistic approach. And it's not only about that platform engineering which you have in the DevOps part, where you have the platform, the CI CD pipelines, the platform engineering, also all of the practices. You also need to have the right architecture to ensure the scalability of what you are building. You need to have the quality standards and also the APIs. But not only that, you also need to have the data because you want to make something out of the data. You want to have effective data pipelines, you want to use the data. So in order that you can make the right decisions. And this leads us to customer experience only with the right data you can have a great customer experience. Because customer experience is all about gathering feedback from the market, from your clients, and ensuring that you have a great end to end customer experience and to continuously deliver. You need to have an agile program delivery where you have the different teams and how they are working with each other, backlog management and all of that. And on top of that, you need to have the product management where you connect the strategy with the execution. So all of that is needed to build a digital factory. As you can see, the platform engineering which this conference is all about, is about building that foundation of a digital factory which enables their teams to do DevOps. And as you can see, this is how we are entering the age of industrialization in software development. Thank you very much.
...

Romano Roth

Chief of DevOps and Partner @ Zuhlke Group

Romano Roth's LinkedIn account Romano Roth's twitter account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways