Once your automation program has "taken flight" (pun entirely intended) - it can at times be challenging to know what exactly needs to be done to accelerate to that next level of your automation program maturity.
In this special Hyperscaling The Automation Journey series of #AAillustrates, we're diving into the proficiencies of automation programs that grow and scale - with our second session in the series: 3 Growth Hacks to Accelerate Your Automation Program.
If you missed session one, be sure to check out 3 Pitfalls Keeping Your Automation Program from Growing. Whether you've just stood up your first CoE, or you've been doing this for a few years - these 3 growth hacks can be the jet fuel needed (more space puns) to accelerate your program's growth.
Growth Hack 1: Leverage Best Practices
The idiom "herding cats" describes the often futile attempts to control or organize a class of entities that are inherently uncontrollable. When a group of independent developers are all given the same automation platform without specific guidance on best practices - trying to get them all back together and focused on the same standards can be a real challenge. Its important that before your CoE starts to think about federating development (or even expanding on the development you've done already) - you very clearly establish best practices for the way that development, documentation, testing, change management, and delivery are handled. The idea is that with standards for each of these areas in place - designing and developing automations actually becomes easier - because bot frameworks, and documentation/testing templates mean that not everything has to be created from scratch for each build.
Actionable Takeaway:
- If you aren't using a bot framework/bot shell/bot template (all phrases really mean the same thing) - start using one NOW. We have a sample/simple bot framework on our GitHub that you can reference, or build your own from scratch. Be sure it includes the following:
- Error Handling
- Logging (with guidance on consistent log file paths)
- Log Management (because we don't need logs for 90+ days...in most cases)
- KPI guidance (because every bot should be generating some type of savings for reporting)
- Documentation can be a huge burden for delivering an automation - establish a standardized SDD/TDD template that developers can use so not EVERYTHING has to be created from scratch for each use case
- Centrally store your best practices so that everyone knows where these resources are and how to reference them
Final Point:
Best practices aren't just about being big brother and making everyone develop the same way - they're also about readability, and supportability of your automations. Assuming your automations have all been developed with the same standards in place, it shouldn't be a crippling burden for developers to make changes to/support automations that were originally developed by someone else
Growth Hack 2: Focus On Reusability
A commonly used acronym in development is DRY - Don't Repeat Yourself. If you're writing code that is the same thing in multiple places, there's likely an opportunity to optimize your solution by created reusable assets that can be used in multiple places. This has 3 key benefits:
- Accelerated Development: If I don't have to build everything from scratch and can leverage some already developed components, it makes my life much easier
- Simplified Maintenance: If an application login (for example) has some changes as a result of a new release - that means that any bot that performs that login, needs to be updated. If I'd created a reusable subtask to perform this login - easy, I can just make that update on that single subtask, and all my automations can easily be updated. If I'd done that login manually as a part of each developed automation - now I have to go make that change in 20+ places to be sure that each automation is updated appropriately.
- Junior/Citizen Developer Enablement: As you start to include Citizen Developers (or more junior developers) into your Automation Practice, available, reusable assets make it easier for them to accelerate their development. They don't have to know how every aspect of that reusable package/subtask works - they just need to know how to invoke it, and how to deal with its response.
Actionable Takeaway:
- Create some method of sharing reusable assets across developers in your organization.
- This could be a "libraries" folder within your Control Room that has available reusable assets
- This could be a sharepoint page that you host internally and ask everyone to document and share their reusable code
- As a CoE, consider creating reusable assets (scripts, packages, subtasks, etc) that can be used by any developers within your organization
- Think of applications that are heavily used internally - and how you could streamline the process of interfacing with them to help accelerate automation development times
Growth Hack 3: Democratize Automation
In our session on 3 Pitfalls Keeping Your Automation Program from Growing, we talked about how its important to evangelize the benefits of automation and the successes that your automation program is delivering. One of the key results of this program evangelism is getting people excited about the opportunities afforded to your organization (and their respective teams) by automation. Those excited people will no doubt come to your program at some point with the question "This is great, how can we get involved?". There are 3 key ways that you can think about to get the ball rolling on taking automation to the masses - and they come by way of the roles that people can play as they contribute to your organization's automation initiatives:
- Consumer: This describes an individual who interfaces with automations regularly to get their day to day work done. This could come by way of running automations on demand on their local workstation (attended automation), this could come by way of users leveraging embedded automation capabilities (Salesforce plugin, custom embedded solution offered in .26+) or through using AARI web to trigger automations/complete bot-created tasks.
- Contributor: This describes an individual who is able to identify opportunities that may be a good fit for automation and can bring them to the appropriate team with the level of detail needed to easily asses (and potentially build) an automation solution.
- Creator: This describes an individual who is empowered to be able to design and deliver automations for your organization. Obviously most of your dedicated automation developers would fall into this category, but this should also be extended at some point to include Citizen Developers. Citizen Developers are automation creators that come from a non-IT/CS background, who are able to deliver automations that benefit themselves, their teams, or their departments.
Actionable Takeaway:
- Be ready to explain to people the ways they can engage with your automation program - and don't hold the program too close to the chest. Provide ways for others to contribute as you continue to scale.
- It may start with people just playing the Contributor role to be "opportunity hunters" - but could/should evolve into consumer and creator opportunities
- Get people trained up! Automation Anywhere University has training specifically tailored for business analysts (contributors) and citizen developers (creators).
- This training can be a great way to get people up to speed on the capabilities of Automation 360, and can be a helpful heat check as they determine if working with automation is something they enjoy/are committed to.
Conclusion
You've started delivering value and are looking to continue that growth trajectory - great! Consider your maturity in each of these areas discussed - Are you doing well there? Just getting started? Hadn't considered it? Either way - we'll be continuing to publish additional content to help your automation program scale and flourish, so stay tuned - and Go be Great!