Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

TeamForm can be used to implement a range of operating models and organisational frameworks as outlined here https://www.teamform.co/solutions-for-teams .

TeamForm has a feature called principles, which can be used as guardrails when transitioning to, or as part of, cross-functional, agile or lean ways of working methods.

Teamform has some predefined principles grouped into principle sets that can be configured to meet a particular use case.

Principle sets can be created to accommodate different team archetypes (e.g. cross-functional, flow-to-work, service, platform, etc).

Examples of principles and principle sets

Individual/Role/General Principle Set

  • X layers from the CEO

  • Role diversity (individual) and total role diversity (organisation)

Team/Squad Principle Set

  • Between X & Y members (e.g. 5-9), full or part-time

  • Location e.g. same city, same building, same floor, timezone, if distributed - no more than X locations

  • Specific and/or dedicated roles included e.g. Scrum Master or Product Owner, etc

  • Number of line managers

Group/Tribe/'Team of Teams' Principle Set

  • Maximum number of individuals e.g. 150

  • Maximum number of teams/squads

  • Specific and/or dedicated roles e.g. Tribe Lead, Group Performance Lead, etc

Domain/Business Unit Principle Set

  • Maximum number of individuals e.g. 500

  • Maximum number of groups/tribes/'teeam of teams' e.g. 7

Configuring Principles

Principles are enabled in a workspace by default, but can also be toggled off via settings / workspace feature toggles

image-20240114-234126.png

Principles sets are defined via Settings / Principle sets using a JSON file.

image-20240114-234529.png

The key fields referenced in a principle set are as follows:

“id” - a unique id string.

”name” - a name for this principle set (string)

“suitableGroupTypes”: a single team type (e.g. “squad” or a list of team types e.g. “squad”, “tribe”, “COE”

Default principle sets can be defined per team type via Settings / Org Structure type config. Select a team type, then choose a preferred principle set for that team type.

image-20240114-234750.png

JSON parameters for Principles:

Member Count

parameter maxMembers(optional), minMembers(optional)

title Should consist of no more than ${maxMembers} direct members.

Should consist of at least ${minMembers} direct members.

Should consist of between ${minMembers} and ${maxMembers} direct members.

Code Block
           {
                "type": "MEMBER_COUNT",
                "args": {
                    "maxMembers": 10,
                    "minMembers": 5
                }
            }

Total Member Count

parameter maxMembers

title Should consist of no more than ${maxMembers} direct and indirect members.

Code Block
{
                "type": "TOTAL_MEMBER_COUNT",
                "args": {
                    "maxMembers": 150
                }
            }

Spread

parameter maxTeamsPerMember, teamType

title Each member should be in no more than {maxTeamsPerMember} teams.

Code Block
{
                "type": "SPREAD",
                "args": {
                    "maxTeamsPerMember": 1,
                    "teamType": "design"
                }
            }

Role Spread

parameter role, roleDisplayName, limit, teamType, teamDisplayname

title ${roleDisplayName} should work in no more than ${limit} {teamTypeDisplayName}

Code Block
            {
                "type": "ROLE_SPREAD",
                "args": {
                    "role": "(.*product.*owner)",
                    "roleDisplayName": "Product Owner",
                    "limit": 1,
                    "teamTypeDisplayName": "Agile Team",
                    "teamType": "(group|team)"
                }
            }

Ownership

parameter maxTeamsPerMember, teamType

title Should have 1 ${ownershipRoleDisplayName}.

consist of between 1 and ${limit} ${ownershipRoleDisplayName}.

Note- Ownership Role here references both the Job Title attribute and the SPECIALIST Tag value for a person- if either match, it will be seen as meeting the principle

Code Block
            {
                "type": "OWNERSHIP",
                "args": {
                    "ownershipRoleDisplayName": "Product Owner",
                    "limit": 1,
                    "ownershipRole": "(.*product.*owner)"
                }

Locality

parameter maxLocations

title Where teams are distributed it will be across no more than ${maxLocations} premises

Code Block
            {
                "type": "LOCALITY",
                "args": {
                    "maxLocations": 1
                }
            }

Line Manager Count

parameter maxManagers

title Team should have no more than ${maxManagers} line managers.

Code Block
            {
                "type": "LINE_MANAGER_COUNT",
                "args": {
                    "maxManagers": 5
                }
            }

Role Diversity

parameter requiredRoles,

title Each team should have ${minCount}{Role}

Note- requiredRoles here references both the Job Title attribute and the SPECIALIST Tag value for a person- if either match, it will be seen as meeting the principle

Code Block
           {
                "type": "ROLE_DIVERSITY",
                "args": {
                    "requiredRoles": [
                        {
                            "role": "Product Owner",
                            "minCount": 1
                        },
                        {
                            "role": "Devops Engineer",
                            "minCount": 1
                        },
                        {
                            "role": "UX/Designer",
                            "minCount": 1
                        },
                        {
                            "role": "Senior Software Engineer",
                            "minCount": 1
                        },
                        {
                            "role": "Software Engineer",
                            "minCount": 3
                        }
                    ]
                }
            }

Total Role Diversity

parameter requiredRoles

title Team should be cross-functional and include the following capabilities:${requiredRoles}

Code Block
            {
                "type": "TOTAL_ROLE_DIVERSITY",
                "args": {
                    "requiredRoles": [
                        {
                            "role": "Data Technician",
                            "minCount": 1
                        },
                        {
                            "role": "Field Technician",
                            "minCount": 1
                        },
                        {
                            "role": "Field Engineer",
                            "minCount": 3
                        },
                        {
                            "role": "Electrical Engineer",
                            "minCount": 3
                        }
                    ]
                }
            }

Same City Co-located

parameter null

title All members in the same city should work at the same address.

Code Block

Child Team Count

parameter maxTeams, minTeams, subGroupName

title Should consist of no more than ${maxTeams} direct ${subGroupName}.

Should consist of at least ${minTeams} direct ${subGroupName}.

Should consist of between ${minTeams} and ${maxTeams} direct ${subGroupName}.

Code Block
            {
                "type": "CHILD_TEAM_COUNT",
                "args": {
                    "maxTeams": 15,
                    "minTeams": 1
                }
            }

Direct Workforce Count

parameter minCount, companyNames

title Should consist of at least ${minCount} direct workforce members

Code Block

Timezone Overlap

parameter goodOverlap

title Members geographically distributed should have at least <${goodOverlap} overlapped working hours.

Code Block

Bulk assigning principles to teams

You can use the Teams CSV import (Settings → Data Integrations → Create New - > Teams csv file upload

image-20240117-011823.png

Use a csv file format as follows:

Team ID

Principle ID

TEAM1234

111111112

and a field map as follows:

image-20240117-011943.pngImage Removedimage-20240117-015004.pngImage Added

Troubleshooting:

Can’t find a team a principle set in the drop down for a team?
image-20240117-012112.png

It is likely you need to ensure a principle set is configured to have a suitableGroupType matching the team type for that team (as defined in Settings → Org Structure → Team Types)
E.g.
suitableGroupTypes:”squad”

Filter by label (Content by label)
showLabelsfalse
max5
sortmodified
showSpacefalse
reversetrue
cqllabel in ( "principles" , "team" , "team-details" , "types" , "transformation" ) and type = "page" and space = "OS"
Page Properties
hiddentrue
idPage

Related issues