Skip to main content

Contributing to the ETM

This section provides documentation to Quintel employees, and external modellers and developers who may wish to contribute to the ETM.

Contribution principles​

The ETM is built and maintained according to the principles listed below. These should be adhered to when contributing to the model.

1. Contributability​

The codebase should not depend on knowledge held by a single person. Niche technologies and patterns require an explicit, documented justification. The more specialised the choice, the higher the bar.

2. Simplicity and modularity​

Prefer a general solution over a specialised one, and keep components loosely coupled so they can be swapped without cascading changes. A well-supported open-source library is preferable to bespoke code.

3. Reliability and testability​

Predictable behaviour is established through tests: unit tests for code-level confidence and integration tests for system reliability.

4. Traceability​

Code should record why it exists, not only how it works. A change should be traceable from a slider interaction, through the backend logic, to the underlying data.

5. Observability​

Systems are designed to be inspected and explained at runtime: query logs expose backend behaviour, server-level monitoring supports detection and diagnosis, and front-end visibility surfaces unexpected behaviour rather than hiding it.

6. Usability​

The ETSource boundary is a maintained interface. Robust, general methods belong in ETEngine rather than offloaded as complexity in ETSource. Modellers are involved early when a change affects that boundary.

7. Performance​

Interactive use depends on fast feedback. Performance work targets where the user experiences delay and prioritises the exploration-feedback loop over raw computation speed.