Team Organization

Hero image for Team Organization

Armed with a clear set of roles, the next step is to define how these different types of professionals can work together efficiently. The way we currently work - just like everything we do - has been constantly evolving to fit our needs while still keeping our core principles.

If you are a teammate and looking for current team organization diagram, this way 👉
Use the same password as on the other internal pages of Compass.

Methodology

As the team grew, we felt the necessity to formalize the sub-roles and sub-groups within the whole team to make groups’ and individuals’ responsibilities and boundaries clearer. We recognize ourselves in the Agile methodology - theorized by Henrik Kniberg and Anders Ivarsson - as it represents almost to the letter how we are already working but it gives us a clearer nomenclature.

Our team is organized into several units called Squads, Chapters, Guilds and Tribes.

Squads

Organization - Squad

  • Squads are the building blocks of Tribes.
  • Each project - whether for a client or for an internal purpose - has a dedicated cross-functional squad composed of 1 Product Manager, 1 UX/UI Designer, 1 Team Lead Developer and 2-3 developers.
  • Squad members have end-to-end responsibility for the whole project. So it can be compared to a mini-startup.
  • A squad is self-organizing so they have freedom of their product and technical choices. Their decisions are only limited by the client’s and/or the company’s mission.
  • The Product Manager is an integral part of the squad i.e. squad members do not report to the Product Manager but work with him/her just like any other squad member.
  • A squad has the following rituals:
    • Daily standups
    • Weekly sprint planning
    • Weekly sprint reviews

Chapters

  • Chapters regroup individuals who share mastery in a skill and/or domain i.e. people who do similar work. Our team has the following chapters:
    • Android Chapter
    • iOS Chapter
    • Product Chapter
    • Web Chapter
  • The purpose of a chapter is to share knowledge, to learn from each other, and to reduce silo effect and sense of isolation. As not all chapter members are part of the same squad, it allows to reconnect all members together and share knowledge across projects.
  • Chapters are led by a Chapter Lead. Chapter leads are rotated every 6 months. Just like squads, leads are not bosses but instead are servant leaders whose main purpose is to support and focus on nurturing and growing the chapter members as individuals but also as a group.
  • A chapter has the following ritual:

Because we aim for developers to work all areas of web development, we do not have a Front-end Chapter or Backend Chapter contrary to many companies who adopted a similar methodology.

Guilds

  • A guild is an open group around an interest so anyone can join or leave any guild. Some of our guilds are:
    • Infrastructure Guild (devops)
    • Security Guild
    • Sport Guild
    • …
  • The purpose of a guild is also to share knowledge and instigate new initiatives.
  • A guild is led by a Co-ordinator.
  • A guild has the following ritual:

All guild activities are optional by default.

Tribes

  • A tribe is a collection of squads within one business area i.e. it’s a superstructure on top of all internal efforts. We have the following business areas thus tribes:
    • Product Development Tribe: focused on the development of products for our clients.
    • Business Development Tribe: build and nurture our pipeline of clients projects and execute outreach activities.
    • Next Tribe: R&D and individual growth activities to prepare the company for the future.
  • A tribe has regular get-togethers to share what the tribe is working on and plan future efforts.
  • A tribe has the following ritual:
    • Monthly all-hands
    • Monthly planning sessions

In Practice

Each teammate can be a member of multiple squads, chapters, guilds and tribes as he/she can be involved in many internal and external efforts. These overlaps - which are quite normal - could be very confusing and create inefficiencies without a proper nomenclature.

Developer

A Developer has these standard memberships:

  • One client-project squad as we provide dedicated squads to our clients hence guarantee that our developers work on only one project at any given time.
  • At least one chapter (Android, iOS or Web) or multiple based on his/her skillsets.
  • Product Development Tribe

In addition, a Developer might have the following optional memberships:

  • One or more guild based on his/her interests.
  • Business Development Tribe if he/she is involved in an outreach activity such as organizing a meetup, workshop or conference.
  • Next Tribe if he/she is involved in an R&D activity.

Product Manager

A Product Manager has these standard memberships:

  • At least one but usually multiple client-project squad(s). Contrary to development, Product Management is not a full-time activity hence the involvement of Product Managers in multiple squads.
  • Product Chapter
  • Product Development Tribe

In addition, a Product Manager might have the following optional memberships:

  • One or more guild based on his/her interests.
  • Business Development Tribe if he/she is involved in an outreach activity such as organizing a meetup, workshop or conference.

UX/UI Designer

A UX/UI Designer has these standard memberships:

  • At least one but usually multiple client-project squad(s). Contrary to development, UX/UI is not a full-time activity during the whole lifetime of a project hence the involvement of UX/UI designers in multiple squads.
  • Product Chapter
  • Product Development Tribe

In addition, a UX/UI Designer might have the following optional memberships:

  • One or more other chapters (Android, iOS or Web) based on his/her skillsets.
  • One or more guild based on his/her interests.
  • Business Development Tribe if he/she is involved in an outreach activity such as organizing a meetup, workshop or conference.

Rotation

Whether it’s a client project or an internal project/activity, each teammate has the opportunity to be involved in more than one effort during his journey at our company. Rotation is formalized by following a simple half-year schedule: January -> June and July -> December. This schedule applies for both squads members and chapter leads rotation.

Organization - Squad

Rotations aim at developing group ownership while still allowing the individual growth of every teammate.

Group Ownership

It is not only what we do, but also what we do not do, for which we are accountable. – Moliere

Every teammate must have an ownership mentality in any effort we undertake to fulfill the company mission. But this ownership must be achieved with the rest of the team in mind.

For developers, it means that a line of code or a feature does not belong to one person only. Instead, any developer on the team can pick up where another developer left off with ease and efficiency. In order for us to achieve this, we must work on and enforce team conventions on how we develop software applications. The same applies to Product Managers and UX/UI designers.

It makes everyone responsible to always deliver work with the whole team in mind. In case of challenges or issues, it also avoids any blame game as we - as a team - are responsible for what we deliver.

Individual Growth

Each teammate joins the company at different stages in their individual path i.e. some joined us at junior level while others at mid-senior, senior or principal level. At the same time, everyone grows at a different pace following our growth tracks so it’s critical to account for this disparity. Eventually, each teammate actually needs to be given the opportunity and the chance to show how he/she can handle new situations and grow from it.

When rotating between squads, each teammate has the opportunity to work on different systems and in various domains. A teammate can work on a Ruby-based application for a European Healthcare startup then work on a Go-based Loyalty Management system for a large Asian corporation. The challenges and solutions are different from one project to another. As a result, teammates acquire new knowledge faster and develop broader skills.

The roles of Team Lead and Chapter Lead are opportunities to demonstrate leadership skills without being the most senior team member. For instance, the Team Lead of a squad could be the teammate who knows the domain or the project the most, had the longest tenure at the company compared to the other developers, or must lead a project to fulfil one of his objectives for his growth track.

When it comes to rotations, the Product Chapter is in charge of both planning and implementation. As much as possible, we attempt at accommodating the individual preferences but we also need to cater to business needs and projects priorities.