Published on

Always start the same way

When every application is born with the same structure, anybody on the team knows where everything is in any repository. The application template is the most modest piece of a platform and one of the biggest time-savers.

Service line Platform Engineering

Ten applications, ten ways

Open the repositories of ten applications in the same organisation and you will probably find ten different ways of doing the same thing: documentation in different places (or in none), different deployment scripts, folder names invented by each person. Every time somebody moves project they lose days learning where everything is.

A template, not a guide

The solution is not a style guide nobody reads. It is an executable template: a command that creates the new application with everything it needs from the first minute.

Born with everything in its placeThe structure of an application created from the template, annotated.PLATFORM · TEMPLATEBorn with everything in its placemy-application/STATUS.yamlphase, gates, next stepBITACORA.mdwhat happened, session by sessiondocs/SPEC.mdwhat is built and what is notdecisiones/decision recordsui/interfaceapi/service (switched on if needed)deploy/same mechanism as the restconfig/dev · uat · prosame shape, different valuesN100F · n100f.com

What a well-thought-out template brings:

  • Status and logbook for the application from day one (what phase it is in, what was decided).
  • A documentation folder with the specification and the decision records.
  • A standard code structure for each part (interface, service, data).
  • Deployment already prepared, with the same mechanism as every other application.
  • Per-environment configuration, separate from the code.

Rules for making it work

  1. The template is a product too. It is maintained, versioned and improved with what the teams learn.
  2. Creating an application must not overwrite anything existing. If the registry already has data for that application, the template respects it instead of overwriting it.
  3. What is optional is switched on, not deleted. If an application does not need a database, the template does not deploy one, but the structure is ready in case it needs one tomorrow.
  4. Older applications are brought in with the same skeleton, even if little by little.

An application born from the template already knows where its documentation goes. Next, the organisation needs to know where the application lives. The registry solves that.


How we apply it: Platform Engineering.

If your cloud cost keeps growing and nobody knows why, or your architecture depends on whoever built it, let’s talk.

Let’s talk