Robotic Process Automation (RPA) is simply ‘computing’ with a new name.
RPA is the use of software tools to partially or fully automate human activities that are manual, rules-based and repetitive (like a calculator). Some would argue that the integration of Artificial Intelligence (AI) makes RPA unique, and perhaps that justifies a new term – except what we are calling AI today, I was referring to as data mining in the 1990s.
Regardless, the phrase has gained traction, and so, I am compelled to help our clients understand it and begrudgingly use it in conversation. I prefer the term ‘microservices’, which is a more accurate description of what is essentially a small application development project, but the RPA community has come to call these little applications ‘bots’.
What is compelling, and why this service has traction, is that programming code has become so encapsulated that we can cost-efficiently garner functionality from a system without having to replatform an entire IT infrastructure. Organizations can now surgically deploy technology to address specific business challenges, often realizing an immediate return-on-investment. In some cases, a RPA project may involve the development of a custom piece of software, but in many cases, it simply involves tying together existing systems.
Key to the success of deploying RPA solutions, however, is understanding and embracing an Agile mindset. We elaborate by expounding on a few key concepts that govern our software development process.
The Agile Methodology
Agile is an iterative, time boxed approach to software development. Key to the Agile methodology, and why it is so successful, is continuous involvement and feedback, from the end user. It allows development to begin without a complete solution in mind. Rather, a Minimal Viable Product (MVP) is defined, and the development team receives regular and continuous feedback from the end users so they can redirect as quickly as possible, to ensure the final product completely addresses all the users’ requirements.
Rapid Application Development
Rapid Application Development (RAD), first invented by James Martin in 1991, is a form of Agile software development. RAD does not work for every project, but it is well suited to projects that can be broken up into smaller tasks, such as RPA projects. This has two advantages. First, it helps the formation of specialized teams that focus on specific tasks. Second, small wins build momentum that helps push through more complex tasks.
Lean Software Development
Lean development methodologies reduce waste and expedite delivery of RPA projects. We work with our clients to scrap unneeded features early in the development cycle. This is achieved by running short Sprints and keeping end users highly-engaged. The development team is continuously seeking feedback, demonstrating functionality as it becomes available and adjusting direction based on user feedback. Typically, the goal in this phase is to get a Minimal Viable Product (MVP) into production to test a hypothesis that justifies additional investments.
Our process begins with a Discovery phase, followed by a series of Sprints. At the beginning of each Sprint we work with your team to define a MVP, which may or may not be ready for production at the conclusion of the Sprint. After the Sprint planning is completed, our developed team begins the Development and Testing phases. The Sprint concludes with a Demonstration for the end user, and then the application is either put into production, or planning for the next Sprint begins.
This methodology allows our development team to bring the MVP into production quickly and cost-efficiently. In some cases we may deploy a bot to address a temporary need, in other cases they are permanent additions to the IT infrastructure. Regardless of the use case, the development process must be disciplined and controlled. Software engineering requires precision – more to come on that…