So, what do we do about this perception of Dev’s being more technical than testers?
My first inclination is to address this from the perspective of Microsoft since I work there but I am going to refrain and make this more global in thinking. I figured I would start by calling out some observations (there are more but let’s just start with this list):
- There is little to no test education in our academic institutions
- This needs to change but in the 10 years I have been trying to influence schools on the matter I don’t see this happening any time soon
- As Will Morton plainly called out in his comment to my last post, SDET experience is not considered bonafide development experience in the industry
- The SDET bar is lower in most corporate settings
- B-rate SDET managers are hiring C-rate SDETs in some cases
- Software development is maturing to the point that the old way of testing products is becoming obsolete
- Flighting new products and updates are becoming more and more the norm
- The test discipline as we know it needs to mature as well
- Manual testing is still needed but automated test assets are overwhelmingly becomming owned by developers (the way it should be)
- Validation infrastructure is still being owned and maintained by the SDET discipline
- Data sciences and analytics are starting to muddy the SDET waters
- Data science is starting to become a new and separate discipline
If we take the extreme stance that test just goes away and development takes on the work that testers used to do then I believe a couple of things happen (seen this already in organizations that have gone to titleless engineering paradigms).
- Dev managers hire junior developers or vendors to manage infrastructure
- I think this is bad – Leads to stale or non-evolving toolsets
- Organizations hire contingent staffing agencies to manually test end user scenarios
- Scripting of scenarios becomes super important or good telemetry and data collection become paramount which most software development houses are not good at
- Organizations put more focus on flighting mechanics with Operations teams
- I think this is a good outcome. Â Flighting is proving to be a great way for teams to engage with and learn from their customers as long as the data collection and feedback mechanisms are good enough
- Developers are forced to take a more systematic view of the product by tapping 20 feet around their ownership area rather than the 2 feet they are used to in order to lower integration costs
- I think this is a pipe dream – I believe in a tester-gene that some devs have and most don’t
- You need engineers on your team who think this way and can oversee, educate, and code inspect to keep the rest of the developers accountable for this new holistic approach
In my opinion – when a Product Unit makes this change the SDETs still on the team (for the short time they are there) help keep things rolling and in ok shape. As those SDETs continue to be treated as lower class they move on. However, over time development houses will fall back into the silo mentality and the age old problems that SDET organizations oringinally solved start to creep back in again.
So what do we do? Well, that data science side is a great addition but you still need that tester-gene sprinkled like salt across the organization. If I were to drop what I am currently doing and left to do a startup I would hire a super strong dev team (no duh) and a few super strong devs with the tester-gene. Let’s just play a numbers game and say that my new widget would require about 10 developers; I would bring 2 additional developers in with the tester-gene and treat them like royalty. That is 1 to 5 if we are doing ratios. All of the code quality, build quality, and functional quality would be owned and delivered by the 10 devs. The 2 Elite-Devs would pursue like mad the issues that could plague us at general availalbility and maintain a sense of customer empathy. Yes, I would have several program/project managers as well that would help but the Elite-Devs would be the translation point from pure development engineering to customer love.
I know, I am leaving a whole lot of the details out but we can talk about those in comments. At the end of the day you still need what good SDETs bring to the mix. You need to retain that talent through recognition because I am telling you that they will bring the value. Make no bones about it, these people are hard to find and I only know about 10 of them personally but they are worth their weight in gold.
Here is my closing statement on this – Developers need to take on the work testing testing their product – Lord forbid that the first time an engineer who builds landing-gear for an aircraft sees his stuff work is when the test pilot tries to land the plane. You still need the engineers who make sure the landing-gear-up light illuminates in the cockpit as well as landing gear doors close and open properly.
Disclaimer – All of the opinions I express in my blogs are mine and mine alone. I do not speak for Microsoft or any other entity. These are my thoughts based on ~20 years of experience in Software Development (and airplane maintenance 🙂 ).