Team Topologies - Organizing for fast flow of value

View Original

What is a Thinnest Viable Platform (TVP)?

Matthew Skelton and Manuel Pais - co-authors of the book Team Topologies - discuss the concept of a Thinnest Viable Platform (TVP) and what this means for organizations building and running modern software systems.


Update: see the canonical example of a Thinnest Viable Platform on GitHub.


Transcript:

Matthew Skelton:

The interesting thing about platform is - it's maybe not the platform's of the past, because platforms of the past often in many organizations were great big great massive things, very difficult to use - black boxes and teams had to use them - it's mandatory to use these things and it was awful to use in many cases, not everywhere but often these platforms are just awful.

The platforms we're talking about have placed a strong focus on developer experience, they see other development teams as their customers effectively. They run the platform as a product or service really thinking about what's their experience in using them. In fact, some organizations go so far as to use NPS - Net Promoter Score to rank how well the platform is is behaving in terms of developer experience, which I think is great.

A platform itself might have a kind of fractal, or a bit like a Russian doll effect where inside the platform there are stream-align teams because that's part of a product you're building, so you use the same kind of topologies from higher up the organization level within the platform and that's something that is often missed in organizations - the way we should build a platform is software. We use software development techniques that we know about - TDD, but we also use agile software delivery inside that platform.

At the same time, we're not aiming to build a massive platform. We're aiming to build what we in the book call a thinnest viable platform TVP. This TVP could be just a wiki page if that's all you need for your platform - it says we use this cloud provider and we only use these services from a cloud provider and here's the way we use them. That might just be a wiki page - that might be your platform.

If that's all you need don't build anything else, you're still running on a platform but you don't make it any thicker than necessary, so that's why it's kind of thinnest viable platform. Obviously, as you enterprise gets bigger and bigger or you've got more complicated challenges you'll need to build some stuff out, but the focus is always on stream-align teams as the customer: what's the developer experience, making sure we're using agile software delivery practices within the platform to build it itself.