
Développement itératif : Winter Challenge 2024 par CodinGame
En cette fin d’année 2024, CodinGame organise un nouveau challenge pour les développeurs du monde entier. Cet événement nous met en compétition pour coder le meilleur comportement d’expansion d’un organisme vivant. En tentant de résoudre ce problème, j’ai remarqué que la stratégie d’onboarding des participants s’inspire fortement des principes du développement itératif. Dans cet article, je vais expliquer en quoi consiste cette approche et comment elle est mise en pratique dans le cadre du Winter Challenge 2024.
Qu’est-ce que le développement itératif ?
Comme je l’explique dans mon livre « Apprendre à programmer ses premières applications », le développement itératif est de plus en plus populaire et privilégie des équipes projets plus petites et plus agiles.
Dans le cadre du développement itératif, le projet est découpé en cycles courts, appelés itérations. Chaque itération consiste à développer, tester et livrer une partie du produit final. Les retours des utilisateurs et les résultats des tests sont ensuite utilisés pour ajuster et améliorer le produit dans les itérations suivantes.
Avantages du développement itératif
Cette stratégie de développement est appréciée pour plusieurs raisons :
- Flexibilité
- Réduction des risques
- Amélioration continue
Flexibilité
Le développement itératif permet d’intégrer les retours des utilisateurs et de s’adapter efficacement aux changements. Cette flexibilité est nécessaire dans un environnement où les exigences peuvent évoluer rapidement. En répondant rapidement aux retours, les équipes peuvent s’assurer que le produit final répond mieux aux besoins des utilisateurs. De plus, cette approche permet de prioriser les fonctionnalités les plus importantes et de les livrer en premier.
Réduction des risques
Un avantage des cycles courts est la réduction des risques. En travaillant par itérations, les équipes peuvent détecter les erreurs et les incohérences dès les premières phases du projet. Cela permet de corriger les problèmes avant qu’ils ne deviennent trop coûteux ou complexes à résoudre.
Amélioration continue
Le développement itératif encourage une amélioration continue en permettant aux équipes de peaufiner et d’optimiser le produit à chaque itération. Chaque cycle offre une opportunité d’évaluer les performances, d’identifier les points faibles et de mettre en œuvre des améliorations. En intégrant régulièrement des retours et en ajustant les fonctionnalités, le produit final est souvent plus robuste et mieux adapté aux besoins des utilisateurs.
The Winter Challenge 2024 par CodinGame
Comme mentionné précédemment, le Winter Challenge 2024 organisé par CodinGame propose une excellente stratégie d’onboarding des participants. Laissez-moi vous expliquer en quoi cette approche rappelle celle du développement itératif.
Première itération : l’expansion standard
Cette première itération nous invite à coder un comportement d’expansion avec des organes basiques que nous pouvons créer à partir de protéines. Les maps mettent à disposition des sources de protéines que nous pouvons collecter pour prolonger notre expansion.

Pour valider cette étape, j’ai codé un simple algorithme de recherche de chemin en « L » qui me permet de me déplacer vers la prochaine source de protéines.
Cet algorithme de path finding est simple, mais suffisant pour se familiariser avec l’épreuve et valider le premier niveau.
Deuxième itération : la moissonneuse
Dans cette deuxième itération, le jeu introduit un nouveau type d’organe : la moissonneuse. Cet organe permet de collecter les protéines en plus petites quantités, sans épuiser la source.
Pour réussir cette étape, j’ai dû adapter mon algorithme pour moissonner les protéines. Cependant, sur certaines cartes avec peu de sources de protéines, l’organisme ne grandissait plus car il n’y avait aucune autre source à aller chercher.
J’ai donc complété le comportement de mon algorithme pour qu’il continue à s’étendre en essayant de s’éloigner du corps principal.
Les itérations suivantes
Les deux itérations suivantes introduisent également un nouvel organe (le tentacule, puis la spore). Ces nouveaux éléments ajoutent de nouvelles possibilités pour bloquer la progression des autres organismes ou se déplacer plus rapidement.

Pour chacune de ces nouvelles itérations, nous sommes invités à adapter notre code pour étoffer notre stratégie d’expansion afin de valider les niveaux suivants.
L’analogie avec le développement itératif
En décrivant ces premiers niveaux, vous avez peut-être remarqué que la progression du Winter Challenge 2024 est similaire à celle du développement itératif.
Ce challenge nous positionne sur un projet dont la solution finale est très complexe. Nous revêtons le rôle de développeur et chaque niveau correspond à une itération. Nous commençons par une version minimale du produit que nous pouvons tester en conditions réelles. À chaque étape, nous complexifions notre solution pour prendre en compte les nouveaux besoins et contraintes.
En plus de nous offrir un défi amusant, le Winter Challenge 2024 permet aux développeurs de s’initier au développement itératif. Cette compétition est une opportunité idéale pour se préparer à cette méthodologie ou pour s’en inspirer sur nos propres projets.
Conclusion
Le développement itératif est une approche puissante qui permet de créer des produits robustes et adaptés aux besoins des utilisateurs. Le Winter Challenge 2024 de CodinGame est une excellente occasion de mettre en pratique ces principes tout en s’amusant.
Je vous encourage vivement à participer à cet événement pour vous former au développement itératif et améliorer vos compétences en programmation. C’est une opportunité unique de travailler sur un projet stimulant et ludique.
N’hésitez pas à partager votre expérience et vos stratégies en commentaire. Bonne chance à tous et que le meilleur code gagne !