This two-part tutorial explores five higher-order functions where an experienced test manager contributes to an agile organization. This installment covers interfacing with senior management; providing vision and leadership; and fostering cross-group collaboration. The second section gives advice on creating and leading testing specialists, choosing tools, reporting and providing organization management.
With a basic premise of the agile development methodology being a self-lead team, what use is a test manager? Many agile engineers even bristle at the thought of having senior leadership in their workplace. Reality shows, however, that not all teams or organizations benefit from a complete lack of management.
Smaller engineering organizations can often do without, but larger organizations perform better with some amount of centralized management. A team of ten engineers, with no role specialization, probably has no need for a test manager. A team of fifty engineers, which maintains a differentiation between test-oriented engineers and development-oriented engineers for a valid business reason will certainly benefit from a test manager -- and, incidentally, a development manager.
Working with senior managers
Large organizations, such as a team I led at Circuit City years ago, have deep management structures. It's simply a fact of life. And those managers generally manage cross-discipline organizations and benefit from help with a manager between them and each discipline. In Circuit City's management structure strategy project, I managed over 100 engineers, with 13 concurrent work streams. My role was to interface between my manager and the test organization, communicating messages and centralized decisions in a way that addressed my team's needs, interests and concerns.
Test managers also act as a buffer, insulating the team from senior management's see-saw decision-making process. Sometimes just shielding testers from the questions senior management can ask is performing a huge favor. Suppose someone asks: "Do we have the right number of testers?" That question can really cause concern in a test team. So, the test manager can research and answer that question without churning up any worried or troubled feelings that will be taken to project management.
When senior managers arrive at a strategic plan, the test manager's job includes integrating that plan into the test organization. A great example would be an organization which has decided to migrate from waterfall to agile! The test manager's role will change dramatically, moving over time from 'manager' to 'coach,' and assisting the test team in understanding their role and helping to set engineering goals in terms of process adoption. Sometimes this means -- if the manager has Agile experience -- hands-on coaching of the team, and sometimes this means arranging to bring in outside help.
Another role test managers play in this larger organization is simply pushing back on bad ideas. Individual contributors (especially on agile projects) are often heads-down, in the day-to-day work. If senior management stumbles upon a ridiculous idea, individual team members often lack the cycles (and sometimes the experience) to push back on that decision. The role of a test manager often includes helping senior management understand the possible side effects of a decision.
In some organizations, testing or quality assurance are not often viewed as critical. These organizations may lack experience, or may have experience in smaller projects than the one at hand. A test manager's role includes the responsibility to advocate for quality across the entire company. Sometimes this means helping customers understand the value of the 'extra cost' of a few test engineers on a project. Other times, it's helping executive management see the need for experienced testers. Sometimes the job includes preventing releases from happening when core quality issues beyond simple functionality could cost the company in terms of money or bad PR.
Providing vision and leadership
Agile teams are (rightfully) quite busy in the day-to-day and may not be cognizant of everything going on in the company. The test manager's responsibility in an agile organization can include driving vision. With an understanding of company growth plans, the test manager can be looking ahead to understand how to double or triple the size of the test organization. The test manager can also be thinking about strategic redirection – for instance, perhaps the test organization depends on developers for all automated testing. The test manager can set in place organization-wide plans to train testers, helping them become better automation engineers. The test manager needs to be the person asking "Why not?" and helping to drive the team forward toward that goal.
Sometimes agile teams fall behind due to circumstances beyond their control. The agile approach is to take those hits, learn, and move on. But sometimes there's value in getting help. For instance, if a member of an agile team becomes ill during a critical period, a strong test manager can step in and 'pinch hit' for that tester while he or she is out. This isn't advocating that the test manager is simply a 'reserve' resource. Teams which underestimate or over-extend themselves need the experience which comes from missing goals. But there are times when a test manager can contribute at an individual level. (And often when a test manager gets involved at this level, they stumble across issues they might never have heard of from the team.)
Another leadership role is to help teams through transition. The change from waterfall to agile is a fantastic example of this – as a leader, the test manager needs to play a critical, positive role in helping testers work through the difficult migration process. The test manager provides structure and understanding, offers insight, and encourages team members as they face challenges. Above all, the test manager needs to be supportive and reassuring during the struggles which come with change. This leadership will help retain top talent, which might otherwise leave the organization due to the uncertainty and stress of change.
Finally, the test manager can represent the test organization and the company as a whole. A good test manager can be a key asset in customer retention. By contacting external customers, being aware of situations they're facing, and communicating the status of fixes and changes, the test manager can help the customer through any rough spots in project implementation. Another role the test manager can play is sitting as a member of industry or standards organizations, making sure quality has a voice at that table and providing expertise in the subject.
Fostering cross-group work: Agile testers' roles
A critical role played by any management in an Agile project is helping the scrum master eliminate road blocks and keep the team moving. The test manager can play a pivotal part in this by interacting with senior management, other groups, the business side of projects, and even the customer. Sometimes it takes a management-level title to 'influence,' even within the same company. More important, some negotiations and even simply driving closure can involve a lot of time, talking, and walking. By remaining proactively involved in projects, the test manager can help remove impediments, all the while allowing the team to remain heads down.
Also, very often in a larger organization, the test manager is the first level team member with corporate purchasing privileges. Therefore, the test manager can often take care of licensing and other purchases and fees for supplies the team needs to carry on their work.
In larger engineering organizations, the test manager works closely with development and program manager/project manager counterparts. They collaborate on cross-discipline objectives as well as on budgets and scheduling. They are often the point-people for driving mitigation for lessons learned which surfaced in retrospectives. The relationship between a test manager and a development manager is probably the most critical management relationship. We all know the maxim, "You can't test in quality". A good test manager works closely with the development manager to integrating coding and testing activities, in order to shorten the feedback cycle.
Another role the test manager plays in a larger organization is introducing engineers around the company. A successful test manager is very familiar with projects and personnel across the entire organization; when one employee is looking for help, that test manager can make appropriate introductions. Finally, the test manager can play a scrum master role in a scrum of scrums, helping to lead the meeting.