Clear definitions of roles creates clear and consistent expectations what each member of the team is supposed to do. I propose the following standards for creating such a role definition.

1. Define all roles in a Team Link to heading

Do define all roles in a Team, do not only treat this exercise as a orientation help for junior team members. Holding senior team members and the team leads (so, ostensibly yourself, if you are reading this) to the same standards allows for a much more objective performance reviews.

Curricula for education can also be more easily and objective designed around a clear definition of skills.

2. Set the Skills into context Link to heading

This means defining how the roles in your team interact with other member of the organization but outside of your core team. Who is responsible for processing requirements?

3. Define levels for every skill Link to heading

Trying to differentiate skill levels with any kind of numerical based system is not enough. It is also necessary to create a common understanding what each of these levels means.

I propose the following 5-tier system

Scale Level
0 no knowledge, no skill
1 little knowledge, no skill
2 Can support under guidance of a senior team member
3 Can solve most task on their own, rarely needs guidance and support from a senior team member
4 Solves all of their own tasks and indepentdently acquires new skills
5 Skillfully supports junior team members, sets standards, creates training materials and presents them to the team

4. Defining the skills Link to heading

Defining the skills themselves is tricky in itself. It basically more difficult than writing the job profile as you cannot argue that limited space in the job advert only allows for a high level overview to be communicated anyway.

For Data Scientist and Data Engineer roles, the following skills can serve as inspiration, but should be tailored individually for your tech stack and organizational profile:

  • Visualization with {Vis Software}
  • Configuration of {3rd Party Tool}
  • Presenting Results to stakeholders
  • Writing SQL
  • Applying statistical methods
  • Application and understanding of agile processes
  • Working with IDEs effectively
  • Teaching tech skills to others
  • Writing effective documentation
  • Requirements engineering

5. Review skill definitions regularly Link to heading

As new technologies, responsibilities and network connections within your organization emerge, review your definitions of skills and roles.

6. Publicly share and discuss your definitions Link to heading

When to refer to the definition of roles and skills Link to heading

When discussion Promotions Link to heading

When adhering to the advice in the post ‘One common behavior seen in “mature” software engineers’ having an objective list of skills allows to create a checklist of skills a team member has to master in order to be eligible for a promotion.

Who’s the expert? Link to heading

Defining skills and mastery of topics in a team forces the team leads to consider which team members are experts for which topic and should exceed their own mastery and skill. This creates another barrier to overriding an expert opinion with a HiPPO. Obviously that requires honesty and consistency in team management, talent for delegation and a heavy dose of humility.

When Hiring new people? Link to heading

HR cannot be a subject matter expert on all technologies.

  • Writing Profiles for Roles
  • writing a profile for every role allow employees to orient themselves toward a promotion they are looking for and make the expectations transparent and measurable