Managed platforms are a very effective and pragmatic way to drive systematic reuse across an organization. Managed platforms can provide a number of benefits ranging from simplified developer experience, out of the box productivity components and tooling, and most importantly, a whole host of non-functional concerns being addressed in an integrated fashion. Good managed platforms exhibit some common traits. They:
- Solve a specific problem really, really well
- Are easy to signup, develop in, and use via a developer SDK
- Provide a number of integrated components that address specific pain points
- Are extensible and provide clear and safe injection points via a public, published, well maintained API
- Free the developer from having to procure hardware or orchestrate deployment activities
- Make it easy to report bugs, fixes, and contribute enhancements
The best part of managed platforms? They can dramatically alter the productivity curve for your development teams. Every developer doesn’t have to worry about high availability, horizontal scaling, capacity management, public APIs, version management, backward compatibility, and ongoing care and feeding of core reusable components. The platform provides value and more specifically peace of mind via powerful abstractions.
This isn’t an exhaustive list but given the general push towards cloud based architectures, good platforms will give your teams much more than just reuse! I will elaborate on each of the above traits in follow up posts.