What is Lego Automation?
This is a highly interactive class, completely unique, doesn’t involve a laptop, uses Lego to model theory and is entirely focused on automation in the context of testing.
I’ve spent years teaching automation, designed and ran several technical workshops. All included writing code and using some specific frameworks. These are great for people interested in those frameworks and wanting to learn those programming languages. That’s what those classes do, they teach people how use a specific framework with a specific language using some pre-designed scenarios. There is nothing wrong with these courses, I still teach them myself, but what about a more holistic approach to automation? Where can we go to learn about this? Where does someone go to improve their automation skills beyond the code itself? Because believe me when I say, there is so much more to automation than code!
These are the reasons I designed Lego Automation. I wanted a class that focused on automation but didn’t involve laptops and code. For several reasons:
- It doesn’t alienate anyone; anyone can attend the class and no previous programming experience is required. I’ve had Testers, Developers, Managers, ScrumMasters and even a CTO attend the class.
- We can dive straight into active, experiential learning, no laptops to try and tame, no dev environments to configure. This allows us to make the most of our time.
- Reassure learners that they have far more automation skills than they may realise, a lot tend to just focus on the programming languages and tools they know.
- Introduce people to some terminology to allow them to talk about their automation, not just the code.
The class consists of 4-7 rounds, depending on the time allocated. Each round is designed to build upon the last, allowing us to build upon our knowledge gained from earlier rounds. We use Lego Duplo and the room to design the product we’ll be automating. I don’t want to share too much about the specifics, but you can explore #LegoAutomation on Twitter to get an insight into the class.
I do want to spend some time talking about my aims for the class, and what I hope attendees leave with.
The class is completely experiential, there is a loose structure in place (the rounds) to try and guide the learning, but importantly there are no right answers in this class! There is no correct way to write the scripts you create or to solve the problems, there is just the way you take.
One of the key aspects of the class is getting people talking about their work. We’re working closer and closer together these days, in terms of interacting with team members. Which means we need to be comfortable talking about our work. Which in the context of automation needs to be more than just explaining the code and why X framework was used over Y. We need to be able to walk people through our problem solving, our check design, and our final solution.
We also spend some time exploring assumptions, specifically how our automation is full of them but often unspoken or undocumented. We look at the importance of them, and how they influence our design. Talking about influence, we also explore biases in the context of automation and of course Lego!
We’ll explore some heuristics which are invaluable when designing checks and code. We’ll also introduce you to some automation specific terminology. I have too often seen competent ‘automators’ struggle to convey their thinking and rationale to colleagues and this section of the course will help overcome this common problem.
There is much more, but at the very core of this course is what using Lego gives us. It gives us the ability to quickly put theory into action and to get feedback there and then in the class! Giving you a personal and active learning experience, whilst broadening and deepening your automation skills. Sure, we’re using Lego and none of you create your automation using Lego in your workplace, but the thinking and processes are the same. This gives attendees a real foundation for their automation efforts, completely applicable to any language or framework.
Here are some takeaways for different roles:
- The ability to talk congruently about automation.
- Realisation that ‘non-technical’ testers have a huge part to play in an automation effort, without writing any code!
- Modelling is a crucial skill regarding automation.
- Appreciate that we can’t just create automated checks, they require thought, a testing mindset and developers can achieve this.
- The code is important and we should follow good practices. They really can help testers/automators with this, they know a lot about coding!
- Appreciation for well-targeted automation and how the testability of the products is a significant part of this method. Testability is something developers can improve.
- Queue sweeping generalisations! Appreciation that automation requires constant support, we can’t just write and forget.
- An understanding of the steps and effort involved in creating highly maintainable automation, both from a code and check perspective.
- We can’t just hire someone with the best coding skills, we need automators who understand testing.
- I doubt another one will attend, but you never know! I hope they take away that every team member has a part to play in testing, especially automation, and they should encourage this to be the standard.
So, with all that being said, if you’re looking to move into automation or improve your universal automation skills, I am certain that this is the class for you! This really is a class like no other! I’ve been running this class for over 2 years now and I’m yet to receive any complaints… perhaps everyone is just too polite. But genuinely, I have received many compliments and positive feedback from attendees from all backgrounds, skill level and role. Especially based around the finding that using Lego really works! It’s not just a gimmick, it truly does support the theory, class and learning.
The next public class we are hosting is prior to TestBash Brighton on March 22nd, find out more and book!