I joined CTS, Inc. as a Software Engineer right after graduating from college. I was eager to start coding and developing something in the real world. I was surprised however, when my first assignment was to test an application one of our teams had been working on. That project experience not only allowed me to find my love of quality assurance but also made me a better developer when I did serve in the role of developer. I realized quickly that there were many benefits of team members working in multiple roles. Here are three of those benefits.
1. No more throwing code over the wall
Everyone has worked with that developer. You know the one that checks in their code right before build delivery time. That person who has not completed any unit testing, the one that always has obvious defects, the one that creates another defect when they are fixing the original defect, the one that throws their code over the wall hoping the testers will find all their mistakes. We all know that person. What I have noticed though, is that developers who have previously served in a quality assurance role tend to be more aware of the quality of their code. They understand what it is like to be on the other side of the wall so when they go back to being a developer, they put more effort into ensuring their code is high quality.
2. Better understanding of how to structure tests
A developer who has had even a short stint in testing software understands how testers structure their tests. They learn that you test both the expected and the unexpected so when they return to a development role, they tend to structure unit tests so they test more thoroughly.
Much like a developer who more thoroughly tests after being in a tester role, a tester who has served as a developer is normally a more thorough tester as well. Understanding how code is written allows the tester to understand how to structure tests so they can more thoroughly test every line of code.
3. Flexible team members who can serve in multiple roles
At CTS we hire consultants who want to be master generalists. Our consultants must be able to work on different types of projects, multiple technologies, and in different roles. Even if your company does not have a wide variety of technologies, you can still grow flexible team members by rotating them through different project roles. In the end, you will gain well-rounded team members and everyone can benefit from that!