Platform
Majority of energy will go towards creating shared features that can be used across projects.
These features must be:
- Self sustainable
- Project agnostic
- Extremely well engineered
- API centric
- Backwards Compatible
Self sustainable
Every Platform Feature contains all the functionalities needed to implement the desired outcome.
This refers ONLY to the necessity of using some other Platform specific features.
Platform Feature CAN use other Platform features.
For instance, we create a User Invitation Feature. That feature CAN use Mail Sending Feature.
Platform Feature must NEVER use Project specific code. If such code is required this must be provided via Interface that Platform Feature exposes.
Project Agnostic
Platform Feature MUST NOT KNOW and MUST NOT CARE as to what Project it's used in.
Platform Feature knows only about it's abilities and the abilities of other Platform Features.
Platform Feature must NEVER use Project specific code. If such code is required this must be provided via Interface that Platform Feature exposes.
Extremely well engineered
Platform Feature quality will be under heavy scrutiny. This code will be the core that will enable major efficiently in creating new Projects and Products.
Use whatever tools and processes necessary to maintain engineering quality of these features.
API Centric
Platform Features must expose well designed and well documented API's that Projects can utilize.
Use Cerebro to document every Platform Feature capabilities and add examples.
Backwards compatible
Wether we use API versioning or just robust backwards compatibility we'll need these features to be extremely reliable.