For me, deciding when you should automate is all about knowing, having the feeling. Because as you do some action, it will frequently not be only about time. It can also be something that can give you some insights about whether you have your action. If you do it again and again and again, then what you can do is if you can do this automatically, like the example with replacing the phases, then you will know it. Because you know you'll get impact. And I think it's all about that. So it's about impact. And you can also consider the time a little bit, but it is not the highest factor. So if you consider how you work with something and that, then you can know when it is the right time for automations.
Right. When you see you're doing something over and over and over again, manually, maybe you need to consider automating, the task. But you need to also consider what kind of code it is, because if you are doing not exactly the same thing, so it is something that's hard to write by script, then that would be the case when you will not be able to automate. But if you have something where you can actually do at least one part, then it is worth considering it, especially if you take into consideration the impact. Absolutely.
What made you interested in this topic of automation? Do you have responsibilities at work that involve automation? Well yeah, we had a lot of projects and we had an idea. We had the job inside the team when we were working out because we had to do a lot of changes and we saw that it was something that would take us a lot of time because imagine for example that you have to update, back then it was 30 projects and our estimation was that we needed to manually apply the changes gone and that we needed at least 30 minutes per project. So we saw that would take us too much time because basically you could spend a whole week only updating the projects and not doing anything else. So we started to think what if we could actually create some sort of CI environment or Jenkins environment where in the project we could define what kind of changes are necessary for all those projects and then when we take that, let's say define migration job, we execute it on all projects or the defined set of projects, then we get the result and the teams get the pull request. Of course we have to be involved with some way, but we can actually do is we can build the code. And that is actually easier because yes, we can have the teams also do the changes manually but the problem in that case is they will actually have no knowledge about why we need that, why we need this part, why we need that part, why we need that. And we know that. And if we apply the changes by the script, we will be sure that it is exactly what we need and we will also narrow down the margin of errors. So we have the teams by providing the changes efficiently and we also have avoiding the margin for errors. So again we were thinking about the impact and what we can get with all of that. I think you mentioned something very important and it's that automation usually is self-documenting. So when you see an automation pipeline, you can by default understand the rationality behind it. If it's perhaps documented or there is a reference to documentation of course, but in general that's a very good point. Well yeah, I would like to add one more thing, so when you are a developer, let's say learning React and you know you learn the basic React, what is usually natural with developers is you actually start exploring more, exploring the details, actually see how everything is working, so you try one thing, you try the other thing, and then you see what happens. And the same thing with automation, when you do them you actually also learn how some code is working and what actually the necessary changes are, because when we have let's say gsgo ship or codemodes, we then explore abstract secret tree, which is how we can read the code, as these are how computer can read the code, because we made it understandable for us, and we also made it understandable for the computer, because we actually defined the necessary actions you know. Absolutely, absolutely, and I think the gain from automation is measurable as well, so it definitely helps you see what is the actual performance of a team, right, instead of having the team again being busy with with tasks that really bring no value at all.
Comments