What is it?
A ‘unicorn’ SDET is a software developer in test who is capable of writing automation frameworks, automated tests at the API, and UI level, supports their sprint team and can develop against the deployment pipeline. Here at Narrative Science, that is the expectation for being an SDET.
Where are these people?
As an engineering manager, you’re probably saying, “Wow! I need people like this on my team!” So where do you find them? I have bad news! They are unicorns for a reason. They mostly don’t exist in the available job pool. Certainly they don’t exist in the entry-level to mid-level pool. You have to build these people from the ground up.
How do you start?
You have to find someone ambitious and have some talent for writing code. We do a lot of due diligence when hiring. Interviews are weighted across some key virtue areas and technical prowess. We don’t just hire someone who knows how to break an app or someone who can pseudo-code a tic-tac-toe app. Having these abilities aren’t bad things, but you have to have the right personality traits to excel as a unicorn as well. An interesting fact, over the past 3 years, we have hired more people without test experience than those that had it. Fortunately, our team is laden with a handful of mature testers who are able to train and guide this raw talent into highly skilled testers.
Why do we do it?
We do this for many reasons. First off, career paths are very important to us in the test engineering department. You hear many stories about how testers can’t code or need to learn coding as the methodology across the industry has gone more and more Agile. Over the past 3 years, we have been able to transition 3 SDETs into full time development roles. A year or two of SDET experience goes a long way to making someone a good developer.
This has multiple benefits across the organization as well. For example, now you have seeded teams with developers who have a test first mindset and are ‘friendlies’ to other testers. They can also pick up tester tasks on their sprint team in a pinch. Having that experience in the trenches of testing makes everyone a little more appreciative of each other’s roles.
When do they have time to learn the skills?
This all seems like a lot of responsibility and skills for a single engineer to possess. You would be correct, this is a very broad set of skills. When you start as an SDET at Narrative Science, you are assigned an Agile team to support. Your primary focus is to get high quality features out.
Your second focus is on the test architecture. As a test organization, we pride ourselves on quick feedback from tests, trustworthiness of our tests and our ease of writing and debugging them. We have a small test architecture guild which drives the test framework and assists in the delivery pipeline. This team generates JIRA tickets that support both of those roadmaps for SDETs to pick up. This is where ambition and willingness to fail come in. We have a support system, where other seasoned unicorn SDETs do periodic pair programming on different parts of the framework or pipeline. The idea being, infect the rest of the team with the want, desire and ability to contribute to these areas and not fearing failure.
Our next enabler is in the form of quarterly hackathons. A hackathon is an event where development collaborates on new and innovative ideas for our products. SDETs are encouraged to spread their wings into these areas. Often SDETs take on implementation of new tools or instrumenting our framework or pipeline.
Finally, we are very data centric. We gather data on almost everything we do, PR tests, performance tests, coverage, flakiness, cycle time, you name it. Being so data centric and transparent with our data, makes it easy for engineers to find areas of improvement or changes in trends. There is no lack of work that can be done.
In the next blog post we will discuss how Unicorns behave.