Wednesday, 15 April 2015

Testing Hierarchy in Agile

Agile teams are small. Often this means that they only include one tester - sometimes two. Though the tester should not be the only person performing testing activities, they will probably be the only person in the team with testing as a specialty.

In a large agile development organisation there will be many teams, each with their own tester(s). These testers are likely to possess a common set of skills. Ideally they will be people who can ask good questions, will work collaboratively with other team members, feel comfortable working autonomously, be capable of using tools to automate checks, and have strong critical thinking skills.

In my experience, the testers who excel in these roles are often at an intermediate level in their career. A junior tester may not have the confidence to operate independently, or the breadth of skill required to participate successfully in varied tasks. A senior tester is generally interested in leadership opportunities that aren't easily available in small delivery-focused teams, or they simply get bored and seek a bigger challenge.

This can mean that an effective and successful testing discipline within an agile organisation is relatively homogeneous. A number of different teams with the same requirements for testing may result in a pool of testers with broadly the same levels of experience and skill.

By contrast, in a waterfall development environment the test team will generally have a greater diversity in experience and skill through the use of differentiated job titles, job descriptions and organisational hierarchy. The structure in a waterfall organisation will usually dictate a clear career progression for a Junior Test Analyst to develop through to a Senior Test Analyst, a Test Lead, a Test Manager.

The absence of testing hierarchy in agile makes career progression murkier. The homogeneity of skills demanded from testing may reduce the opportunities for testers to learn from one another. So, how do you challenge agile testers to grow?

How do you support junior testers in agile?

How do you challenge testers to diversify and sharpen their testing skills?

How do you create meaningful opportunities for seniors to lead?

I have some ideas, but I am curious to hear whether others have seen similar challenges. What are your opinions or experiences with the absence of hierarchy in organisation-wide agile testing disciplines?

5 comments:

  1. Interesting topic Katrina, let me give you an answer as somebody that has worked for many years as a tester as part of agile teams.
    Working as a tester in an agile team is a great experience and possibly the best job I have ever had for the amount of things I have learned. My company allowed me to grow in my role and rewarded me financially because of the value I brought and not because of my title.
    You can certainly be a leader working in an agile team if your role is software tester as leading is much more than a title next to a name. People looking for the title of leader might find it challenging, but then maybe they are not the right fit for an agile team.

    ReplyDelete
  2. Thought provoking topic, Thanks Katrina.
    I faced similar challenges when I was a functional leader with my team spread across and embedded in multiple scrum team. The thing that used to keep me awake at night was how I would ensure growth , development and engagement of the testers. Here are a few ideas that worked for me -

    1. Create opportunities to ensure that testers ,on a regular basis,get to switch across projects/scrum team/technologies so that they get a variety of learning and knowledge
    2. Create oppurtunities to ensure that upcoming/established senior testers get to act as mentors within /across scrum teams.
    3. Rotate the Scrum master role within the Team
    4. Create opportunities for testers to embed themselves in other parts of the business (sometimes they were Scrum teams as well)
    5. Organizationally, advocate for "official" recognition of the expanding role of senior testers .... e.g. Make "Test Champion" a title , that is official recognized and rewarded.... sending a storng organisational signal that the expanding and varied role of testers in a Scrum set up is being recognized.
    6. Give opportunities to testers to run retrospectives and empower them to induce change .

    ReplyDelete
  3. Some ideas that immediately come to mind:
    • Rotate testers on projects so they’re exposed to a diversity of product technologies of varying complexity to test,
    • Have testers present to their peers how they solved a particular testing problem, and as a group use Jerry Weinberg’s rule of 3 to critically think of other ways to solve that problem,
    • Have testers research and become specialist in a certain domain, tool, etc. Promote them as a specialist in that area and encourage them to coach others, and
    • Look for opportunities outside of project delivery for more snr testers to lead initiatives. I.E. they could lead an investigation of options to automate checks, help manage test execution and reporting, etc.

    ReplyDelete
  4. Where I am currently, we strive to have 2 testers in each team, to ensure they have a relationship where they can grow off each other. We try and have a junior tester and a senior, so the junior can learn off of the junior. It's also important I feel to have some sense of community within your company where testers from different teams can get together and discuss topics that interest them and learn from one another in that environment. Our teams tend to work on different technologies so there's always something to discuss in our regular community meetings. I (as a lead) work closely with a number of testers in my area to ensure they are being challenged, and if not think of ways that they can be challenged both within their team and outside of their team.

    to specifically answer your questions above:
    1 - I think it's important in my role to help them grow, not just for the sake of the team but obviously for them personally. This is achieved by meeting with them every 2 weeks, seeing what they are interested in, helping them with their personal developlment plan. I also expect the senior in the team (if there is one) to help them along, and we have clear guidelines on how seniors and engineers in teams work together.

    2 - I think this comes by being part of a community, to explore what others are doing. We all have a thirst for knowledge and are satisfied when we achieve something. It's important to create an environment where they can explore themselves and learn new technologies, it's not all about work work work.

    3 - With regards to leading, seniors have the opportunity to pick up tasks outside of their team and own them and see them through to fruition. They also obviously help drive test strategies and lead the testing within their team.

    Ultimately I want to get to a position where all the testers in my company own and lead the testing community, it's not something any 1 individual does, it's something collaborative and is a self driven thing that people want to be invovled with and lead and own, so there's always opportunities. The challenge is making people want to take on those opportunities and challenge themselves :)

    I understand I have waffled a bit, but it's early and i'm tired! Hope the above is useful in some way.

    ReplyDelete
  5. Thanks for starting another great discussion Katrina. I don't have anything to add to the comments, but am keen to hear other's experiences. Our current approach in the team I manage is very similar indeed to Gareth's. cheers, John

    ReplyDelete