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.
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
- The template is a product too. It is maintained, versioned and improved with what the teams learn.
- 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.
- 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.
- 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.