In a previous post I talked about API-first Platforms, this is a continuation…
Use your Brain
After a company has found Product Marker Fit the Research and Development teams (Product, Design, Engineering) need to focus on the growth and scale phase.
One of the key aspects to make this next iteration succesful is to make sure you have clear boundaries between your Platform and your Clients. Might be as simple as technically removing any if/else statements that are part of the business model inside your templates and move them one level up to the services or views, or as complex as building a layered architecture where your client applications (web, mobile, CLI, desktop) are part of an edge network sitting in the external infrastructure of the company’s systems.
The key part is that your business logic is detached from your presentational logic. This would allow the introduction of a multi-client support, better authorization and access control systems, a clearer data model and a reduction in bugs introduced by new features that need to share the same business logic. The team should develop APIs that express the Platform’s business data and public actions and allow the Client to drive how are those actions triggered and how the data is presented.
The back-end becomes the brain. The front-end becomes the face.
Show your Face
Your Client Applications (Web, Mobile, CLI, Desktop) are an abstraction of the data and the actions that the platform performs. So, as with any abstraction, it is crucial that you isolate it to the minimum required. As the face of the Platform, the client applications should not carry any business logic, perform platform level tasks, nor store data that belongs to the brain. Making this distinction is easy, just answer to the question: “Can I build a new client easily?”. If the answer is “NO”, your brain and your face are indistinguishable.
When you work on your Face (Client Apps), remember to focus on usability, accessibility, and clarity. It would be the only abstraction that a customer will have contact with. They don’t know about your fancy classes or your event driven architecture or your distributed storage system. They just see the Face and will judge the whole from this single part. So when working with the Face, make sure you make it memorable.
In short, make sure your back-end systems and your front-end clients are decoupled. Keep the business logic in the back, build great visual abstractions in the front.