 No one understands the importance of data more than the people who have to collect it and clean it and reference it when they build software Despite that many of us in that camp are flying blind when we make decisions Or we're basing those decisions on a very very limited data set that is easily available Particularly when we need to make decisions quickly Now the finance or marketing or product teams for instance might be very very data-driven But development might base really substantial decisions about how they work and what they prioritize on gut instinct That is potentially dangerous and wasteful and even when you get it right if the decision is actually correct It's very very hard to justify which could result in not taking the correct path Even when you guessed it right in our next talk Ralph Huck from Ligilica We'll talk about using the information in the GitLab platform to build a BI like experience to allow us all to become data-driven Developers, let's listen Hello, everyone. Welcome to GitLab commit and thanks for tuning in to our presentation today about building engineering Intelligence for software delivery teams Now in this presentation, I'm gonna go through what actually is engineering intelligence Why you might want this and then also how you can build it yourself? So a little bit first about us. So my name is Ralph Huck I'm the founder and CEO of Ligilica and we are data analytics company That really has got the mission to make software management pipeline management and software delivery Much more transparent Deficient and also much more fun for teams to use. So let me talk about what I mean by this So firstly, I mean you guys probably all know this really the world runs on software and not only on software but on software development and Software development obviously this part and is the people behind it. So Right now what why people estimate there's around 23 million software developers many more that kind of do is on a hobby level commit code and even in 2020 When you think it might have been a bit of a downturn There's an estimation around 111 billion lines of code Have been submitted and over a billion commits have been made to come in with code repositories So really it's underpinning large parts of the economy and large parts of our daily lives And a lot of this has changed. Let's say in the last year as you might all know People starting to work much more remotely working from home working Asynchronously and in fact, we think that's the new normal. So there's estimations around there that around 60% of all the Developers in the future will at least partially work from home So and that means we also gonna work quite differently instead of being together all the time in an office having interactions and Maybe learning what other people are doing more directly. It's gonna be a bunch more asynchronous and remote setting Obviously companies like GitLab that are already fully remote might have much lesser problem about this and then let's say More traditional companies that are now just pleading around. How do they make this all work? And this is really one of the big questions these days. How do you make this all work and There's a quite a number of key challenges in a setting That's more remote compared to a setting where everyone is in the same room And I think anyone who has been sort of working remotely in the last year can probably attest to it one of the key challenges is really to staying in sync with the rest of your team members and In fact, you're probably not staying in sync, but you're staying asynchronous with your team members So but then still the question is how do you keep on top of all the things that are going on? How do you keep in the overview and how do you can still deliver and develop fast? So it's quite different from let's say being in the same room and even though you don't have maybe this One-on-one communication all the time is still here. What's going on? You have a chat with your Colleagues and teammates and it's really much easier to have this team feeling and moving fast So the question is what changed once we all move remote well, first of all people start to work more and According to studies, they only not only work more, but they only deliver the same as they did before So in a way productivity really has been going down You spend maybe less time on commuting from your home to your office But you spend more time in front of your screen and you spend more time on chasing up to spend more times And logging into different tools and for sure everyone spends more time on video conferencing And then you have maybe these one-on-ones which take up a lot of time Now the question is what are some of these? solutions to this problem and It's one of the solution people have been using is throwing more tools at the problem and to a degree This is quite good. Let's say automation built automation test automation your cloud tools, you know, it makes life much easier and Probably you can work remotely these days the way you wouldn't be able even let's say 10 for sure Longer or maybe even five years ago But I mean with these tools. There are also challenges that are coming Firstly, you might have a zoo from two of tools each of those tools. You need to maintain you need to set up You need to patch There's a challenge of training people to use tools correctly then you probably have a layer on top about processes about what to use and best practices and what not to use and You know at some point they're diminishing returns. This means the more tools you introduce You don't get necessarily much more productivity because you get lost in all the data You've got sort of a data silo maybe and the planning then you have got coding information You've got your testing tools your build servers your infrastructure and so on And it's very difficult to communicate Both in terms across tools but also in cross teams that are managing those on those tools and To that degree, I mean what githlab is doing is really great bringing all those tools together and putting them onto a platform So basically you have got a simplified technology platform instead of a zoo or zoo of tools You have got everything is in the githlab world and obviously that allows you to standardize To accelerate the onboarding of new people and also to lower your cost base so instead of being too diverse you kind of bring things together and Make it much more easier for people to onboard To maintain and to get familiar and use the processes in a way that are intended Now the solution for this Technology platform we believe is only part of it. The other part is how do you then move? Activities through the pipeline efficiently. So let's say you start off with your type of Development teams that want to have high velocity. They want to check out features as quickly as possible Obviously, they depend on infrastructure. That's repeatable dependable Your build doesn't break too often. You can push information to life and at the same time you have got Quality build-in and this can be coming from your testing tools. Yes s s sca tools and so on but ideally you want to optimize the whole delivery pipeline and Right now there's typically silos. You have got the development team You have got the build engineering team or part of the DevOps infrastructure and then you have the QA and the testing teams and security teams and if any of those steps break The whole delivery pipeline from beginning to end breaks And at the same time you want to be able to have the overview stay on top and say, okay I want to see where my bottlenecks I want to see, you know, where I need to kind of put more attention and maybe more resources to it You know, also want to see, you know, share that information with my teams so they can get a better feeling about what's going on And feel motivated to improve because we all know if we've got a feedback loop where we can see Hey, our build doesn't break that often anymore or hey, our team now can Have a cycle time for delivery. That's much lower than it used to be. It can be quite motivating And this motivation again brings sort of asynchronous teams together as well So the solution that's been coming up and It's quite new. It's probably in the last couple of years And there's still a the right term to be coined Is engineering intelligence And in a simple way engineering intelligence is a bit like what business intelligence did for sales marketing business operations Bringing all the data from different engineering sources together and being able to query that data Being able to visualize this and see, hey, how was it going and where do we want to be and how do we improve and track that And the reason why this really works these days Compared to let's say 20 years ago because we no longer doing in most cases water for development processes Where we have got long cycles very little data and if at the end things don't line up We're kind of a little bit stuffed But these days with with dev ops and dev sec ops, you know, we've got so many iterations We've got so many data and we've got so many chances to optimize this And just looking at git lab. We already have a treasure trove of data. So let's say we have got Planning data and then let's say story points issues apex We've got information about merge requests. We know who has been doing reviews how often reviews have been done We know how long it takes until somebody picks something up and we know along Could potentially take from your first commit through a merge request being opened The review process being done and been merged back into the main line We might get information from our CICD systems about build success rates about meantime between failures if a build breaks How long the build takes and then information around quality like assess desk test coverage tools and so on Just imagine now you have got all this data in one pool And you'd be able to query visualize analyze this and maybe get alerted when something doesn't work as intended In that way, you'd be able to make much more Transparent and much more data driven decisions That are actually helping the teams to you know accelerate and be more inclusive about what's going on And this is really what logillica does logillica does connect to existing DevOps and infrastructure tools brings all this information together Fuses this information makes correlation about dependencies and then visualizes is and makes it available for drill down down really back to the original data So it becomes a whole data management platform And for us, we always call this a little bit. It's the bi for software delivery teams It really makes things visible that otherwise not so easily visible and it makes them transparent within silos and across silos So for example, you can see productivity data about your teams and I mean not about individuals, but really how do teams perform? What's the cycle time? What's the process is does it work smoothly? Or do we need to have more resources that people get overloaded? Information around delivery bottlenecks does my build break every two hours? Do I need to fix it? Does it hold up the rest of the team? Information from our SAS test and compliance tool You know, what's our security posture and which you know part of our Product probably has got more security issues If it has do we actually drill down and reduce this or burn down? Do we get more and the last challenge is probably around compliance? You know when you say, okay, let's say we want to make sure we don't ship GPL licenses Those things like this and everything goes according to our Intended processes and we do actually could do code reviews and not only claim we do them So that then gives you much more confidence in delivery And it also helps you to predict delivery times and being able to predict when bottlenecks are coming up on when teams need to help So for the next couple of slides, I'd like to drill down into just one of those sections and that's about software team management and software team delivery And so some of the data that I already mentioned that comes out of this is everything around merge request And one of the most critical business metrics there Especially in the agile scrum world. It's around team velocity Now team velocity on its own as a matrix is not the holy grail But it's one indicator coupled with a number of other indicators that gives you a good leveling where you stand And whether you're kind of running best practices or not And I've got here some of the logistical data we extract around cycle time cycle time is basically what we measure the first time to commit Until you release it or you merge it back into the main branch And in between you have got different steps These steps is for obviously the time it takes for the development of that merge request to finish Then the pickup time how long does it take for a response for somebody picking up it for a review Running that review and then merging it back and having the integration after the approval process And it's commonly known very efficient agile teams kind of manage to do this within the sort of 24 hours timelines Obviously if you're a remote team across different time zones, you know, 48 hours is probably something more realistic Nonetheless, if it's you know, this one spins out to two three days or something like this It really signifies some bottlenecks around your delivery organization So you will see You know the longer it takes the more delays and the more context which is everyone else has to deal with So because their merge request is not fully approved and then somebody says hey, can you have another look? I just did the review. You probably should fix up this one Sure thing. You jump from one topic to the next topic. You got sidetracked. You fix up that one Spend another 20 minutes to get back into your current job and then move that across So similar metrics, for example, like number of work and progress items that signifies Context switches and all this information helps you to understand really how your Development team and the engineering room works So it's more than just story points. We say, okay, we managed to do three story points per developer per week or something like this This is all good and fine but if your processes and your sort of engineering practices are not fully set up these story points Really don't mean too much because you couldn't do so much better and get everyone a bit more engaged and happy if things are running smoothly Another aspect Weird little lichelica look at and I'd like to highlight. It's around, you know, the flow of processes So and I've got here a chart. We're on the left side You see the flow from Merge requests being opened being reviewed approved And then merge back into the main branch But as you can see sort of the second line from the top These are all the merge requests that have been opened and then immediately merged Back into the main branch. So they completely bypass the approval and the the review stage Obviously, that's not ideal Sometimes when teams are under pressure, this can happen more often than not But you don't generally don't want to have this and encourage that And as a team leader or as a team manager, it's often difficult to see. Yes, that data is in GitLab somewhere Um, but if you you really need to dig into each merge request, you know, put this into your excel sheet See what's going on So and we believe this kind of views and this front of automatic extraction from your existing data Gives you a much better way to drive your teams and make everyone come and come together Similarly on top of here, I've got a bit of what's wasted work. Basically, you're open Merge request and close it without ever Merging it back into the main branch and a little bit of that is natural So because you know, there's always things that you figure out. Ah, I didn't really do it the way I should have Or there's things that you know, you've come to the conclusion. I actually maybe I redo something or It's really just a test commit to see if things are working and then improve of concert and then revert that again But we have seen it in other cases where sort of this from open to Close um can take up a last chunk of the team's work And that typically means that specifications haven't been done correctly Team members haven't been trained on what they are supposed to do or what their expectation has been And there's a lot of information around these type of Interactions between team members as well that can become More apparent once you click into each of these sections drill down drill down further and get to that data And logillica is kind of extracting all that data making it drillable and making you getting these insights and really understanding what's going on to bring people together Um another one and that's the last one and this one. I'd like to show you Is around some team insights and really when we talk about team insights We mean how teams are working together whether they're sort of conflicts because of reviews being bounced around too much in circles or people not working together at all What we really don't look into and don't want to see is sort of this micro management of individual developers I think we believe that's sort of best left for get into the one-on-one interactions Um, but it doesn't also kind of it's not the key of the value here the value is about how do teams projects and products move along the pipeline and this is really what you want to optimize And one aspect I've got here is a 3d demonstration or 3d visualization of your code base So each of these buildings is a file Each of these platforms is a directory and you can see you've got directories and then you've got files sticking up And we have this here overlaid with color about those files that ever have been only touched by a single developer Now in general, this is not a huge problem But if you have got too much of this that probably means your team is not collaborating when everyone is sort of stuck in their own little corner And it's very hard then if somebody leaves or you re-collaborate or you reconfigure your teams to actually You know keep things moving and pick things up and In fact, it might be really a challenge if one of your key people who maybe has contributed a lot of code and have been done a lot of Commits as we can see in this sort of tall building And then he gets moved to a different project or something like this. And that's really how you kind of also occur technical depth So in the end what we have and what we like to have is bring all this developer information together And logiliga does this out of the box and you have got different views around productivity team health cycle times and so on You can hear these kind of stand-up boards as well where you see okay, how it's been going in the last week or the last two weeks And so for our enterprise users, they can also, you know, bring in their own data Configure all this configure the drill down and really make it like a power bi for development teams And we have made the experience that really helps in bringing down, you know cycle time including improving the productivity By large double digit percentage, let's say 30 40 percent depending on the team and when they are And not only that but once you see that data It's makes it also for team for the whole team if you work together much more As well for positive experience and working towards it Now you don't need to come to logiliga You probably can build this all yourself because gitlab already provides you with those apis The apis to access all the data you have got graph qql You have got some web apis and can you can really dig and or rest apis and you can really dig into this and build this out yourself Our experience is you probably don't want to Because it's a lot of time and a lot of effort to Build this and then even more to maintain this So if you want to learn more about this Just contact me later. We can point you to do it yourself guides Or just check out logiliga and then we display that for you for free Especially the top level metrics So before ending this presentation I just want to have a quickly an outlook about what we think the future is going to hold And really you have seen we have got now these big data pools And in our view what's the next step and actually what our team is already actively working on Is building smart advisors that not only tell you this is how it looks But these are the actions you take this is how you kind of compare to the rest of the world And these are maybe your anomalies in in your team in your organizations And something happened last week You shouldn't have a look at this and this can't be codified typically in hard and fast rules And it's much more important to have this sort of AI based smart Integrated and then also alert the right people at the right time So not everything about every mystery. Let's say deadline in terms of you know blocking Merge requests or every missing review needs to go to anyone in the management level or the team level It's it's fine enough if the you as a developer get notified say, okay, I'll fix it up You can be much more proactive about this and you can be much more I'm staying on top of it yourself And it's really not not an issue that should be raised or could be raised and in a sense will matter At the same time from an engineering leader point of view You want to see the trends you want to see the prediction You want to see whether you meet your timeline and this is really important and the more the teams can work autonomously The better it is for everyone and it makes it also easier to Cut down on all this unnecessary communication that you sometimes have in a remote world so in summary What's we see as the next thing the big thing is sort of the smart value streams that really empower development teams to work autonomously sort of guided through visualization tools notifications Then the connection across silos as I mentioned earlier Not only development team, but the DevOps team and the qa team And then this more ai powered assistance to You know cut down on the unnecessary labor that sometimes Comes with digging into tools. We want to avoid any type of micromanagement in short so Join us and git lab for Building modern delivery teams and actually remote work and working can be fun And if you want to check it out yourself Just click to logillica.com. You can sign up for free We give you the main metrics for free and you can see where you stand in that delivery process Thank you very much for joining us. Um, we just wish you all the best for the end of the git lab event