Long term technical considerations

Hey, lovelies!!

We have recently started a cycle where one of the features is customer-facing analytics.

Even though we have started with a narrow scope, there are many decisions the developers working on this feature will need to make when choosing how to implement it, however, these decisions will be very costly to change in a future iteration of this feature, and require at least some clue as to what this feature would look like in 3-6 months.

How does the Shape Up approach of “6 weeks at a time” accommodates such features?

Thanks!!

2 Likes

If the majority of the work that needs to be completed for customer-facing analytics isn’t “vertical integration” (new slices instead of new layers) then I’d categorize it as “new product R&D” and it might not exactly fit into Shape Up without completing some engineering and design Spikes first. Whether that’s the case all depends on the boundaries of the pitch though. For example, (without knowing the problem statement) some questions that come to mind that would need to be investigated as rabbit holes and could help the team make trade offs up front

  • Does all the data we’re reporting on in the scope of this project already exist in the system or do we have to collect more data?
  • Can the first version just be downloading a .csv? Can we use a BI tool and just build a few reports?
  • Do we already have flexible enough user permissions to support policies for viewing aggregated data?
  • Is introducing new infrastructure in scope?
  • Are visualizations required?
  • How are analytics accessible by the user?
  • If the data is to be presented in a tabular format, how do we handle lots of rows? Do we already have components for pagination or scroll to load?

Etc.

2 Likes

Could you please specify the difference between slices and layers? Is it the matter of size, or is there some kind of easy way to draw a difference between them for my team?

Sure. The analogy is to think of the product like a cake, with layers. You might define the layers as “views”, “controllers”, “models”, for example. If some work involves adding a “new layer”, that requires “New Product R&D”. A new layer for this cake might be “iOS App”, or it could be “Background Processing”, etc.

A slice is how you want to eat the cake. When we’re building out a feature, we don’t want to work on each layer separately, we might never ship anything that way. Instead we work on “integrating one slice” at a time so we can ship smaller increments of work.

1 Like