Why Developers Should Not Lead Your Automation Efforts
Developers should not lead your automation efforts. I’ve never seen this succeed. In fact, many times I have been brought on to teams to clean up the mess that is left behind when developers try to lead this effort.
The reason is simple.
I’ve seen managers, recruiters, and even thought leaders in the Test industry say “what we really need is a developer to get this automation strategy off the ground!” I cringe every time I hear it because I know it’s a recipe for disaster. I’ve seen the best, top-notch developers and architects fail at this! That’s because automation engineering is much more than just coding. The same rules and principles that apply to development don’t always apply to automation engineering. Trust me, I’ve worn both hats.
Yes, developers can code, but automation engineering is a discipline where coding is just one aspect of it. What about the rest of the art of automation engineering? You’d be hard pressed to find a developer who is studying and following the field of automation engineering, and who understands the delicacies of how a stable and robust automation framework should be built.
I’ve seen developers think “how hard can it be?” and end up throwing together a messy and unmanageable framework that eventually has to be totally refactored by a true automation engineer, or worse, scrapped altogether.
Now, I’m not saying that a developer cannot become an automation engineer, because I’ve personally converted quite a few who left development roles to work in test and have become amazing automation engineers. But quite a bit of training was needed. The key to getting this to work was that the developers made a conscious decision to transition into automation positions….meaning they were fully devoted to learning the craft and the skills needed beyond just coding. They weren’t developers who were forced to “get that automation thing going”.
So what are the traits and skills needed to lead an automation strategy? I’m glad you [finally] asked! Here’s my list…the items are not in any specific order
- a testing mindset
- programming skills
- ability to implement object oriented programming principles
- software architecture skills
- an in-depth understanding of automation concepts such:
- Page Object Model
- the inverted test pyramid
- test data management
- continuous integration
- the separation of tests and framework
- reporting and test tracking
- distributed/parallel testing
- test case management (volume, suites, stability, etc)
- helper/utility mechanisms for common tasks such as database access/querying, service layer access, etc
- awareness of automation anti-patterns
- awareness of different testing tools and techniques to be able to make best recommendations
This is not a comprehensive list, but you get the idea. As you can see, programming is just one of many skills required of an automation engineer, especially one who is tasked with leading an automation strategy. Do yourself and the entire team a favor and stop asking your developers who know nothing about automation to lead your efforts. Hire an automation engineer!