Open-source Stack for RPA with Antti Karjalainen

Published on:
Open-source Stack for RPA with Antti Karjalainen

About This Episode:

Did you know that RPA is the fastest-growing area of Robot Framework adoption? In this episode, Antti Karjalainen, Founder and CEO of Robocorp, explains why and how to create an open-source stack for RPA. Discover how to simplify and streamline the RPA development process, and how it can enable anyone to share and distribute robots seamlessly. Listen up and find out how to focus on automating instead of configuring.

Exclusive Sponsor

The Test Guild Automation Podcast is sponsored by the fantastic folks at Sauce Labs. Try it for free today!

About Antti Karjalainen

Antti Karjalainen Testguild

CEO and Founder of Robocorp, Robot Framework Foundation board member, software engineer, open-source enthusiast

Connect with Antti Karjalainen

Full Transcript Antti Karjalainen

INTRO: [00:00:02] Welcome to the Test Guild Automation podcast, where we all get together to learn more about automation and software testing with your host Joe Colantonio.

Joe Colantonio: [00:00:16] Hey, it's Joe, and welcome to another episode of the Test Guild Automation podcast. Today, we'll be talking with Antti all about Opensource Stack for RPA and RPA in general, it's a really hot topic that I think anyone in automation needs to know more about. Antti is the CEO and founder of Robocorp, which seems to be a rapidly growing company, will probably dive into that as well. He's a Robot Framework Foundation board member, a software engineer, and an open-source enthusiast. I think you need to listen to this episode because I think RPA as I've mentioned before, is a growing trend and I think the skills we have as automation engineers are only going to help in this area as well. So open up your skills to make you more employable in the future. So you don't wanna miss this episode. Check it out.

Joe Colantonio: [00:00:59] The Test Guild Automation podcast is sponsored by the fantastic folks at SauceLabs. Their cloud-based test platform helps ensure your favorite mobile apps and websites work flawlessly in every browser, operating system, and device. Get a free trial, visit Test Guild.com/SauceLabs and click on the Exclusive Sponsor section to try it for free for 14 days. Check it out.

Joe Colantonio: [00:01:26] Hey Antti, welcome to the Guild!

Antti Karjalainen: [00:01:30] Hey Joe, thanks for having me.

Joe Colantonio: [00:01:31] Awesome! Before we get into this, is there anything I missed in your bio that you want the Guild to know more about?

Antti Karjalainen: [00:01:35] I think you nailed it. I started out as a software engineer myself. I wanted to do something more entrepreneurial, got into consulting at some point. And then, you know, that took me into a project called Robot Framework where I've been heavily involved there and through twists and turns ended up founding this company called Robocorp a few years back. So, you know, that's kind of the background in brief.

Joe Colantonio: [00:01:58] Very cool. So most people, when they think of Robot Framework, from my audience think about test automation. So how did you get involved in RPA then, if that was like the kind of system you were dealing with earlier?

Antti Karjalainen: [00:02:08] Yeah, good background question. So, you know, I saw RPA starting to pick up speed in 2016 already. So it's early days for RPA. It's just happened to bump into it at an event. And then, you know, what I saw there was I instantly recognized that RPA was on the technical level, really similar to test automation. So in RPA, you try to automate an application to perform business tasks and in test automation, well, you automate apps to validate them. So the things that these automated systems do at the end of the day for applications are really similar. The goal is a bit different, you know, where it lives inside of an organization might be different. How you control or manage or monitor and orchestrate that is a bit different. But really the fundamental thing about what you want to achieve is it looks the same for an engineer. So I got really, really curious when I saw RPA for the first time and started exploring. I basically called up everyone I could find who was doing RPA at that time and tried to interview them and wanted to know more and so that got me started. You know, background in Robot Framework was the perfect starting point to explore RPA. And what I couldn't find in RPA was there wasn't any open-source in there. So somebody coming from an open-source software development background, it just felt wrong to me in a way that, you know, open-source being the biggest enabler of software productivity over the last 30, 40 decades. So why don't we have these that in this, you know, growing and is vastly expanding space called RPA? So that was my background. 

Joe Colantonio: [00:03:43] Absolutely. I'm just curious since you mentioned that, I know being a beginner to RPA, the first tools I hear about are vendor-based tools like UI path and tools like that. So do you think it's just natural that like in test automation, when I started 20, 25 years ago it was all vendors and then came Selenium. So is this just the natural progression that you see, it started off with vendors and now it's going to just start the open-source type of revolution?

Antti Karjalainen: [00:04:06] Yeah, absolutely. I mean, if you asked the CEO of an open-source RPA company, that's the answer that you're going to hear. Obviously, my thesis was that it's going to be the same. So we are at the beginning of this new field of automation RPA. You know, we kind of see the first come in the vendors making it acceptable, making something that people want to do. Then we're going to see a wave of disruption by open source technologies like Robocorp that really unleash the potential of developers everywhere onto this field. And that was exactly my thinking when I first saw RPA, is that, “Hey, this is an opportunity to do all over again what we saw in test automation to RPA but I think this time the rate of iteration is going to be faster.” With test automation took a few decades, you know, and now it's going to be like, you know, five years.

Joe Colantonio: [00:04:56] I guess another parallel I've seen is when I start off test automation it's all vendor-based, you know, it's just drag and drop and record and playback. And you don't need a developer. You can just have a business use to do it. And it's kind of the same vibe I'm getting off RPA as well. Is that what you see as well? You seem to be geared once again, like what they did with open source, geared more towards developers. Is that the differentiation that you've been doing as well?

Antti Karjalainen: [00:05:20] Yeah, yeah, exactly. So when I first saw RPA, I started exploring the technology and kind of took the claims at face value, as you know, look for the vendors were saying, “Hey, this is a drag and drop tool. It's so easy and simple that your accountant is able to automate away the tasks.” And, you know, I thought that you know, man, these guys have really figured out something that we can have, you know, come up with on the open-source space in test automation like, have they finally cracked the, you know, the challenge of making non-technical folks being able to automate? And I started digging in and started meeting people who were doing RPAs. Like, I never actually find an instance where a sort of non-technical person would have successfully automated anything with these, you know, vendor base RPA tools. So it kind of struck me at that time that, “Hey, this isn't any different than test automation at the end of the day.” You have this persona of, you know, an automation developer, an RPA developer, test automation developer that you know, the automation engineer, if you want to call it that, that comes in a solstice, you know, automation tasks. And they are really, really similar to test automation at the end of the day, you know, RPA might have longer running tasks, but the thing that you build as an automation engineer there is really the same.

Joe Colantonio: [00:06:35] So I guess we should just maybe explain a little bit, what you explain, how you would explain what is RPA, because, how is it different from test automation? Is test automation just validating something or RPA is just driving something to get a particular outcome from a business perspective? Like how do you explain what is RPA?

Antti Karjalainen: [00:06:51] Yeah, so let's start with RPA basics. So we have a lot of different types of automation in business processes, you know, there's workflow automation like tools just like Zapier, etc. They are not RPA. RPA is about, the way I see it is, it's about the robotic process automation. So the robot is the key here. Robot meaning an agent, essentially we talk in short we call them bots. So bot, the bot is the key thing. So it's about building these automations that can act as a human user would on any IT system out there to perform tasks on that particular system. So think about something like, you know, typically you start with tasks in RPA that were previously done by human employee, something like entering orders into an ERP system. They come through an email, you know, you pick it up, you maybe read a document, then get the data off of that document and then enter that into an ERP system so you could build a bot that can, like, log into that ERP system with their old credentials and start using the UI to punch in that data. You know, you might do something like month-end reporting that you used to have people having to go into the financial systems of like, you know, accounting systems and extract report after report and consolidate them and validate and sent them to their auditors, et cetera and now you have bots to do that. So the key differentiator in RPA is the ability to run automation with your user's credentials on a specific environment at a specific time based on a specific trigger, and you might oftentimes have like internal business applications that require you to be running inside of a company's network to be able to access that. If you kind of compare it to test automation, then you're working with live systems so you don't have your testing environment. You can't do like, you know, you know, various setup and tear down stages. You need to actually be able to work on live systems. And if something goes wrong, you don't just fail. So that's kind of the easy part of test automation. So you try to make it fail, but in RPA, try your best not to fail on anything and you build in a lot of error handling in these steps. So that makes it really different from the current development perspective. Then the orchestration systems themselves, look a bit different. So in RPA, you have a concept of the orchestrator. We call it the control room and that's essentially, you know, really job-specific Jenkins if you wish, or CI server. That's a system that can run those bots then inside in production, deploy them where they need to run, monitor them, maintain and collect their reporting and analytics. So that's kind of in a nutshell what the differences are.

Joe Colantonio: [00:09:34] So you brought up a good point about reliability being critical because you are probably running business-critical operations. You could be creating a policy for insurance and production or whatever. So it has to be reliable. So I know with test automation, there are certain factors that can create a script not to be reliable the way it's written, but timing them isn't done correctly. So what are some of the issues you find that make RPA processes flaky or unreliable?

Antti Karjalainen: [00:10:02] Yeah, yeah. They have the same kind of reasons that you see in test automation. So, you know, tried to do record and playback, it doesn't really work out. Some of the vendors are really like making wild claims about that record and playback capabilities. But it's all the same story again, that we've seen before. So what you need to be able to do in RPA to make it reliable is to build it on essentially like event-based on doing like subject gradings based on these kinds of things. Just, you know, the basic principles that you see there and you know, with Robocorp, how we approach it, we have a concept of the best path automation. So we use Robot Framework as the underlying technology because that allows you to access the application in question on multiple levels. You can obviously interact with the visual layer itself, like do image-based automation, just like, you know, matching screen regions. That's really the most fragile way to do it. Then you can do go into locators is like UI elements, etc., you can go into APIs, you can go all the way to the data layer itself in the database access so you can mix and match these different modalities of accessing the application and always find the best path for that particular automation. The same way as you would approach, let's say, you know, test automation where you want to modify the application through the UI and then validate it against the database. The same here applies but in a kind of a different way where you might do one action on a UI, but if you have a more robust way to perform that through the database, go ahead and do that. So that's really an antidote to the grittiness and the flakiness.

Joe Colantonio: [00:11:39] How do you know the robot you created is doing what it's supposed to do? I guess with testing, you always have a test that you have to say, to validate, to verify, did this work? Do you always have a check with a robot that does that after it does a process or is it just a manual interaction where a human goes in and verifies it?

Antti Karjalainen: [00:11:55] Yeah, good question. So actually, you can oftentimes build these bots in a way, well in RPA, we talk about two different kinds of bots. So you have attended bots that run on your user's desktop and do stuff there and then you have unattended bots which run in the back office and completely autonomously perform tasks. So with the unattended stuff, you would typically also want to validate your actions after the fact, make sure that they are done the correct way. Not everyone will do that. So that's a good point to maybe raise while you are performing RPA tests that, you know, if you complete a business transaction, make sure that's actually completed. But in the attended automation case where you have that, you know, the human user watching the bot do its thing, that you typically just leave the final commit stage out and let the human confirm that action that the bot has done.

Joe Colantonio: [00:12:47] Cool. So I guess we talked a lot about RPA and what it's doing in production. A lot of things I hear about RPA as well as business users who create RPA and I know your company takes more of an angle that you think developers should be, I think your company takes the approach that developers should be more involved. I guess my question is who should be doing RPA, is it both, as a combination of both, is it always the developers or the tester? Who have you seen companies succeed with RPA, what approach do they use?

Antti Karjalainen: [00:13:14] Yeah. You know, Joe, we have some numbers that tell us that 11 out of 12 RPA projects fail to scale beyond simple POCs proof of concepts. But the projects that we see scaling to use dozens or even hundreds, in some cases thousands of bots in production, they've always organized their RPA function through something called in the industry as COE, Center of Excellence, you know, a fancy way of saying an RPA team. We have these RPA developers, they're like, who do this day in, day out and build these bots and then they maintain them and they might have RPA business analyst roles who collect the requirements from the business users on these tasks, identify opportunities, etc.. Again, something of an RPA jargon term would be PDD, so Process Definition Document. This is a document that you, essentially a spec that tells you what the bot should do, what the process in question iso your analyst might collect the PDD, then you or your CEO, you develop and implement that bot and then run and maintain that. Then you have a concept called the citizen developer. I actually feel a bit funny talking to test engineers about RPA because I'm explaining this, that these all these terms that are kind of RPA specific, although they might be familiar in different contexts, but the citizen developer is now somebody who is sort of less technical persona building out automation. This is really a persona where that's your target with this low code drag and drop type of tools. And the theory is that a citizen developer with the support of the COE could produce automation. That model is still, you know, need to show results to be really able to say if a CDE citizen developer-led efforts to actually kind of produce value, we take the approach that we really focus on the automation developers. You know, companies like Microsoft entering the game with Microsoft Power automate desktop, they really target the citizen developer with their tooling. So they want to enable them to build sort of desktop automation. But yeah, my personal take on a strong COE is like, you know, management support and alignment, clear mandate to automate and create concrete results of savings and efficiency gains. That's the way to do it. 

Joe Colantonio: [00:15:33] You read my mind. And my next question was going to be about the kind of Microsoft Power automate, how they're positioning the tool. This is I think this came out fairly recently as a low code solution. And this is a trend we've been seeing in test automation as well, low code. So I guess the reason I bring it up, what skills do you think someone needs to have in order to be an RPA developer or if they want to go into RPA, what do you think is a good skill set to have for that?

Antti Karjalainen: [00:15:56] Yeah, yeah. You know, an RPA developer needs to be a really sort of jack of many trades in a way that you need to understand how IT systems work. You need to understand a bit about APIs, a bit about databases. Oftentimes you need to be this kind of forensic developer who would reverse engineer some applications that might be like ancient and really junky, you know, going into mainframe systems and automating them so far. So you need kind of like this broad skill set. You don't necessarily need to go super deep on any area, but you need to know a lot about, you know, a lot of things, you know, with working with something like Robot Framework, obviously Python is a good background skill, but you really need to be a master Python developer, you know, talking about low code, really. We started out with this you know, thesis around the automation engineer and automation developer and empowering them. But we come to realize that you know, shortage of people who have the skills to do some kind of service skill set. But there are a lot of people who want to get into this space. So upskilling into something like Robot Framework and Python. So we are actually right now building a low code toolset on top of Robot Framework, even though like two years ago somebody would have said that to me I wouldn't believe it. But we came to the realization that you know, even automation developers, they oftentimes want to work with something that's, you know, fast to make something actually, it can happen. So all this is around low code is that it can be a pathway to automation where you upskill into something like Robot Framework and Python. It can be a speed boost for the developer. And we want it to be something that allows you to move between low code and pro code, as we call it like you have no code, low code, pro code, and sort of funny definitions but we want it to be the automation studio that we are building, we want it to allow people to move between low code and pro code and back. So you are not tied into something that's proprietary, that's low code only. That's I think as you get oftentimes handcuffed when you build something with low code. It is appealing in the beginning, but you really don't have that sort of high ceiling to grow into. You get capped at some point with what you're able to build.

Joe Colantonio: [00:18:11] Absolutely. And I know you spoke at actually Robocoon this year and your session was on the open-source stack for RPA. I know you talked about RCC, is RCC the low code solution, or is it something else?

Antti Karjalainen: [00:18:21] No, RCC is a toolchain that really ties a lot of that whole business act together. So the way we want it to be in the open-source stack for automation, how we want it to be is essentially something similar to when you start developing a web app, you don't start with a blank HTML page and JavaScript. You start with a framework like Ruby on Rails, for instance, so you can focus on the actual automation task at hand. So we want the automation stack that we built to be the same kind of thing for RPA developers. So you focus only on building that bot and you have all the scaffolding, all the ways to deploy and package it around you. So RCC is a project that does a lot of that heavy lifting of managing your environment, managing your packages the optimal way, being able to deploy bots wherever they need to run and bring that whole thing together. So that's RCCs used by all of our developer tools. So our VS code extension uses that, Jupyter Lab extension uses that, etcetera. Even the bot runtime environments that we have for deploying these bots through our control room all use RCC under the hood. And I think it's a great solution that is obviously open-source. I'm talking about open-source tooling here. So I think RCC is really the unsung hero of all the things that we believe that more people should get into and try it out because it will solve many headaches of just how you deploy a Python-based automation routine running in a fresh new environment.

Joe Colantonio: [00:19:51] I'm just trying to relate it to test automation, it sounds almost like MAVEN like when I used to use some tools like Serenity with MAVEN. I've used MAVEN, I can use some commands to create a test project, and within that test project which contains all the dependencies, I needed to run a simple project, all the types of things. Is RCC similar to that? 

Antti Karjalainen: [00:20:07] Yeah, you can think about it like that. The name used to be Robocorp CLI or something, but we just named it to RCC because it was doing some things, it is based on actually Go, we've written it with Go as a single binary that you can just drop in and put in place. And when you want to create a new project, run an existing project, you'll just handle the rest. You don't need to even have Python or any tooling other than RCC in place. You just drop that one binary and then let it do its thing.

Joe Colantonio: [00:20:35] Nice. So if someone's listening to us like, “Well, I've never heard of RPA, this sounds like something I should get into.” It sounds like RCC, maybe the first step that they could use to get their system up and running to start experimenting. Is this more for a developer once they're kind of more familiar RPA?

Antti Karjalainen: [00:20:48] You know, both will work. You know, you can go to GitHub.com/robocorp/RCC and just download that and try it out, you know, RCC init. You create a new project that comes with Robot framework files and config files and everything in place and then RCC also allows you to run that. But if you want to get something kind of easier in place, if you're working the VS code, go to the marketplace and search for Robocop, you're going to be able to find their Robocorp VS code extension that comes with RCC. So that'll allow you to create that new RPA project, run then debug it as well while you're there. Also download the robot framework language server support that, that's going to help with the syntax file adding and all of that. Well, then, yeah, those are really the easiest ways to get started if you're there.

Joe Colantonio: [00:21:34] Nice. So we touch on a lot of, kind of like what a buzzword, test automation. We talked about low code and business users using it for automation, not needing developers, all that type of thing. Same thing we see in test automation. Another term I've been hearing more about is AI and now, how AI, you don't need a developer now because back in the day you did. But it was all snake oil where you actually did need a developer but now they're saying AI is really going to fulfill the promise of a record and playback and that type of thing. So do you see AI being a player in RPA or is AI already embedded in RPA? Is it because it's a newer type of approach? What are your thoughts on AI with RPA?

Antti Karjalainen: [00:22:12] Yeah, I mean, when I got into RPA, they were making these claims about, you know, you have this AI watching your, you know, users do their thing and it's going to learn and all that stuff. I've never seen that actually happening I'm working out. AI can be a part of it, can be part of the solution. Oftentimes what you have is something called intelligent automation. And that's really a, people will throw around this x PA. So something process automation, there is RPA, IPA something DPA. So intelligent process automation means that you kind of infuse your process, your bot with some intelligence, meaning that you have a decision point where you might, might use a machine learning model to infer something, might use NR Beam, might use OCR to categorize IPA already. So that's one place where RPA kind of overlaps with some sort of AI-related stuff. RPA tools themselves typically don't contain AI components or not very sophisticated ones that I've been able to find. You know, as a company, we have an AI project ongoing. What we try to do there is try to come up with the deep learning-based model that can look at an old user interface, you know, something like Oracle E-Business Suite or SFB GUI, and look at the interface and be able to say that, “Okay, this is a button, that's a text field, that's a radio button, and these are the labels for those.” So they essentially testing a model to look at a UI and be able to find the right buttons that we want to press for the right fields that we're going to interact with. That's an area where AI can actually be infused into RPA. But oftentimes, as it is with deepAI, it is not something that will be for really like a novice user. So I don't need to know anything about anything, I just let the AI do its thing that's really not the case in RPA. The way we are using AI in this instance is really using it as one type of locator you know, instead of XPath, you use AI to locate a button that you need to interact with or compose a chief model of the UI. So I mean, I'm not saying that AI isn't there, that we don't have any solutions that have fancy AI, oftentimes it's not actually, the RPA tools themselves, they are very deterministic. You might have AI in places like process mining tools and test mining tools. So these are actually things that come before RPA. So these are tools that are put in place to monitor human users, infer, use patterns and then build a model out of that. And you can use that model to determine like, what are my opportunities for automation and what are people spending their time on? So they might have models that, that do that inference.

Joe Colantonio: [00:24:58] Awesome. Okay Antti, before you go, is there one piece of actionable advice you can give to someone to help them with their RPA solutions or efforts? And what's the best way to find or contact you or learn more about RoboCorp? 

Antti Karjalainen: [00:25:09] Well, I will start from RoboCorp.com/stacks, in particular, there are two certification courses, so level one for beginners, level two for more advanced RPA developers. And those are free, free for everyone. So if you're interested in RPA, go check them out and, you know, take the course. You're going to get a certificate that you're going to be able to post on LinkedIn on your profile. And that's a great place to get started with open-source RPA tooling for free. And, you know, really good stuff for your path in your journey in RPA. 

Joe Colantonio: [00:25:40] Awesome. Do you have it like an actual piece of advice someone can use actually, after they delve into or if they're dealing with RPA, of how they can maybe put into place right away to maybe help with their efforts?

Antti Karjalainen: [00:25:49] Yeah. So RPA has so many different application areas that it's hard to nail down anyone. What I tell you is what you don't want to do with RPA like oftentimes I see people wanting to apply it to this like tiny, tiny fragments of tasks like I need to fetch this thing from my email inbox and it's annoying. But that's typically not where you will get, you know, a lot of benefit out of RPA. Look at where, if you're working on an organization like, where are people spending that time on, you know, go and ask around. You might, you know, make friends with your financial controllers. You might find that they are actually spending their time and really, you know, grinding routine tasks that you don't even realize that exists. So that's usually the biggest opportunity for RPA instead of looking at your own desktop.

Joe Colantonio: [00:26:37] Thanks again for your automation awesomeness. If you missed something of value we covered in this episode, head on over to TestGuild.com/a52, and while there, make sure to click on the Try for Free Today link under the Exclusive Sponsor section to learn about SauceLabs' awesome products and services. And if the show has helped you in any way, why not read it and review it on iTunes? Reviews really help in the rankings of the show and I read each and every one of them. So that's it for this episode of the Test Guild Automation podcast. I'm Joe, my mission is to help you succeed by creating end-to-end, full-stack automation awesomeness As always, test everything and keep the good. Cheers!

Outro: [00:27:18] Just thanks for listening to the Test Guild Automation podcast. Head on over to TestGuild.com for full show notes, amazing blog articles, and online testing conferences. Don't forget to subscribe to the Guild to continue your testing journey.

Rate and Review TestGuild

Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page. Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.

Open-source Stack for RPA with Antti Karjalainen