Project structure discussion – Neos Sprint 2015 – Frankfurt

Continuing the discussion from Neos Sprint September 2015 – Frankfurt:

Gina presented this (see 20150921 17.40 Neos Team Structure.pdf) agile team concept to us during the first day of the sprint. Tobias Gruber summarized the current status (in our internal Slack channel) and how we got there because we wanted to vote on it (if we will adopt it):

  • We started by brainstorming problems that we currently have in the Neos team (image 1+2).
  • We then brainstormed tasks/activities we are currently doing (image 6+7) which translate more or less into departments in legacy companies.
  • Gina then started to develop the agile team structure (image 8 ), consisting of the "community cloud”, cross-functional teams (max 12 members - image 5) with 2 specific roles (Syncronizers and Prioritizers - image 10), communities of practice (COP - image 9), the council of elders (image 3).
  • We then thought about pros and cons of the agile model compared to the current situation (image 4).
  • The last thing we did was to translate our current problems into things we need to take care of (image 11+12).

With that we formed 3 groups (image 13) working on a) the description and guidelines for the Syncronizers and Prioritizers, b) the decision guidelines and the description and guidelines for the COPs and c) the description and guidelines for the community of elders and how the task force for the transition should be formed and what it should do.

Recommended viewing by Gina: https://www.youtube.com/watch?v=gcS04BI2sbk

Synchronizers

Tasks

  • meet regularly with other synchronizers
  • care for new members
  • search for new members
  • monitors “team health” and ensures happiness
  • monitors member activity and updates status as needed
  • “Skill radar”
  • Moderator in meetings, mediator for the tean
  • organizes meetings
  • contributor mentoring
  • Impediment management
  • Reporting (to public, other teams, Elders)

Not all tasks need to be done by the synchronizer herself, but can of course be delegated, if that is possible (mentoring, meeeting preparation, …)

Needed skills

  • good communicator
  • proactive
  • available for ~1d/w
  • knows the product/project
  • “transparent working mode”
  • responsive to inquiries

Job description

TBD

Prioritizers

Tasks

  • meet regularly with other prioritizers
  • discuss capabilities (availability) within team
  • manage team board
  • pulls projects for team
  • tracks team progress
  • manage global backlog with other prioritizers
  • make sure tasks assigned to team are done
  • prioritize team tasks with the team
  • integrate outside work / contributions
  • reporting (to public, other teams, Elders)

Attributes

  • organizational skills
  • motivational skills
  • JIRA skills
  • available for ~4d/m
  • knows the product/project
  • “transparent working mode”

Job description

TBD

Community Of Practice (COP)

  • COPs gather specialists of a certain field of expertise together
  • COPs combine the know-how of their participants so that the whole Neos project benefits from it
  • COP participants mentor and teach each other in order to upgrade the level of knowledge of the field of expertise in question
  • COPs are “self-built” based on the skills and interests of team and community members
  • one person can participate in multiple COPs
  • COPs can be assigned task to evaluate certain approaches, tools etc
  • COPs can initate/prepare votings or make decicions on smaller matters
  • decicions have to be documented
  • COPs may be tasked to produce end-user documentation
  • meet regularly (team member participants keep track on active community members)
  • dedicated slack channels

Council of elders

Tasks:

  • Project vision
  • True north (guidance)
  • Last authority

Rules/guidelines:

  • Decisions can only be taken with consensus
  • No leader, nor spokesperson
  • Only pulled in as last authority by the community
  • Maximum 12 members
  • Only members can suggest new members
  • Must be an active member of a team (automatically drops out by being not being an active team member)
  • Members can be kicked out by the rest of the members by voting, member in question doesn’t have vote rights (consensus rule applies)

TBD:

  • Find a more suiting name?

Todo:

  1. Clean up the internal channel (Neos team) and make this group of people the council of elders (if they join a team and volunteer to join).

  2. Create public channel on slack and new public category on Discourse for the counsel

Transition Task Force

Team size: 3-4
Objective: manage initial team formation, drive implementation of new project structure and provide support for all transition-related issues
Required contribution: a lot in the first month, then gradually less over the next half year

Guidelines:

  • push the transition
  • meet regularly
  • Visualize progress and tasks (JIRA)
  • Communicate progress to stakeholders

Most important task: manage initial team formation

Process:

  • create a list of skills needed for Neos Project
  • create a list of candidates (educated guess) and let the elders check the list
  • do permutation (is it possible to create 3 teams with minimum 6 members with the candidates and their skills)
  • interview every candidate if they are willing to work in a team and ask for their skills (possibly extend the skills list)
  • with confirmed candidates and update skill list: set up meeting of all candidates to form initial teams (within guidelines: 3 teams with min. 6 members, skills should determine team allocation)

Define project / kitchen duty / tasks

Kitchen duties:

Things that need to be taken care of periodically (not planable) that aren’t features.

  • Maintenance tasks
  • Bugfixing
  • Server
  • Cleanup
  • Support queues (inboxes)
  • Activity updates (blog posts)
  • Review (pull request triage)
  • Issue queue triage

Task

  • As small as possible (cannot be broken into smaller pieces) – should be less than a day of work
  • Single concern
  • Needs to have a ticket
  • Needs to be brain stormed/reviewed by another team member
  • Tasks that have been selected by the prioritizer should be worked on first
  • No necessarily part of a project (not a sub-task)
  • Responsibility of the team when selected for the team backlog

Examples:

  • Documentation
  • Small feature
  • Writing a blog post
  • Fix a bug
  • Add a test
  • Cleanup
  • Take care of something

Project

  • Epic in Jira
  • must be an accepted Project Proposal (see below) and is created by a prioritizer (e.g. website update)
  • Consist of multiple tasks
  • Multiple people need to work on
  • Limited and defined scope (can be finished, not a topic)
  • Can be solved by a team autonomously
  • Can vary in size
  • Should be broken down further if they are not achievable for the team in less than three months

Note on Accepted Projects and Proposals:

Even if a project has already been decided upon, create a Project Proposal for documentation purposes so it is transparent what it is about and who decided it. Projects coming out of an RFC must also have a Project Proposal (as a linked topic).

Project Proposals are to be posted in Discourse in the Project Proposals category and probably follow some template. Discussion period etc. need to be defined, probably.

Project proposals and new RFCs should be announced in the relevant Slack channels and on any other channel that makes sense to raise awareness and give everyone a chance to know about it.

Example:

  • Releasing a Neos/Flow version is a project
  • Every bigger feature is a separate project
  • A marketing campaign
  • Setting up and adjusting to a new tool

Guidelines for filling project / kitchen duty / task backlog

Backlog

  • A team backlog for each team
  • A general backlog for the whole Neos/Flow project
  • Team backlog filled from the general backlog by the prioritizer
  • Team members can influence team backlog through the prioritizer

Projects

  • Can come from team members, community, CoP, customers (through team members) by creating project proposals

Tasks

  • can only be added to in-progress projects if the prioritizer approved

Kitchen duties

  • Can come from Jira tickets, incoming emails – create a jira ticket or send an email a fitting inbox for all other inquiries

Maybe a guideline for creating tasks in Jira we can use the INVEST mnemonic I use it as a guideline for creating clear user stories (https://en.wikipedia.org/wiki/INVEST_(mnemonic))

List of skills that are available/necessary for the Neos project. Needed to guide the forming of the teams.

Every team member candidate will be interviewed where they have to answer what skills they possess and want to contribute/mentor in their respective teams.

List of skills

Hard skills

  • UX
  • PHP
  • JS
  • Ember
  • Testing - Behat
  • Testing - PHPunit
  • Architecture
  • Design
  • Frontend (responsive, js, css, html)
  • CSS
  • Marketing
  • Planning
  • Organization (events, meetings)
  • Speaking
  • Writing
  • Security
  • Branding
  • Database
  • MySQL
  • Postgres
  • Doctrine
  • Elasticsearch
  • SEO
  • Documentation
  • Fluid
  • Infrastructure
  • Linux
  • Deployment
  • Networking?
  • Project management
  • Research
  • Jira
  • Git
  • Content strategy
  • Release management
  • Localization
  • Sponsoring / funding
  • Product strategy
  • Public relations

Soft skills

  • Communication
  • Coaching
  • Quality assurance
  • Mentoring
  • Visionaries
  • Community building
  • Support
  • Onboarding
  • People skills
  • Prioritization
  • Motivating
  • Big picture
  • Following up
  • Tracking
  • Moderation
  • Mediation
  • Reporting
  • Responsiveness
  • Recruitment

Required roles for a team

  • Prioritizer
  • Jira, Project management, Prioritization, Reporting, Following up, Responsiveness, Big picture, Overview, Planning, Motivating
  • Synchronizer
  • People skills, Communication, Responsiveness, Organization, Coaching, Community building, Onboarding, Motivating, Moderation, Mediation, Recruitment

Required skills groups for a team

  • Developer
  • PHP, JS, CSS, Database, Git, Jira, Documentation, Automated testing
  • Designer
  • Design, UX
  • Researcher
  • Marketer
  • Communication, Public relations, Marketing
  • Infrastructure
  • Documentation

Required specialty skills for a team (should be covered by at least one person per team)

  • Postgres
  • Architecture
  • Elasticsearch
  • Automated testing
  • Jira
  • Security
  • Frontend development
  • Backend development
  • Organization
  • Quality assurance
  • Mentoring
  • Onboarding

Activity discussion

FYI: It was suggested to rename COP to something less cryptic (like “topic”) (see https://neos-project.slack.com/archives/team/p1443423163000526)

3 Likes

…and that naming is discussed in New name for "COP" now