In today's hectic world, it's valuable to look at your daily routine and see what can be automated. As our days get filled with tasks in the blink of an eye, it can be hard to take time off for automation. Besides that, I've heard the term hackathon quite a lot over the past few years and thought it might serve as a good technique for automating our routines. With this post, I'd like to share the recent experience I had doing exactly that: using a hackathon to automate a routine.
1. Pick a routine: placing tags with Google Tag Manager
First, you pick a routine you want to automate. When picking a routine, it's important to take these four things into account:
- How often does the task occur?
- What value does the task add to the business?
- How easy is it to automate the task?
- Is it a fun task?
For our hackathon, we were looking into Google Tag Manager. As our agency's services are not limited to Google products, we have a varied collection of tags we place for any given client. We also answered the four questions:
- How often does the task occur? Daily
- What value does the task add to the business? A tag automates the data flow (conversion tracking/remarketing data collection) to advertising systems, reducing manual ad optimisation time.
- How easy is it to automate the task? Fairly easy, as GTM has an API that can execute the required action.
- Is it a fun task? No. But automating the task is!
Seems like a good fit for automation.
2. Plan the hackathon
With the topic decided, I set a date for the hackathon and made sure we had an external venue to minimise disturbances. I also made sure to share our plans with the organisation.
Next week, on Thursday and Friday, the data technology team will be out of the office for a two-day hackathon. If you need anything for those specific two days, let me know.
As I didn't receive any requests, we could use all of our resources for the hackathon.
3. The hackathon
On the first day of our two-day hackathon, I started with a general introduction for my team. My first message was 'No e-mail, no slack, no phone'. During the hackathon would have full focus on the automation project. After that, I listed a brief overview of our team's wins and our agency's wins when we would automate tag management:
- Our wins:
- Spend less time placing tags.
- Promote standards. Humans can interpret what you mean, even though it's incorrect. Computers not so much. Having tags placed automatically if you stick to standards is a win for both speed and consitency.
- Create awesome stuff. As mentioned before, tag management is not always great fun, but automating tag managent is.
- Agency winds:
- Have tags live more quickly.
- Reduce human communication time.
After the introduction, it was time to start the hackathon
The hackathon framework
To be honest, all I did to set up a framework for the hackathon is read about 3 articles on hackathons. I combined the information into a framework I call DBAC:
- Define: define what we mean with 'GTM automation' and what the Minimal Viable Product (MVP) is.
- Backlog: write down the tasks we need to complete in order to make the Hackathon a success.
- Assign: assign the tasks of the backlog to people.
- Create: start building.
After the intro, we spent the first two hours of our two-day hackathon on Define, Backlog and Assign. We decided that to make our hackathon a success we'd need four things:
- Proof of concept: validate that we can place a tag through the API.
- The automated pixel placement application.
- Google Sheet where non-technical people can brief their tags.
The rest of the two-day hackathon we spent creating these 4 things.
The team celebrating our first successful test of the MVP.
4. Celebrate the MVP
In the end, we did create an MVP. In the GIF below you see a demo of our MVP:
We can run a Python script that will start placing tags based on a Google Sheet (you can see column 2. Status change for every tag it places). We also show you how the API creates a new workspace for automated tag placement. Besides that, you see all the automatically added tags, we give an example of a tag that doesn't require a blocking rule, and an example of a tag that does require a blocking rule (e.g. when you need a consent for remarketing tags). Pretty neat right?
5. Applying the MVP to real-world clients
The hardest part is yet to come: applying our MVP to actual clients. We've started with a selection of 3 of our GTM clients. Our goal for this small set of clients is to validate the product in a real-world environment, fix any issues that may come up and test the scalability of the product.
To make it easy to set up new clients, we've moved the project to AWS. We currently run the following system:
In short, we activate the project with CloudWatch every night at 03:00. This triggers a Lambda Function that reads the config sheet. This lists all the clients that we have activated automated tag placementplace for. It will trigger a new Lambda Function that reads data from the tag documents of each client. After that, we trigger the Lambda Function that places the tag. As you can see, we fire the Lamba Function for each client and tag separately. A great benefit of this setup is that an issue with a single client tag document or tag only affects that individual client or tag.
Just great fun
In the end, having a full two days to automate a routine of your team is just awesome. Working together, in a semi-structured manner, to build ourselves a product that makes our lives easier is great for team building. We liked it very much and are currently considering making it a recurring event.