Skip to main content

Contributing to the ETM

This section provides documentation to Quintel employees, and outside 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.