A common struggle seen in IT teams is testers and developers not being able to work together swiftly, be it because they don’t understand each other’s work methodologies, they haven’t worked together in the past or there’s simply no immediate communication between both of them other than comments on stories. Implementing Agile into projects has many benefits and breaking down walls between team members is one of them, waterfall environments left each team member secluded in their department/Section but Agile allows further collaboration between teammates.
Knowledge sharing between testers and developers can result in amazing alliances in a team, they have many things to learn from each other that will help them elevate their skills. To have successful collaboration between testers and developers its necessary that testers are technically aware, they are not expected to be 100% deep into programming but they should be able to understand the principles and key points of development and programming so they can communicate swiftly with developers and know at what stage the project is in.
Inside the world of Agile, we can find practices that encourage teamwork and Pair Programming is one of them, basically it means that two team members get paired to work on the same station and while one of them (driver) writes code, the other one (navigator) works as a spectator, reviewing what the driver is doing. This is mostly applied with two developers but can be done with a developer and a tester, working together through some stories.
Developers can benefit greatly from being paired with testers since they can learn testing skills that they can apply while developing to do some in-depth testing before marking a story as finished. In the same way, a tester can become technically aware and learn the high-risk points of programming. One thing that developers and testers can collaborate in is automated testing, the tester could be a driver while the developer is the navigator and writes a test then the tester can review the test and see if it’s relevant to what’s being tested. Then they can swap places and a tester can write a test in the same programming language the developer use and they can review it to make sure they’re both on the same page and can understand it easily.
Interpersonal skills will also be developed greatly and the work environment will benefit from having constant collaboration between different teammates, testers and developers will constantly exchange knowledge thus learning new ways to enhance their methodologies and increase their productivity. Another way to get testers and developers collaborating is through mob programming, this is mostly done in groups where the driver sits on a single computer but doesn’t do what they want, they are just there to execute ideas while navigators tell them what to do.
As time progresses, teammates will take turns in being drivers, working from where the previous driver left off until the task is completed. If navigators aren’t able to agree on one idea then the driver can apply the various ideas being suggested and then they can assess which is going to give them the correct or most effective outcome. Getting developers to performing testing using a mob programming dynamic allows them to be guided by a testing expert through the best practices of testing without them having to guess what they should do next, this also applies to have a tester write code guided by a developer.
Fomenting skillshare and team-work should always be the priority for Agile development teams and allowing developers and testers to mix in the same pool is one of the many steps we can take to get the best out of Agile. Rootstack is a digital agency experienced in agile development, check us out and learn how we benefit from agile.