Skip to content

0.5. Engineering practices

Building complex systems with code is not a new concept - it has been done reliably for decades by software engineers.

Software engineers are known for creating tools, patterns, and processes that make their work easier, more reliable, and more scalable.

When building analytical systems with code, we can borrow a huge range of practices from the world of software engineering to make our workflows more efficient, maintainable, and adaptable over time.


Version control

Version control systems like Git allow you to:

  • Track every change to your codebase over time.

  • Revert to earlier versions if something goes wrong.

  • Work collaboratively with others without overwriting each other's work.

  • Create separate branches for testing new ideas without affecting the main code.

In an analytical context, this means you can maintain a clear history of model changes, parameter adjustments, and data transformations - all of which are crucial for auditability in regulated industries.


Building for future maintainability

A quick solution that works today can easily become a burden tomorrow if it’s hard to understand or modify. A lot more time is spent ready code than writing it. Giving thought to how easy it will be to continue working on in the future and building accordingly saves large amounts of time in the long run.

Maintainable code is:

  • Easy to read and follow.

  • Modular - split into small, reusable pieces.

  • Well-documented - so future analysts can follow your reasoning.

  • Consistent - following agreed naming conventions, file structures, and methods.

When you expect pricing models, data sources, or business requirements to evolve, designing for easy updates is essential.


Writing elegant processes and code

Elegance in code is not about making it clever or complex - it’s about making it clear, efficient, and a easy to work with.

This involves:

  • Using clear variable and function names.

  • Avoiding duplication by creating reusable functions.

  • Writing code that explains itself, reducing the need for constant comments.

  • Keeping logic simple and avoiding unnecessary complexity.

Elegant code saves time in the long run, makes onboarding new team members easier, and reduces the risk of introducing errors.


Automated testing

Automated tests check that your code behaves as expected - both now and after future changes.

For pricing work, this could mean:

  • Verifying that a premium calculation returns the correct result for a known set of inputs.

  • Ensuring that new model parameters don’t accidentally break existing business logic.

  • Catching unexpected changes in results when data or code is updated.

Testing creates confidence and reduces risk when deploying updates to production.


Documentation

Good documentation ensures that both current and future team members can understand:

  • What your code does.

  • How to run it.

  • How to update it safely.

In regulated industries, documentation also supports compliance by making your methodology transparent and repeatable.


Code review and collaboration

Code reviews - where another person checks your work before it goes live - help:

  • Catch mistakes you may have overlooked.

  • Share knowledge across the team.

  • Improve code quality through constructive feedback.

Even small pricing teams benefit from having a second pair of eyes on important changes.


Borrowing from DevOps and automation

In addition to core engineering practices, there are many tools and approaches from DevOps that can be applied to analytical work:

  • Continuous integration (CI) to automatically test changes before merging them.

  • Continuous delivery (CD) to push approved updates into production reliably.

  • Automated deployment so pricing updates move smoothly from development to production.

These techniques help ensure reliability, speed, and quality in your pricing operations.


Why this matters for pricing teams

By adopting software engineering practices, pricing teams can:

  • Reduce manual work through automation.

  • Collaborate more effectively with consistent workflows.

  • Minimise risk of errors in complex calculations.

  • Adapt faster to market changes and regulatory updates.

Good engineering habits turn pricing code from a one-off project into a sustainable, scalable capability.