As I am working on designing and launching System6 and building the different brands, I am hitting a common problem among organizations which is between functional and unit-based organizations. This gets exacerbated because there is a lot of common code shared across different brands.
Before we get into the gist of the problem, a unit organization is based on sales, marketing, finance, etc. being individual teams. A functional organization is a team that has a combination of different disciplines working together.
YerraCo is built as a hierarchy. They are:
The goal of the Head is to do the following:
- Provide a shared infrastructure (AWS Infra, Django monolith) called System6
- Provide a Playbook for execution
- Finance (Taxes, etc.) and Legal
But the problem has to do with Verticals and Brands. Should a unit structure where all the models are stored in the Verticals, or whether to use a functional structure and have more models live in the Brands? While a sizable amount of shared resources are expected for certain resources, such as sharing marketing and sales resources through the Verticals, certain resource features are unique to a Brand. Also, it may make sense for a Brand to have its own sales team which works independently to move things along.
Since we are building on a monolith and the Verticals and Brands live in the same code base I am thinking the best way to move forward is to experiment at the Brand level. Have Brands contain all hypotheses and if the hypothesis is successful move the code/best practice to the Vertical.