Monday, October 01, 2007

“Mr.Manager, but what do you actually do here?”

I work for a product company that works from multiple geographies, as a Software QA manager. When I joined this company 6 months ago, it was almost as if I was a new-born (Exactly, that's what it means, I'm a 6 months toddler now!), for lot of stuff were unclear to me on the processes and operations side of things, not to mention the numerous discussions that spring up almost daily on the product side, that made me feel in front of the rest, like a buffoon, to say the least! Although on the product side of things, I started to see rays of hope during my discussions - that turned into learning sessions, but unfortunately almost always gets unlearned after a couple of manager meetings - with the leads and other members in my teams, the processes part of it still was a big hollow for me. Though, my senior manager tried to explain a lot of stuff to me, there were many of those gaping holes in the system and most of those that I consulted with were unsure about the solutions, and sometimes even were unable to assess the size of those holes or their impact on the general working of the company. Initially, I was skeptical about my ability to understand and appreciate the system, but as time went by I realized that more or less everybody shared the same plight as I did, but only didn't speak out.

I tasked myself to work (and sometimes, re-work) on several areas that were left unattended/incomplete by my predecessors. It has been a bit (quite that!) extra work for me, but this helped me to learn - and continue to learn - a few things, develop ideas and play with them. More than anything, it helped me sharpen my thought processes. I'd always liked anything that stimulated the right part of my brain (which was rarely though - I've to admit!), hence slowly I started to like the whole thing. In the next few upcoming posts, I'll share with you some of those...No doubt, there is so much more to work on. I've just started to scratch the surface of it! This is really not an exaggeration at all, but most organizations that claim excellence in processes are still at this stage, and some even more pathetic.

If there is one thing that I learned from all of this, it is the futility involved in blaming the organization and/or the system for the way it is and instead, realizing that we're the ones who make it that way! Unless people do initiate it, things will not move even an inch from where it was an year ago, or even a decade could prove short in time. I think, it works phenomenally well, if everybody can tickle their brain cells, do some thinking. See for yourselves, how things will fall in place, only if we're determined to change it!

Within a few weeks of my joining the company, I was a bit embarrassed by a very innocent question from one of my team members that almost translates to "Agreed, you’re my manager, but what exactly do you do here, when I am the one who get all things done?"!. A very valid question, I started thinking about it. I didn't ask anybody for an answer, for it seemed to be a very trivial question and my ego didn't allow somebody else to define my role. I was afraid that somebody will ask me, 'Having worked for 12 years in the industry, don't you know even this?' I was terrified as the very prospect of somebody humiliating me like that!

I searched all over the internet, but I failed to come across any such article/white-paper/magazine columns that would even come close to defining the roles that I wanted to elaborate. So, I set out to define the roles and responsibilities for the various roles that are already present in the system, followed in our organization. I drafted one within an hour or so, but soon, I discovered that it wasn't as easy as that, since I had 2 more people in my team - a technical lead and a project lead - who were almost always barging into my territory of responsibilities. What am I doing here, if 2 others are constantly trying to repeat everything that I do? This particular aspect got me more interested on this exercise. So, I prepared a big list of responsibilities that possibly belonged to a similar system as ours, based on my prior experience. Now, the maximum confusion occurred while I tried to sieve out everything else from this list, except my own. I worked and re-worked for at least one full day. Here, I present the result of this almost fundamental, sometimes ridiculous, or even eccentric effort...

There could be a lot of responsibilities that, I realize, may need to be custom-created to the system itself, so these thoughts may not universally apply; but I feel that this could be a good starting point for somebody who is facing a similar situation (as I did before I set out on this task), to take these points and refine on them. Definitely, comments are welcome...


Technical lead

- Act as an interface between Developers in all geographies (represent the team during engineering discussions, QA-Dev meetings, and Mail/phone communications with developers)
- Technical mentoring of staff - including presentations, Q&A, knowledge base.
- Owns tracking of defect metrics (weighted defect count), help manager to assess on bug quality and follow-up activities including devising and implementing newer ways to better the team's performance on these aspects.
- Assist project lead in defining and own setting up of the test beds.
- Owns document reviews
- Leads the team over participation in exploratory testing, betas (beta forum), and code/bug bashes.
- Drive the innovation efforts from the team and encourage participation in internal programs like bug catch of the month/writing whitepapers/patent submissions.
- Owns Automation plans and frameworks

Project lead

- Daily task Management
- Planning
- Test Stripes & Prioritization
- Estimation & Scheduling
- Own test case/defect repositories and their maintenance.
- Owns test execution, regressions.
- Tracks and identifies any new requirements of hardware/software, help manager decide on whether to procure or swap with other teams in the same geo.
- Assist Manager with managing the expectations from remote teams.
- Status updates to manager
- Assist Manager with Risk Assessment/Management
- Assist Manager with MBO goal settings and reviews.

Manager

- Own team's productivity and follow-up activities.
- Own quantity/quality of the bugs reported.
- Own risk assessment/management.
- Own attrition.
- Status updates to higher management.
- Help teams mutually set clear and achievable expectations.
- Co-ordinate among various geographies and help define plans for efficient and effective product testing.
- Check on the team's confidence level on the product from time to time and keep rest of the team updated on each other's confidence levels.
- Owns long term planning on the team's structure to suite product/project requirements and individual aspirations.
- Update the team with visibility and road-map into generic/specific areas of product.
- Take stock of the team's performance periodically and work with technical lead to define ways for improvement.