I believe the expression “jack of all trades, master of none” is a misnomer, as I’ve mentioned previously. Being good at two or more complimentary skills is better than being excellent at just one, in my opinion.
But what about being excellent at one skill, and still being good at two or more? Why can’t we be both?
A T-shaped person is capable in many things and expert in, at least, one.
As opposed to an expert in one thing (I-shaped) or a “jack of all trades, master of none” generalist, a “t-shaped person” is an expert in at least one thing but also somewhat capable in many other things. An alternate phrase for “t-shaped” is “generalizing specialist”.
Ideally we’d like to have a team of t-shaped testers in Flow Patrol at Automattic. But how do we get to this end goal?
I recently embarked on an exercise to measure and benchmark our skills and do just this with our team. Here’s the steps we took.
Step One – Devise Desired Team Skills
The first thing we did was come up with a list of skills that we have in the team and would like to have in the team. These can be ‘hard’ skills like a specific programming languages and ‘soft’ skills like triaging bugs. In a standard co-located team this would be as easy as conducting a brainstorming session and using affinity grouping to discover these skills. In a distributed environment I wrote a blog post to my team’s channel and had individual members comment with a list of skills they thought appropriate, and then I did the grouping and came up with a draft list of skills and groups.
Step Two – Self-assess against a team skills matrix
Once I had a final list of skills and groups (see below for full list), I put together a matrix (in a Google Spreadsheet) that listed team members on the x-axis, and the skills on the y-axis, and came up with a skill level rating. Our internal systems use a three level scale (Newbie, Comfortable, Expert) which we didn’t think was broad enough so we decided upon five levels:
I hadn’t seen Jason yip’s visual representation at that point in time, otherwise I may have used something like that, which has five similar levels:
Step Three – Publish results and cross-skill
Once we had the self assessments done we could then publish the data within our organisation and use the benchmark to cross-skill people in the team. In a co-located environment this could involve pair programming, in a distributed one it could involve mentoring and reviewing other team member’s work.
Have you done a skills matrix for your team? How did you do it? What did you discover?
Full List of Skills and Skill Groups for Flow Patrol at Automattic
|Automattic Product Knowledge|
|WordPress.com Simple Sites|
|WordPress.com Atomic Sites|
|Human Software Testing|
|Bug Triage & Prioritization|
|Exploratory Testing (pre-release)|
|Cross-browser Cross-device Testing|
|Facilitating Beta/Community Testing|
|Facilitating User Testing|
|Automated End-to-end Browser Testing|
|Automated API/Integration Testing|
|Automated Unit Testing|
|Automated Visual Regression Testing|
|Android Automated Testing|
|iOS Automated Testing|
|Team City (CI)|
|User advocacy – empathy and compassion|
|WP.com API PHP|