Tuesday, September 21, 2010

Enter the Matrix: The Knowledge Matrix

How do we determine which person is on what team and identify learning opportunities between team members?  Here’s where we enter the matrix, the Knowledge Matrix.  This technique clarifies a team member’s skill set and opportunities for pairing with other team members to bleed knowledge.


  1. Snapshot to target each person’s skill set Tool to bring skill sets together.
  2. Clarifies learning opportunities between different skill set levels
  3. Great example of a big visible chart that Agile preaches.  We can extend this idea into charts and graphs to graphically display the data.  This data can be compiled into radar charts comparing individuals and/or teams.

How to:

  1. Create a spreadsheet that looks like the following:


  2. List out areas that are important to you.
    1. Domain Specific Knowledge – specific knowledge about the environment the system targets.  This is often learned by interacting with users of the system.
    2. Technical Knowledge – what tools and/or language(s) your shop is using that is important to the project
  3. Have other team members rank an individual for each skill set.  Alternatively, have individuals rank themselves given the following criteria (Dreyfus model as was explained in and excerpt from Pragmatic Thinking and Learning: Refactor Your Wetware) :
    1. Novice – beginner in a subject area.  They need “recipes” in order to accomplish a given task.
    2. Advanced Beginner – try tasks on their own but have difficulty troubleshooting. “Advanced Beginners don’t want the big picture.”
    3. Competent – can troubleshoot.
    4. Proficient – individuals who need the big picture, they have the ability to self-correct and learn from others.
    5. Expert – primary source of knowledge and information in a subject area.  Explore better, different ways to perform a task. “Experts work from intuition”.
  4. Post the results for all to see

We’ve learned from this tool in effectively setting up teams.  In our trivial example, Joe and Jane would be a great pair.  They have roughly the same amount of Domain Knowledge but Joe could teach Jane T-SQL and Jane can improve Joe’s C# knowledge. Each member can benefit from the other’s experience.  Re-assess this spreadsheet periodically to clarify learning opportunities to keep your team sharp in both domain knowledge and technical knowledge.

Other Resources

  1. Pragmatic Thinking and Learning: Refactor Your Wetware – great book on learning and the process to get from Novice to Expert.
  2. Building Software Development Expertise – Using The Dreyfus Model
  3. Five Stages of Learning – provides an overview of each stage and gives suggested time benchmarks.


“None of us is not as smart as all of us.” ~ Ken Blanchard