Git Product home page Git Product logo

matrix's Introduction

Software Engineering Competency Matrix

This repository contains an "Open Competency Matrix" for Software Engineers. It includes a standard data structure as well as a basic tool for transposing that data structure into friendlier formats like job postings and tables for human consumption.

This is an open-source project and all contents here are licensed appropriately. You are encouraged to add your own organizations skills matrix to this repository. You can do so by making a copy of the existing stride matrix model and modifying it to suit your organization.

Getting Started

$ git clone [email protected]/stride-so/matrix.git

What is a Competency Matrix?

A skills comptency matrix is a tool that is used to provide team members with information on what a roles expectations are. By extension the matrix also communications what skills and capabilities are required in order to to advance to the next stage of their career. While a compentency matrix not a comprehensive list of every single skill, it is a framework that helps you have conversations with your managers to get more actionable advice and information.

If you or your team do not have a competency matrix in place, you should encourage them to adopt one.

How do I read a Competency Matrix?

This repository contains a models directory which contains JSON encoded representations of a competency matrix. Each matrix file encodes several dimensions of information.

  1. The levels and titles used within the matrix.
  2. The title and body of any number of skills. Skills may be technical skills or they may be essential skills.
  3. Skills are grouped into areas called 'themes'

The JSON representation is a transposition and 'structured' encoding of a table like this one. The linked table is parsed to generate the JSON file whose format and layout is described in this document.

FAQ

Can I add my companies matrix?

Yes! Please!

How do I make my own matrix?

You can do make your own matrix by copying what already exists and changing it to something that suits your organization better. You can copy the stride open compentency matrix to something you can edit then use that without limitation. You can also copy the JSON representation in the models folder and change your new file.

If you would like to include your matrix in this repository there is a tool that lets you convert the matrix layout of the example comptency matrix into the JSON representation.

  1. Copy the Google Sheet
  2. make your edits then export the sheet as an .xlsx file.
  3. Then run the tool against that file.

You will need go installed on your machine.

$ go install github.com/stride-so/matrix/tools/cmd/stride@latest
$ stride parse -in filename.xlsx > filename.json

Why don't the role titles match my organization?

Titles mean a lot to some people, but titles are not the same across all organizations. For this reason the titles in the provided model are an attempted standardization across multiple organizations. This was done by collecting, and reading through a list of about 20 different competency matrixes, career tracks, etc from several software organizations. If you have friendly suggestions on more appropriate titles please open a pull request or feel free to add your own matrix.

What is the difference between Essential and Technical Skills?

Essential skills are sometimes referred to as transferable or 'soft' skills. Technical skills apply to a specific domain. For example, writing documentation, being a project leader, understanding budgets, leadership, mentoring, communication, etc are all essential skills. No matter which role you have at any company you will likely need to employ some (or all!) of these skills depending on your role. In a software capacity, technical skills includes composition and comprehension of code as well as understanding testing, security, hardware, constraints, trade-offs, etc.

matrix's People

Contributors

trevoro avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.