Theodo France

Theodo France

IT / Digital, Logiciels

Paris, Casablanca, London, Lyon, Nantes

Explorez leurs posts

Parcourez les posts publiés par l’entreprise pour une immersion dans leur culture et leurs domaines d’expertise.

Theodo Named 2025 Google Cloud Services Partner of the Year

Las Vegas, April 8, 2025 Theodo today announced that it has received the 2025 Google Cloud Services Partner of the Year. Theodo is being recognized for its achievements in the Goog…

04/07/2025

REX après la migration d’une feature Android/iOS vers KMP

Dans un premier article, nous avons exploré comment migrer progressivement une application native Android/iOS vers Kotlin Multiplatform (KMP). Si vous avez suivi ce guide, vous ave…

04/07/2025

ShedLock : Gérer efficacement les tâches planifiées dans une architecture multi-instances

Introduction Pour les applications d'entreprise, en 2025 l’exécution de tâches planifiées est un besoin courant : génération de rapports, traitements par lots, synchronisation de d…

04/07/2025

Comment diviser par 2 votre temps de CI grâce à ces simples astuces

Chez Theodo HealthTech, notre politique est de créer un code de qualité tout en respectant nos délais de livraison. Cependant, pendant trois sprints consécutifs, nous avons livré d…

08/04/2025

How QRQC helps me better manage bugs on my project?

As a software developer, you spend most of your time delivering code and then fixing bugs you introduced in your code. The Pareto principle is a great way to represent our day-to-d…

04/07/2025

How we migrated from AWS Glue to Snowflake and dbt

Today, I’ll tell you about our ETL migration from AWS Glue to the Snowflake and dbt modern data stack. My team’s mission is to centralize and ensure data reliability from multiple…

04/07/2025

Sécuriser les partages Notion : guide pour tous

Chez Theodo Fintech, nous avons fait de Notion notre QG digital. Documentation produit, projets tech, comptes rendus, référentiels clients ou financiers… tout y passe. Et c’est bie…

04/07/2025

Construire un produit Gen AI : le guide de survie pour les PMs

Bienvenue dans l'ère de l'IA générative, où les machines créent du contenu de manière autonome. Pour les product managers (PMs), cela représente une révolution autant qu'un défi. L…

08/04/2025

Qu’est-ce que le scaling ?

Une bonne application est une application qui tient sa charge d’utilisateurs, notamment grâce à un scaling controlé. Dans cet article nous aborderons ce sujet, et plus particulière…

04/07/2025

How LLM Monitoring builds the future of GenAI ?

Discover how Langfuse offers secure, open-source monitoring for LLM and GenAI solutions. Large Language Models (LLMs) are popping up everywhere and are more accessible than ever. W…

04/07/2025

Les annotations java custom pour respecter l’architecture hexagonale

Le problème que l’on veut résoudre Lorsque l’on développe une API avec Spring Boot, il est fréquent d’utiliser les annotations fournies par le framework, telles que @Service, @Comp…

04/07/2025

Le kit de survie du Product Manager responsable en 4 étapes

Alors que j’étais tranquillement en train de me laisser charmer par la dégustation gratuite de tofu fumé de mon Biocoop l’année dernière, une soudaine prise de conscience a heurté…

08/04/2025

Faites des Plugins pas la Guerre: REX sur ma bataille pour écrire un plugin

Imaginez commencer chaque projet avec tous les outils configurés et prêts à l’emploi. Le rêve, non ? En tant que développeur Android, j’ai toujours eu à portée de main les outils n…

04/07/2025

Don’t use Langchain anymore : Atomic Agents is the new paradigm !

Introduction Since the rise of LLMs, numerous libraries have emerged to simplify their integration into applications. Among them, LangChain quickly established itself as the go-to…

04/07/2025

Optimize Your Google Cloud Platform Costs with Physical Bytes Storage Billing

In today's data-driven world, cloud providers are essential for efficiently managing, processing, and analyzing vast amounts of data. When choosing one such provider, Google Cloud…

08/04/2025

Tech Radar Cloud

Ce Tech radar regroupe une cinquantaine de technologies Cloud et DevOps éprouvées par les experts de Theodo Cloud durant plus de 4 ans de projets. Téléchargez le 2ème volume de not…

08/04/2025

How QRQC helps me better manage bugs on my project?

Theodo France

How QRQC helps me better manage bugs on my project?

As a software developer, you spend most of your time delivering code and then fixing bugs you introduced in your code. The Pareto principle is a great way to represent our day-to-day life:

Capture d’écran 2025-07-04 à 10.57.12.png

But let’s face it, fixing bugs is not the best part of the job. After fixing it, you may wonder how you can prevent future occurrences from happening.

At Hokla, we design and build medical devices for our clients. Thus, quality management is at the heart of our work. That is why, we pay particular attention to the way we manage our bugs. We added an extra step in our bug management process: take a step back, analyse, and find a poka-yoke to kill the bug forever. A poka-yoke, what? Read this article and find out.

In two words, the key points of the Lean methodology:

The Lean methodology is a systematic approach to identify and eliminate waste within a process. It originated in the manufacturing industry and was developed by the Toyota Motor Corporation. It has since been applied to a variety of industries, including software development and healthcare.

The aim of the Lean methodology is to create a highly efficient and effective process that delivers maximum value to the customer with minimal waste. This is achieved through a focus on continuous improvement, collaboration, and the elimination of non-value-added activities.

Lean methodology has been widely adopted and adapted by organizations around the world,  Facebook or Nike to name but two. It has proven its effectiveness in reducing waste and improving processes, leading to increased efficiency, higher quality, and lower costs. Its success has been demonstrated countless of times through its application. Here, it gives us tools to better manage our code quality.

So what’s a poka-yoke in all that ?

Poka-yoke is a Japanese term which means "mistake-proofing". It is a quality control technique used to eliminate or minimize the occurrence of errors in a manufacturing or business process.

The goal of poka-yoke is to make it impossible or very difficult for an operator to make a mistake, so that errors are prevented before they occur. It helps to create a safer and more efficient working environment.

A very simple example is the USB drive: how it is manufactured means that the user can only insert in one way.

What’s our bug process management ?

Our bug process management puts into practice the methodology (when in doubt, always refer to the methodology :) ).

→ A bug is reported.

→ A developer investigates the bug and finds a way to fix it.

→ Afterwards, the real work begins. It’s time to shine: the developer does a QRQC.

Capture d’écran 2025-07-04 à 10.57.42.png

What is a QRQC ?

QRQC stands for “Quick Response Quality Control”. It is a concept inspired by the Lean methodology. Briefly, the idea is to look at the reality of the field and to react quickly when an issue occurs. It combines two control response speeds:

  • a quick response, to put out the fire.

  • a long term response, the one we want!

And now, let me explain how we took this concept and made it our own.

Capture d’écran 2025-07-04 à 10.58.11.png

Let’s go through an example!

To give you some context, I am working on an app which takes part in the digitalisation of clinical trials. A patient enrolled in a clinical trial uses the app to provide data to researchers.

Requirement: The example is specific to redux and redux saga. It is better to have knowledge on how redux and saga work. However, the article aims at going through the QRQC steps, so this is the most important thing to understand.

1) Problem

The app has two modes: one of them available only when the user is at the hospital, “hospitalMode”.

The problem we encountered is that the screen is flickering when the user leaves the hospital mode.

2) Code which introduced the defect

Saga allows to manage Redux side effects. Here, it is used to dispatch several actions to update the redux store when the user leaves the hospital mode. The way Redux is implemented, when an action is caught and a prop changed, it returns a copy of the whole store. Here, each action updates a different part of the store, which leads to multiple re-renders.

Capture d’écran 2025-07-04 à 10.58.34.png

3) Code which fixes the defect

Redux documentation gives the solution which is to “batch” the actions to avoid unnecessary re-renders. With batching, the updates on the store are grouped and the updated store is only returned once. It can be done only if the actions are independent from one another.

Capture d’écran 2025-07-04 à 10.58.53.png

4) What is the main reason why the defect occurred?

After each action, the redux state is updated and returned, leading the components to re-render. The successive updates cause the app to be in an invalid state → it is visible because of the screen style ⇒ the background color is different in the two modes, it switches back and forth between the two.

5) What is the incorrect gesture/conception that raised the issue?

Poor knowledge on redux sagas good practices and especially on how to update the redux store properly. (If you’re interested, the redux guide: Redux Good practices).

6) What is the main reason why the defect had not been detected earlier?

It is not a functional error so it is hard to detect.

7) Countermeasures

A quick response is to train the software engineering team on redux saga good practices. Should we stop here ? Two months after the training, the bug will likely reoccur, why? Developers are humans, and humans make mistakes.

The long term solution we implemented is an ESLint rule. We created a rule which checks when two “yield put” are called next to each other. It informs with a warning the developer that they should batch actions if possible. This is a poka-yoke, that’s how you kill a bug forever!

Find our custom ESLint rules on the hokla-org GitHub!

Conclusion

All in all, a QRQC is a framework which allows the developer to analyse bugs. The effectiveness of the method has been proven countless of time. Besides, if done correctly, a QRQC is useful to report and share your work to others.

Keep in mind that to implement a more sustainable solution, a great (and powerful) tool is to create your own custom ESLint rule. Even though, doing a technical training is highly recommended, it is not what will kill the bug forever.

What about you, are you ready to tackle bugs forever ?

If you want to learn about another lesson drawn from a QRQC, check out this article.

Article rédigé par Marie Uffoltz