Pycon Sweden 2024

Kristoffer Nordstrom

Kristoffer Nordström is a test developer who has worked with telecommunications systems, distributed compilers, cloud technology, smartphone OS development, embedded systems, and much more.

As a testing devotee and a member of the test community, with his own company Kristoffer consults and teaches the course Python for Testers because he believes in tools-assisted sapient testing. Over the years he has seen the immense value of testers learning how to distill large amounts of information into the so-called “big picture,” and he advocates for learning the soft skills necessary to collaborate with the people making up the organization.

Apart from being an avid software tester, Kristoffer is also a sci-fi reader, lamp maker, and craftsman.


Session

11-15
16:00
30min
Boring Releases: How We Ship Every Week Without Drama
Kristoffer Nordstrom

In this talk I want to tell you the story of how my best friend pulled me into working with a customer because he, the architect, needed "an adult person in the room" before scaling the team. I want to talk about how we built the back-end team of a Django system, added order, structure, and collaboration, where there was loose coordination between individuals spread out globally before.

Our mission: to introduce stability, structure, and "boring releases" to a Django-based project while releasing frequently. Because quite frankly, we're too old for adrenaline-filled midnight deployments.

Small controlled releases, incremental improvements to development and test environments, and smooth automation that allows testing almost anything locally, in CI, or in test environments. Using Jenkins and Invoke (pyinvoke.org) we have setup multiple automated "full" test environments for acceptance testing and to reproduce hard-to-analyze bugs - and don't get me started on how valuable having nightly, fresh, and PII cleaned production data ready at our fingertips is.

Releases every week, over and over again, wouldn't be possible with loose coordination though, we have workflows that ensure we keep our house in order, from capturing requirements and making mock-ups, to how our project board, release logs, and release announcements work.

I'm going to talk about how I built in support for automatically created test data in our Django back-end with the coaching from my team of developers, and how I learned to become best friends with the Django shell to manipulate the system under test to create and inspect resources.

This is a story and about how our team - distributed over three continents - built our way of working to go fast and to ship boring, predicable releases, every single week since 2021 - excluding holidays.

Auditorium