Temporal design discussions


A recurring theme and in reality a pain point over the past year for the team and I has been the challenge of working on designs for a feature set that has an ultimate vision and a series of milestone releases to get us there. It hasn’t be uncommon for one person to be talking about the long term vision while another is focused on the next milestone and a third is trying to figure out how to implement the current release. This has led to a quite a bit of confusion, frustration and difficulties with alignment.

One tool that I have found useful which was introduced by one of the senior engineers on our team was to produce a living document that explicitly calls out and names each of the temporal checkpoints for the project along with links to design documents specific to the agreed upon scope for that checkpoint.

This has been helpful in a few ways, it allows us to used a shared language in our discussions and anchors us to a shared temporal understanding of the problem and solution space. It gives the GTM and product management teams a clear understanding of what to expect and when. It also allows us to have more focused design discussions that are scoped to the current milestone while still being able to reference the long term vision.

Another useful idea that we haven’t really discussed is having temporally anchored meetings. For example, call out that a meeting is focused on the long term vision or the next milestone. This can help set expectations and keep discussions on track. I think separating these discussions would help avoid temporal bleeding which I’ve observed some people struggle to compartmentalize during discussions.

It’s also true that the audiences for those discussions changes depending on the temporal scope, though I would caution against limiting group sizes too much as I think having more context empowers individual decision making especially at the code architecture level. For example a great engineer can understand the scope of a ticket they’re delivering now, but also understand how it fits into the next milestone and the long term vision. This helps them make better decisions about tradeoffs and implementation details. This is a desirable team trait to cultivate and allows growth minded engineers the opportunity to lean in.

Overall, I think being explicit about the temporal nature of our design discussions and using tools like living documents and temporally anchored meetings can help us navigate the complexities of building a product with a long term vision and multiple milestones. It helps us stay aligned, focused and ultimately deliver a better product.