How Flip develops, tests and releases software

How we Plan and Build

Software Development Life Cycle (SDLC)

Flip has an Agile SDLC; this is a flexible, iterative approach to software development that emphasizes collaboration, adaptability, and customer satisfaction. It's a structured process for delivering software, divided into two week cycles called sprints. 

We promote continuous feedback and improvement, allowing teams to adjust plans and incorporate changes throughout the development process. The goal of Flip’s Agile SDLC is to break down projects into smaller, manageable sprints focussed on delivering a working version of the software, allowing for continuous feedback and improvement.

Development and IT Operations (DevOps)

Flip R&D (Research & Development) uses CI/CD (Continuous Integration/Continuous Delivery). This is a software development practice that automates the process of building, testing, and deploying code changes, making software development more efficient and reliable. It involves two main phases: Continuous Integration (CI) where code changes are frequently merged and validated, and Continuous Delivery/Deployment (CD) where the code is automatically released to users. 

  • Continuous Integration (CI): Developers merge their code changes into a central repository as often as possible. Automated builds and tests are then run to ensure the changes are compatible and don't introduce bugs. This helps identify and fix issues early in the development process.
  • Continuous Delivery (CD): Once the code has been successfully integrated and tested, CD takes over. CD automates the release of the validated code to a testing or staging environment. Flip’s CD pipeline requires manual approval before changes are deployed to Production environments (see “Quality Assurance”).

 

Quality Assurance and Release Process

Flip promotes Shift-Left in DevOps, meaning we move testing and quality assurance activities as early as possible in the software development lifecycle, rather than waiting until the end. This approach aims to catch and fix issues sooner, leading to faster development cycles, improved code quality, and reduced costs. 

In practice, this means that engineers are fully involved in solution discovery with Product Managers and Designers, helping to develop detailed test plans before the code is written. This not only helps to uncover edge-cases early on, but also helps to make coding more efficient and successful.

Flip has two different user front-ends: a native mobile app published to app stores, and a responsive layout Webapp used for desktop users. For each of these there is a slightly different SDLC process.

 

Webapp

The Webapp is not installed on user devices, it is accessed through a browser on the user’s device. Users are always accessing the latest release hosted on Flip’s servers.

image (3).png

  • Dev Sandbox: For each new feature, a dedicated development and test system is created, simulating a live Flip environment. During this phase, we develop unit tests and end-to-end tests, which provides a high level of automated and repeatable test-coverage.
  • Dev System (Master): After a full QA review, all accepted changes are merged to the Master development system. Deployment pipelines are tested, and any defects are reported back and reviewed on the Sandbox.
  • Staging system: Once a week, all updates to Master are pushed to our internal Staging environment. All Flip employees use Staging as our only collaboration and comms tool, so this doesn’t just test deployment pipelines, it also allows us to smoke-test Flip with actual users. Any defects identified are logged and sent back to be reviewed on the Sandbox.
  • Production system: after at least one week on Staging, a weekly controlled release is performed into Production. This update usually happens on a Monday between 8-10am CET, and affects all customers.
  • Ad hoc updates: occasionally (for instance when a defect is found in production), a more urgent “hotfix” needs to be applied to Flip. In this event, updates will be applied as soon as possible and will not follow the usual weekly-update cycle.

Mobile App

The mobile app is installed on user devices, either via MDM or directly through the respective app stores for Android and iOS.

image (4).png

  • Dev Sandbox: For each new feature, a dedicated development and test system is created, simulating a live Flip environment. During this phase, we develop unit tests and end-to-end tests, which provides a high level of automated and repeatable test-coverage.
  • Flip App Test Stage: After a full QA review, all accepted changes are merged to a release candidate (using TestFlight on iOS and Google Play internal testing on Android). This is used by everyone in R&D and a team of internal testers across Flip. This stage allows us to do manual testing before any deployments to production. Any defects identified are logged and sent back to be reviewed on the Sandbox.
  • “Flip App” Production Stage: When approval is reached across R&D, the mobile release is rolled out to production. This usually happens every two weeks, at which stage the Flip App is updated in both Android and iOS stores. All users of the Flip App will update at that point, either automatically or manually (depending on their individual device settings, or whether the apps are deployed via MDM).
  • Branded App” Production Stage: Flip offers the optional extra of a fully branded app experience (see [Branded App distribution]). In these situations, Flip automatically deploys the app and app update for the customer (Managed App Store distribution). Some customers take care of their own app deployment (Own App Store distribution). In this case, Flip provides them with an .ipa/.abb (iOS/Android) file to deploy in the app stores. The latest branded apps are released one week after the Flip app is rolled out to production. As soon as the update is available in the relevant app stores, users will update either automatically or manually (depending on their individual device settings or whether the apps are deployed via MDM).

Release Cycle overview

ReleaseCadanceVisual1-EN.png

 

How you can get involved

🧠 Get involved in what we build

Our processes are aimed at creating fast iterations and involving our users as much as possible, as early as possible, to build the most lovable product. So we love getting all your feedback and involving you in the process!

Go to [roadmap.getflip.com] to see what we’re working on. This will also show you what we’ve released recently, and you can upvote the things you like the look of.

You can also submit any ideas you want through the roadmap portal. We might not pick your idea, but if it gets prioritized, you’ll be one of the first person we contact to dive deeper, share prototypes, and bounce ideas around till we get it right.

📰 Get informed about what we’ve released

All updates are posted to our Changelog pages in our Helpcenter:

Mobile: Mobile App Release Notes

Webapp: Changelog

🚨 Stay up to date if things go wrong

As much as we’d like to be perfect, sometimes things go wrong. Our aim is to provide a stable and secure platform at all times to all users, so our Site Reliability Engineers (SRE) are always on call to make sure that when things go wrong, four things happen:

  • You know right away
  • The issue is fixed as fast as possible
  • You’re then given a full description of what happened
  • We harden our services so that the issue doesn’t happen again

Go to [status.flipapp.de] to see the current status of Flip services. Here you can also subscribe to updates, which ensures that you get all updates immediately.

Was this article helpful?

0 out of 2 found this helpful

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.