Page cover

Last updated · 2 July 2024

Delivery

Riding the release trains at Significa.

All aboard! At Significa, we avoid big-bang releases at all costs. In exchange, we prefer the concept coined by the Linux development model : release early, release often.

That’s where release trains come into play. Well, don't mistake this for your everyday commute here in Porto. Our release trains are more like the Japanese Metropolitan of software delivery – sophisticated, efficient, and timely.

So, what’s a release train, you ask? Citing the all-mighty Martin Fowler here:

“Release on a set interval of time, like trains departing on a regular schedule. Developers choose which train to catch when they have completed their feature”. Martin Fowler

Scheduling and synchronisation.

Or, in other words, the timetable of our trains.

To be fair, schedules are sacred here. Our release trains run on a recurring schedule, ensuring that every stakeholder can plan their work ahead of time, especially the Quality Assurance team, which can vet the departure of a train if quality standards are not met.

This synchronisation is key. Miss a timing, and you risk delaying the whole train, creating a domino effect of rescheduling nightmares.

As a safety measure, when it comes to software, releases should not be done on the last workday of the week nor at the end of a day’s work to ensure that if a problem arises, we don’t have to burn the midnight coal to fix it.

Get the train moving.

Or, an even better analogy: to fire those engines.

Our team has established a standard and simple process for delivering that anyone can follow to get the train moving. We usually have two types of delivery: design and development.

The design team usually delivers links to the flow prototypes, alongside a video recording with a voice-over explaining the flow, the decisions, and any detail that might go unnoticed.

As for the development team, freaks as they are about efficiency, they have devised an automatic mechanism that consists in creating a tag on the GitHub repository that will set in motion all cranks and shafts of the Continuous integration and delivery .

After creating the release tag, you can sit and watch the train leave the station.

Communication.

Or, we swear this is the last analogy, the coal that fuels our trains.

Communication is the coal that keeps our release trains chugging along. Designers, developers, testers, everyone adds their bit of coal to the furnace. It’s a collective effort, with each team member understanding their role in ensuring the train leaves on time.

Communication is more than just talking. It’s about ensuring that every stakeholder knows exactly when a release is being done so that they can gear up all pieces of the machinery to set the whole thing in motion. For example, this allows the QA team to plan ahead for testing and making sure that quality standards are enforced on every release.

But your work does not end after a release is successfully done! Make sure you inform every single stakeholder after each release, usually with a note about what was released.

Flexibility.

If there's one thing predictable about project management, it’s that it is unpredictable. Sometimes, we need to switch tracks. Quickly. This flexibility is a crucial aspect of our release trains. Whether it’s a change in project scope or an unexpected technical challenge, we’re ready to change course without derailing the entire process.

For example, if extra release trains need to leave the station, we are flexible enough to provide that. If a last-minute bug is found, we are flexible enough to fix it A.S.A.P., test it, run quality assurance, and schedule another train to depart with said fix.

Quality.

Quality is non-negotiable. Every release train departing from Significa promises a first-class experience. Rigorous testing and quality checks are conducted in every carriage… we mean, feature… ensuring our deliverables aren’t just functional but exceptional.

Continuous delivery.

The beauty of our release trains? The journey never really ends. With every release, we’re already loading the next carriage with new features and improvements. It’s a continuous cycle of improvement, innovation, and delivery.