unFIX

View Original

unFIX at VRT NU/VRT MAX (Case Study)

Author: Siemen Bastiaens

(This post was originally published here.)

A while ago, I wrote an article about visualizing the valuestream at VRT NU. This new post will expand more on the team topology used in structuring this scaled team. As well on how to translate and visualize the topology using the unFIX structures.

I came across Jurgen Appelo’s unFIX-model about a year ago, but only got around to examining it in more detail in the last couple of months. The concepts proposed in this pattern library seemed to translate quite well to our team context.

So this case study is my way of getting to know the unFIX-patterns better (by using them in a practical way) whilst also painting a clearer picture of how the VRT MAX* team is structured.

VRT MAX as an unFIX visualization

*In what follows I will be using the new name for VRT NU, which will be VRT MAX in the near future (at the time of writing). Depending on the time of reading this name will be more (or less) known by the Flemish reader.

Context

VRT MAX is the video streaming service of VRT, the Flemish Public Broadcaster (based in Belgium).

The importance of this product (in this digital age) has been steadily growing, and has recently gone in overdrive as VRT management re-enforced it to be an important strategical pillar in the overall future plans for the company, with an ambitious roadmap and extra resources to match this ambition.

This means that starting mid/end 2021, we refocused a lot of our people by working on smaller touchpoints to join our efforts on the VRT MAX platform. Together with some extra additions the result was one big VRT MAX team. In half a year we went from about 15 to around 50 people working on the same platform.

The most part of the last year and a half, I’ve had the privilege of helping the VRT MAX team grow. While doing so, we decided not to adhere to any particular scaling framework but instead to build/evolving on what was already there whilst borrowing from other frameworks and methods (mainly LeSS, Spotify, S3) as needed.

The resulting team topology will be illustrated using the unFIX patterns and structures in what follows.

unFIXing VRT MAX

The Base

VRT MAX as a strongly aligned base

VRT MAX is a scaled organization consisting of what we call ‘sub-teams’, all belonging to the VRT MAX-team. We opted to keep the ‘team’ denominator for the whole after scaling to emphasize that we are all on the same side, working on the same (large) product. In unFIX, this entity is called a ‘Base’. It’s the place that all the people working on this product call ‘home’ within the larger VRT organization.

The Turfs

Turfs per touchpoint

In unFIX, a Turf is “an area cultivated and protected by the same people” with “clear ownership”. Within VRT MAX, it is clear that these turfs have evolved around the key technologies/platforms that are targeted (iOS (tv+app), android(tv+app) & web) as well as a turf that consists of the more author/backend oriented systems (AEM & a set of complex components).

In time, we aim to reduce the amount of ‘turfs’, more specifically merging the two ‘mobile’ turfs to one, containing teams capable of introducing new features on all mobile platforms at once.

Forums

3 types of forums

Our department relies on chapters and communities for fostering cross team co-operation. The main difference in those concepts (how we use them) is that a Chapter has a certain tangible output/outcome that it hopes to achieve (‘real work’ is involved) and is mandatory for the participants.

In contrast, a community is a more ‘informal’ gathering focused more on knowledge sharing and discussions, attendance is open to all and optional.
As far as unFIX is concerned, both concepts seem to fit in the ‘Forum’ structure.

This amounts to VRT MAX having 3 forums:

Platform Chapter: consisting of the more backend-oriented devs on the touchpoint teams and some of the devs active in the Platform turf. The Platform Chapter helps alignment of new backend features and how they should/could be integrated into all touchpoints (among other things). A ‘Technological Forum’ seemed most fitting.

Ketnet Chapter: this Chapters main objective is tending to the specific applications that are exclusively offered to (younger) kids. Since this (kids) are a specific market segment, it is represented as a ‘Market Forum’.

QA Community: for discussing QA tools/approaches/techniques and aligning QA strategy and work, the QA community was formed. We represent this as a ‘Functional Forum’ as it is geared towards a specific function (QA).

Crews

(Lots of) Crews!

The ‘main’ organizational structures that keep our people aligned are our ‘sub-teams’. The best analogy within Unfix is the ‘Crew’ as these ‘sub-teams’ operate as classic cross-functional scrum teams.

The most part of the Crews in VRT MAX are ‘Value Stream’ Crews. In the current organization, we decided to form one ‘Value Stream Crew’ per ‘touchpoint cluster’ based on technology.

The result of this is one App-team focused on all Android based touchpoints (android-app, android-tv), one App-team servicing all iOS based touchpoints (iOS-app & tvOS-app) and one Web-team servicing the web based touchpoints (websites). It is important to note that these are cross-functional teams (also containing more backend oriented profiles as well as QA-capabilities) capable of delivering end-to-end features for those touchpoints. They are not purely functional ‘developers of that technology’ silos.

Helping the ‘Value Stream Crews’ are a set of ‘Platform Crews’ that maintain and evolve shared complex components like the authoring environment, the mediaplayer & audio-services.

All of the Crews above are enabled by an ‘Experience Crew’ named the ‘Design Team’ that helps the entire VRT MAX platform in creating a shared/uniform & user-centric experience.

Heading this Base is the Governance Crew, composed of Teamleads & Product Owners to handle/steer both HR- and product strategy.

Chairs

Every Forum has a Chair

The three forums mentioned above all have a ‘Chair’ (a ‘Platform Owner’ of a ‘Community Connector’ in our terminology), these Chairs are not dedicated to the Forum, but act as team members with an additional role.

Captains

Representatives are ‘Captians’

In our organization, a key role is the ‘representative’ that represents every sub-team in overall meetings (overall plannings, overall retros, …). This corresponds greatly with the ‘Captain’ pattern in unFIX. Within VRT MAX, every team decides for themselves how they fill in this role. But most (all?) Crews have landed on a policy to pass this role to another Crew-member every sprint, sharing the burden of the extra meetings and responsibility.
Making the ‘representative’ a rotating role also enables more people to experiment with these kinds of responsibilities, but also gives everyone a better understanding of how the ‘bigger whole’ works in practice. We believe this helps to increase individual engagement with the platform.

Chiefs

Chiefs

The Governance Crew is comprised of teamleads and Product Owners, providing guidance about both Product and HR. To keep a good team-working focus, every teamlead is assigned to a set of complete Crews.

Crew members

The ‘Crew Members’, the real product heroes

And last, but certainly not least, the people who do the hard and difficult work, the Crew Members. Now that we have all the surrounding structures explained, we can add the people that *ACTUALLY* make the product work. Not as an afterthought, but as the main reason for having all of the other structures in the first place; to enable a nurturing and productive environment that allows every Crew Member to contribute and grow as a team member and as an individual.

In Closing

UnFIX is more than just the patterns, but in this article I focused mainly on the patterns as a way of describing our scaled product team setup in a more generic way. Applying these patterns to visualize all of ‘Digital Products’ as a department within VRT could be a next step. I’m looking forward to learning more about unFIX in the upcoming workshop in Delft (NL)!

When working in an agile context, a lot of the unFIX patterns will probably feel very familiar. They make for a flexible toolkit that can be used to describe a wide variety of organization forms. When considering to introduce an organizational ‘lingua franca’ in a department or entire company, unFIX is definitely something to consider!