BeMyApp : Réaliser deux applications iPhone en 48 heures

le 09/10/2012 par Cyrille Deruel
Tags: Software Engineering

Le week-end samedi 29 et dimanche 30 septembre se déroulait le concours BeMyApp Agency 2012, réservé aux agences ayant pour thème "48 heures pour sortir de la crise !".

OCTO Technology a participé et a réalisé 2 applications “BeMyGuest” et “CheckFood”

BeMyGuest

Cette première équipe était composée de 3 Octos (Ahmed, Eric et Maxence), de l’agence Heaven (Camille, Charlotte, Clément et Robin), de ZiRaNa (Zinedine et Raouf) et de La Ruche (Miora).

BeMyGuest vous permet enfin de partager vos repas en entreprise !

Si vous déjeunez souvent entre collègues avec un sandwich ou un plat chaud acheté 9€ chez le traiteur le plus proche, pourquoi ne pas ramener une de vos spécialités et la partager ? Une couche de gamification permet de réguler le mode de participation de chacun (offre et demande). Nous avons fait le choix de ne pas inclure de monétisation des plats pour laisser la liberté aux participants de gérer cet aspect comme ils l’entendent.

CheckFood

Cette application a été réalisée par 3 Octos (Olivier, Cédric et Mathieu) avec l'agence 5emeGauche (Arno, Isabelle, Laurène, Marie et Nicolas) et 2 Designers Guillaume et Sophie.

Fini le gaspillage ! Avec l’application “Check Food”, nous vous notifions quand un aliment va être périmé. Vous avez alors 2 choix : Le consommer ou le donner. En consommant un produit avant sa Date Limite de Consommation, c’est jusqu’à 1 500€ d’économie pour vous par an. Soit potentiellement 22 millions d’euros du pouvoir d’achat qui ne sera pas jeté à la poubelle ! En faisant don des produits consommables que vous n’aurez pas le temps de manger, c’est jusqu’à 264 000 tonnes de produits distribués. Soit potentiellement 520 millions de repas offerts à ceux qui en ont besoin !

Notre démarche

L’heure de fin des développements des produits n’étant pas négociable (dimanche 18h00), nous avons fait le choix naturel de développer ces projets en Agile et d'intégrer l’intégralité de chaque équipe dans cette démarche. Les méthodes que nous encourageons fortement chez nos clients marchent vraiment, la preuve en suivant l’évolution de l’application CheckFood :

La vision du produit : Storymap puis Storyboard

Nous nous sommes challengés pour définir les fonctionnalités les plus critiques. Nous avons priorisé les fonctionnalités suivant la méthode MoSCow pour être certain de livrer à la fin des 48h une application qui présente les fonctionnalités les plus importantes :

Un fois les priorités définies, nous avons réalisé le storyboard. A cet instant, toute l’équipe avait une vision claire de ce que nous voulions livrer et du travail qu’il reste à faire.

TaskBoard

Pour s’organiser rien ne vaut un taskboard physique sur lequel nous avons séparé les tâches coté mobile et celles coté backend (Base de données, webservices,...). Naturellement, nous avons ajouté la colonne “to validate”, imposant une revue de code croisée avec un autre développeur. Cette colonne pourrait sembler superflue dans une épreuve de 48h mais elle nous a permis :

  • de garder un haut niveau de qualité de nos développements,
  • d’échanger avec les designers sur qualité de nos intégrations,
  • d’échanger avec les autres développeurs sur les Patterns utilisés,
  • de présenter à l’équipe l’avancement des fonctionnalités qui allaient être déployées.

Itération 0 : La mise en place des outils

L’application nécessitait un backend. Nous aurions pu choisir de le bouchonner pour se focaliser sur le client, mais le challenge du weekend était d’avoir une application fonctionnelle en 48h. Nous sommes donc partis sur une stack connue pour sa rapidité de mise en oeuvre : une application Ruby on Rails déployée sur Heroku et agrémentée de la gem ActiveAdmin. Ce dispositif nous a permis d’avoir un backend disponible et utilisable en un délai minime. Nous avons pris le parti de publier une nouvelle application à chaque “Commit” grâce à Appaloosa et au plungin Jenkins. Chaque “Commit” était réalisé après la présentation en interne de la fonctionnalité (colonne To Validate).

Les informations importantes ont été stockées dans un Wiki :

69 déploiements sur iPhone en 48 heures !

Nous ne pouvions pas passer plus de 10 minutes pour livrer une nouvelle version de l’application, c’est là que notre usine de développement a montré toute sa puissance. L'application était livrée en moins de 5 secondes sur le Store, l'utilisateur n'avait plus qu'à cliquer sur son téléphone pour l'installer en moins de 30 secondes ! Notre première livraison a été effectuée 4 heures après le début du challenge et elles se sont enchaînées à un rythme moyen d’une livraison toutes les 41 minutes.

Les équipes ont pu affiner le produit heure par heure et nous donner des feedbacks tout au long de cette aventure.

Nos douleurs

Tout n’était pas parfait. Pour une prochaine édition, nous souhaitons faire encore mieux. Nous n’allons pas tout vous dévoiler mais ce qui est déjà sûr :

  • Nous contrôlerons a priori la fraîcheur de nos environnements de développement pour ne pas perdre de temps sur des problématiques de configuration :

  • L’environnement rails évoluant sans cesse, une mise à jour un peu douloureuse (nouvelles versions de Ruby, RubyGems, Rails, …) a dû être opérée pour ceux qui n’avaient pas pratiqué depuis longtemps. Nous serons peut être moins ambitieux et nous utiliserons une solution plus légère comme parse.com

  • Nous avons mis Xcode à jour une semaine avant le concours. L'UDD n'étant pas sous la même version que nos Mac de développement, ce qui devait arriver arriva, les règles de compilation n’étaient pas les mêmes des deux cotés.

  • Certains impondérables doivent être gérés à chaud. Par exemple, la librairie ZBar a nécessité une recompilation en armv7s pour être compatible avec l’iPhone 5 ! Il est essentiel d’être dans un état d’esprit alerte pour savoir rebondir sur ce genre de mésaventure.

  • La présentation du projet BeMyGuest a souffert d’un manque de préparation technique. L’équipe passait en premier et a perdu de précieuses minutes à tenter de faire cohabiter un iPad et un rétroprojecteur. Nous aurions dû anticiper le risque et préparer un plan B pour une projection efficace (lancer le simulateur sur un Mac, par exemple).

Qu'est-ce que nous avons appris ?

Nous voulions éprouver nos bonnes pratiques en situation “extrême” afin d’identifier des points d’amélioration. Cette façon de travailler a permis de fédérer toute l'équipe autour du produit, l'avancement des développements étant visible de tous. Nous cherchions un challenge humain avec des personnes d'horizons différents qui travaillent différemment. Nous avons rencontré de nouvelles personnes et nous ressortons avec l’envie de retravailler avec tous ces contacts le plus vite possible. Nous voulions apprendre de nouvelles techniques et partager les bonnes pratiques que nous voyons en mission. Nous avons maintenant l’envie de les diffuser au plus grand nombre. Nous voulions nous améliorer. Nous avons pu apprendre de nos erreurs et nous sommes prêt à retenter l’aventure. Nous voulions surtout participer à un projet social "48 heures pour sortir de la crise".

Nos fiertés de ce week-end

Entendre une agence de com nous dire des phrases comme : - “Il n’y a pas photo, vous maîtrisez l’Agilité, merci pour avoir pris en main toute la partie processus et nous avoir fait vivre cette superbe aventure.” - “Vos livraisons avec Appaloosa, c’est génial ! On n’avait jamais travaillé aussi rapidement !”

Et surtout, Avoir la satisfaction de 2 produits fonctionnels et connectés complètement créés en 48h !

En conclusion

Au final, l’application CheckFood a gagné le concours BeMyApp Agency 2012 et l’application BeMyGuest un prix spécial décerné par le blog iPhon.fr. Nous sommes fiers d’avoir participé à cette aventure technique, méthodologique mais surtout humaine qui résonne avec notre “Why” :“Nous croyons que l'informatique transforme nos sociétés. Nous savons que les réalisations marquantes sont le fruit du partage du savoir et du plaisir de travailler ensemble. Nous recherchons en permanence de meilleures façon de faire !

Vous savez que chez OCTO, si on aime on partage. Nous nous sommes dit que cette démarche pourrait aussi intéresser nos clients. Nous avons proposé à l'un d'eux de participer au BeMyApp NFC du 6 et 7 octobre et il a accepté "pour voir". Finalement, tout le monde s’est pris au jeu et l'équipe a terminé à la première place ! Ils n’ont pas seulement gagné le premier prix mais ils sont aussi repartis avec une bonne dose de confiance en eux et un nouvel esprit d’équipe.

Au plaisir de vous rencontrer avec vos clients dans une prochaine épreuve !