Platform Principles logoPlatform Principles

A framework & approach to creating a platform that scales.

1. Contexts

Contexts - People, processes, information, platforms, in that order.

By prioritizing in this order :

  • People - People are more important, so the user experience is paramount.
  • Process - Processes are more important data. Business needs are greater than which database you use.
  • Information - Information is more important than the platform. Platforms come and go, but information can transform and go anywhere.
  • Platforms - Platforms serve the needs of information, which serve the needs of processes, which serve the need of people.

Technology serves business needs. Not the other way around. If you help the user achieve their goals, the platform is good.

2. Responsibility

The people, processes, information, and systems overlap across responsibility areas in an organization.

Think of this as a way to organize the company as a set of "microservices" that are leveraged across different parts of an organization.

Though there may be different responsibility areas, there is only one business platform.

3. Approach

Having an approach allows us to manage systems long term.

All platforms should be tracked and managed using a standard approach for setup, training, administration, configuration, and knowledge management.

Here are the suggested minimum viable responsibilities for managing a technology platform.

  • Setup - Setup procedures should be documented, scripted, and then automated.
  • Training - Training materials should available or referenced in a central place.
  • Administration - All administrative operations should be documented, scripted, and then automated.
  • Customization - All customization or special configuration should be documented, and part of a devops process.
  • Knowledge - All knowledge should be kept up to date as part of each sprint.

4. Framework

Having a framework allows us to use the best practices but the freedom to switch things out.

All components of the framework should be :

  • Distributed - All components should be distributed.
  • Realtime - All components should be realtime reactive platform.
  • Extendable - All components should be extendable and not closed.
  • Automated - All operations with data and dev should automated.
  • Monitored - All systems should be monitored with metrics and logging.

5. Tools

Templates and tools help us save time and be consistent.

Instead of reinventing the wheel, leverage tools and templates that already exist. There may have been someone else who has encountered the same business problems.

Don't reinvent the wheel, use:

  • Spreadsheets - Using web grid / online spreadsheets allow team members to organize critical information.
  • Documents - Using online document editors allow team members to brainstorm / document processes easily.
  • Kanban Boards - Kanban boards, regardless of which software you use allows you to visualize work in progress.
  • Wiki - Wikis are great for storing the most critical information in a way that is easily accessible
  • Doc Sites - Doc sites are like Wikis but have the benefit of being released /published via source control.
Written by Rahul Singh