Compte-Rendu / FlashCamp « Du Dev à la Prod » (11/09/18)

Par Alexis Echegut

Le développement d’une application relève d’autant d’étapes et d’attention que celles que l’on rencontre lors de la construction d’un bâtiment. Noël Martignoni, co-fondateur de Easymov Robotics, met ici à notre service son expérience d’architecte en matière de développement d’application, dans le but de mettre en relief ce qu’il se passe lors du passage du développement à la production de celle-ci. L’objectif est de comprendre tous les rouages et étapes du passage en production, et d’identifier les différents métiers qui gravitent autour de « l’aventure appli ».



Synthèse de la présentation

Les prémisses d’un passage en production

Une fois l’application développée, des financeurs identifiés, de l’argent en poche et les premiers utilisateurs séduits, c’est le moment d’une certaine montée en puissance de l’application. Il faut à ce moment précis faire un état de l’art de ce que l’on possède, de ce que l’on souhaite faire, et ce qui est nécessaire de mettre en œuvre pour le réaliser. Noël identifie pour nous 5 étapes à suivre rigoureusement pour passer à la production réelle de l’application en question.

1/ Le choix technologique. [Ils ne sont pas toujours opportuns] 2/Le code. [Est-il maintenable dans la durée?] 3/L’infrastructure. [Est-elle dupliquable ?] 4/La sécurité. [Elle est inexistante dans un contexte de développement] 5/Le processus. [Le processus est de même absent dans ce contexte]


Comment bien réaliser chacune de ces étapes ?

1/ Le choix technologique

Pourquoi faire les bons choix technologiques ? On s’aperçoit souvent qu’ils ne sont pas forcement adaptés à ce que l’on souhaite réaliser. On en vient à l’open source.

« Rien ne sert de s’embêter avec des technologies propriétaires quand on sait que 90% du web est régi par des grands groupes aux applications qui tournent sans réels accros. »

Selon Noël, il est pertinent de savoir faire confiance à ces géants tant leurs compétences sont affirmées et fiables (Facebook, Google, Airbnb…). Partir sur un choix technologique efficace revient donc à faire attention aux équipes de développeurs qui sont derrières. Il est de mise de ne pas s’orienter sur de la création technologique sur mesure. En effet, elle nécessite une implication conséquente sur un temps long et des financements que tous ne peuvent se vanter de bénéficier. Qui missionner pour faire ce bon choix technologique ? L’entrepreneur est le premier concerné. Un bon directeur technique (CTO) ne sera pas de refus.

2/ Le code

A partir du moment ou l’on passe en production, il faut garder à l’esprit que la majorité du code est à réécrire. Au début on veut faire vite et pour le moins cher possible. En revanche, en production, on veut quelque chose de robuste qui tourne. Comme dans la construction d’une maison, il faut fragmenter les tâches et missionner les développeurs sur des rôles complémentaires. Il faut s’attendre à « mettre des billes » dans des choses pour lesquelles on a déjà payé. En somme, tout est à refaire au niveau du codage…

3/ L’infrastructure

C’est la partie la plus immergée de l’iceberg. Un système de logs (journal de bord de l’application) est nécessaire dans l’optique d’une éventuelle d’une mise hors service de l’application. Quand celle-ci plante, c’est ici que l’on peut voir le pourquoi du comment. Et oui, une application plante toujours à un moment ou un autre.

L’idée est de faire de petits correctifs au fur et à mesure du développement de l’application et non de tout réaliser d’un seul tenant. C’est ici qu’intervient le « canary test ». Il permet d’envoyer à une niche d’utilisateur un contenu sélectionné et d’en attendre les retours. Si ils sont satisfaits et que l’avis est positif, alors le contenu va pouvoir se propager à l’ensemble de la communauté d’utilisateurs. Dans l’autre cas, le contenu sera retiré. Netflix envoi souvent du contenu à seulement 10% de ses utilisateurs afin de tester leur futur contenu.

Ne pas négliger le Back Up! Un PC qui crame, des données qui s’envolent, voilà la hantise de tous développeurs. Il permet que les données ne soient pas définitivement perdues. La scalabilité est aussi importante. On ne gère pas 10 et 10000 utilisateurs de la même façon. Pokémon Go a connu une fréquentation de plusieurs millions d’utilisateurs en seulement 2 jours. Dans un cas extrême comme celui-ci, mais aussi pour d’autres applications à succès moins virales, tout doit être prévu en amont par les développeurs, afin de gérer l’afflux d’utilisateurs. On doit réduire au maximum le facteur risque « plantage »!

4/ La sécurité

Plus on a de visibilité, plus la sécurité est importante tant il y a de personnes susceptibles de nous attaquer au file de la croissance de l’application. Noël met en évidence les points importants à retenir pour une bonne sécurisation:


5/ Le processus

Les développeurs ont besoin d’un retour utilisateur. Il est primordial d’avoir un procédé mis en place afin de récolter ces informations. L’appli plante ? On doit le savoir. Elle bug ? Il faut cibler où, comment et pourquoi. Plus on investit du temps et de l’argent à faire en sorte que l’application soit robuste, moins on aura de temps à consacrer à ce support. 5% du budget consacré au support sera gage d’une application qui tourne.


Questions du public

Vous nous conseillez d’avoir plusieurs hébergements. Est-ce une précaution si importante quand on connaît le prix que cela coûte?
Je conseil d’avoir plusieurs hébergeurs à partir du moment où l’application grossit, à partir de 10 000; 100 000 utilisateurs. A ce moment là si l’un des hébergeur plante, un autre va prendre le relais. Par exemple Google possède des serveurs partout. Si on développe quelque chose à Paris, on va pouvoir le divulguer à Munich, sans quitter sa chaise. Il faut tout de même faire attention aux législations, qui ne sont pas les mêmes suivant les pays. Si on reste en France, j’ai tendance à conseiller de toujours préparer sa structure pour la tempête. Il faut accepter d’y passer du temps aujourd’hui, pour demain pouvoir passer facilement un autre cap si on en a l’envie.

Quand est-ce que vous préconisez d’utiliser Github?
Github
ne donne pas de conseils. C’est un endroit où les développeurs vont héberger du code open source. Je préconise de l’utiliser pour récolter de l’information sur les sites, les étoiles, l’activité existante sur les projets… Avec ces infos là, on peut ensuite aller questionner le prestataires sur son choix de technique. Il ne faut pas se le cacher, certains presta’ ont juste envie de s’amuser. Ils ont un projet sous le coude, et ils se disent: « allez, j’ai vu passer cette techno’, on le fait ». Ils vont alors perdre du temps à découvrir leur techno’ et vont vous faire perdre de l’argent.


Captation par Cindy Pappalardo-Roy et Alexis Echegut
Montage vidéo et synthèse écrite par Alexis Echegut