This is an article written by Adrian Cockcroft (@firstname.lastname@example.org) that I want to remind by a couple of reasons: the map, and the principles.
- Principle #1: It isn’t one platform, it’s layers of platforms that need different specialized knowledge so its usually many platform teams.
- Principle #2: The platform layers are dynamic, evolve over time and tend to move “up the stack” as they add functionality, and shed capabilities that are subsumed by lower level platforms.
- Principle #3: The interface to a platform should be driven by the users of the platform. A platform team should include a product manager, (or the team lead should perform that function) have a roadmap, and have mechanisms for prioritizing incoming requests.
- Principle #4: A very clear distinction should be made between building internal platforms optimized to change quickly to meet specific business needs, and building externalized platforms optimized for long term stability, where you may not know who or what depends on the platform, and can’t always ask them to change with you.