Compte-rendu petit-déjeuner : PROFESSIONNALISEZ VOS DEVELOPPEMENTS MOBILES

le 06/02/2013 par Céline Pageaux
Tags: Évènements

Intervenants :

Olivier Martin - Directeur du pôle Mobilité

Cédric Pointel, Stéphane Prohaszka, Maxence Walbrou - Experts mobilité

Hervé Lourdin - Directeur d’OCTO Online

Agenda :

  1. Introduction
  2. Optez pour un éco-système et des outils professionnels
  3. Gérez plus vos Apps et moins vos devices !
  4. Faites vivre vos applications

Vidéo du petit-déjeuner  :

"Sans titre"

1)   Pourquoi un petit-déjeuner sur le sujet ?

Nous avons constaté que les projets mobiles ont évolué chez nos clients. Il y a 4 ans, nous avons assisté à la révolution des Smartphones, une explosion des projets mobiles (un bon moyen pour innover à l’époque) et une volonté d’expérimentation (tous ces devices ont joué le rôle de plateforme de tests).

Depuis, les projets ont largement évolué, ils se sont enrichis avec plus de valeur ajoutée, avec une volonté de s’intégrer au SI et sont devenus multiplateformes.

Nous assistons aujourd'hui à une ère de professionnalisation et les applications mobiles sont devenues une commodité. Tout va plus vite et nous refaisons sur mobile ce que nous avons connu sur le web, en y intégrant une maturité technologique et une industrialisation des process.

Notre industrie est devenue mobile, tous les géants du web ont investi dans le mobile. Les ventes de PC diminuent alors que celles des mobiles augmentent ; des postes se créent en entreprise (Head of Mobile) et les équipes mobiles internes sont de plus en plus nombreuses.

2)   Optez pour un écosystème et des outils professionnels :

Les plateformes Android et iOS ont vu leur écosystème s’enrichir avec de nouveaux outils pour adresser de nouveaux besoins.

Dans chaque étape du développement professionnel, il existe des outils pour :

  • Concevoir votre app : c’est la porte d’entrée de votre app et des outils permettent aujourd’hui d’obtenir un rendu visuel plus proche de la réalité escomptée (ex: ProtoIo ou Fluidui). Les développements vont s’appuyer sur ces préparations et si des erreurs sont identifiées, il faudra affiner les écrans avec les équipes créa et métier. Il existe également des outils pour réunir ces équipes afin d’améliorer, d’affiner, d’ajuster ces écrans directement depuis un appareil, et finalement obtenir le rendu souhaité.

  • Vous organiser : il s’agit ici d’utiliser des conventions, de structurer vos sources, vos ressources et de hiérarchiser vos données. Il faut planifier des revues de code (vérifier les conventions, que le développeur a bien implémenté la fonctionnalité comme imaginée et s’assurer de la diffusion du savoir au sein des équipes). Il faudra également extraire vos dépendances ; il existe des outils là aussi : maven, CocoaPods qui permettront de gérer les versions de vos librairies.

  • Documenter : il n’y a jamais assez de documentation. Pourtant, cette dernière vous permet de partager la connaissance. Il est essentiel de commenter afin d'expliquer le POURQUOI et non le COMMENT d'une implémentation. Une fois les commentaires rédigés, vous pouvez utiliser des outils pour générer la documentation comme Javadoc, Doxygen ou encore Appledoc.

  • Tester : c’est essentiel pour voir si ce qui a été produit se concrétise comme imaginé et reste maintenable et fiable dans le temps ! Quelques outils existent : pour Android : easy mock, Android JUnit, Mockito... ; pour iOS : ocunit, ocmockito, GTM... Ils vous permettront de vous assurer dans le temps qu’aucune régression n'apparaîtra, ce, grâce aux tests. De la même manière, les interfaces peuvent être testées. A minima, les chemins nominaux de votre app. Il vous faudra également vous assurer que votre app fonctionne en conditions réelles (ex : dans le métro lors de changements de réseau,...) vous permettant ainsi de prendre connaissance des problèmes. Il faudra également tester votre app sur tous les écrans, vous assurer des performances de votre terminal et garantir la sécurité de votre app.

  • Vous améliorer : il vous faudra vous imposer des critères de qualité, vous fixer des seuils et analyser la qualité de votre code (bien souvent aucun test unitaire n’est fait, ce qui n’est pas recommandé ; certaines apps partent en prod parfois avec des warnings encore présents...). Il est également conseillé de vous rendre aux évènements mobiles et de participer à la communauté (ex: stackoverflow, DevCon en mars à Amsterdam...).

  • Déployer : des outils vous permettent aujourd’hui de faciliter vos déploiements et de bien gérer vos apps et vos beta testeurs. (ex : Appaloosa).

  • Analyser : les applications vivent. Il faut donc analyser ce qui se passe, identifier les comportements des utilisateurs et être proactif sur les problèmes. Il n’est pas possible de tout tester. Il faut donc accepter l’erreur pour rebondir et prioriser les corrections.

Conclusion : on assiste à une similitude avec ce qui s’est passé pour le web. Tous les outils peuvent être automatisés : usine de développement (Jenkins) et ce qui fonctionne avec nos équipes peut également fonctionner avec nos partenaires : usine de livraison, pour garantir nos pratiques, nos processus et notre fiabilité.

3)   Gérez plus vos Apps et moins vos devices !

Quelques constats :

  • La mobilité est devenue une commodité et a envahi notre quotidien. Il est prévu pour 2014 que nous utiliserons plus nos mobiles pour aller sur le web que nos ordinateurs (c’est déjà le cas pour l’Inde par exemple).
  • 78% des entreprises utilisent des apps mobiles personnalisées (ou ont prévu de le faire). Les mobiles sont déjà dans nos entreprises et les apps intégrées à nos SI.

Il fallait donc réagir !

1ere solution : le MDM : Mobile Device Management qui permet la gestion des devices et des utilisateurs.

Ce mode de management permet :

  • la gestion et la sécurisation des données utilisateur
  • de créer une liste d’apps autorisées (ou non) et de la diffuser
  • la géolocalisation des mobiles (permettant de réagir en cas de vol par exemple et de verrouiller le portable le cas échéant, d’effacer les données...)

Les enjeux avec une plateforme de MDM sont les suivants :

  • la gestion des devices
  • des enjeux réseau
  • la plateforme permet d’adresser les enjeux de nos utilisateurs
  • la gestion dans une moindre mesure des apps
  • la gestion des données (sujet à creuser car essentiel : comment sécuriser mes données ?)
  • la mise en place d’une charte utilisateur (à l’instar d’un contrat)

Puis nous avons assisté à une montée du BYOD : Bring Your Own Device : tout le monde vient avec son device dans l’entreprise.

Le constat a donc changé :

  • 84% des salariés utilisent un outil perso dans un contexte pro
  • ⅔ des entreprises ne le savent pas
  • et 48% des salariés souhaitent avoir accès aux données de leur entreprise depuis leur device perso, depuis leur maison.

Pour le moment les réponses sont souvent négatives mais il devient de plus en plus difficile de conserver le non, notamment avec la généralisation des tablettes qui envahissent le SI.

Le BYOD a donc secoué les mentalités et la question du contrôle est aujourd’hui posée.

Nous avons assisté à l’apparition du MAM : Mobile Application Management en parallèle au MDM. Il s’agit ici de gérer plutôt les apps et les utilisateurs (et non plus les devices).

L’approche MDM est plutôt une approche PUSH : j’envoie toutes les nouvelles applications sur tous les mobiles de ma flotte alors que l’approche MAM serait plutôt PULL : je mets à dispo pour mes utilisateurs les dernières versions de mes apps et eux, choisissent de les télécharger ou non (m’épargnant ainsi notamment un contrôle sur la flotte de devices).

Les enjeux avec une plateforme de MAM sont les suivants :

  • la mise en place d’un store d’entreprise (distribution et mises à jour)
  • la prise en compte des retours utilisateurs
  • un focus sur les statistiques de téléchargements, sur la nature des périphériques de ma flotte...
  • des questions liées à l’identité : il faut gérer les autorisations d’accès aux apps (interconnexion entre le référentiel d’autorisation et les app proposées)
  • des questions de sécurité  pour s’assurer de la bonne certification des app
  • assurer les produits des développements : mettre en place des plugins pour s’interconnecter avec jenkins ; envoyer des notifications pour informer des nouvelles mises à jour disponibles...

Conclusion : Le MAM sera moins compétent sur les devices mais mettra l’accent sur les utilisateurs et les apps.

Ces deux approches sont différentes, mais complémentaires (un mariage des deux peut être intéressant).

4)   Faites vivre vos applications :

Constat : une application qui ne satisfait pas ses utilisateurs est une application morte !

Il est essentiel de :

Connaître ses utilisateurs, et cela passe par le fait de :

  • bien choisir ses stores : sur quel store je veux distribuer mon app ?  A quelle concurrence suis-je prêt à faire face ?...
  • bien préparer sa sortie : il faut penser à la date (dans l’année, dans la semaine) pour maximiser le nombre de téléchargements ; faire attention au temps de validation de chaque store ; préparer un plan de communication pour que l’app soit téléchargée, en publiant des articles pour la faire connaître.

D’être trouvé par les utilisateurs : pour ce faire, il faut donc faire attention :

  • au nom (simple, facile à retenir et qui représente l’usage de l’app),
  • à l’icône (différente des concurrents),
  • aux screenshots mis en avant ainsi qu’aux mots clés
  • à la description (en faisant notamment attention aux 3 premières lignes qui doivent donner envie de lire la suite et de télécharger l’app).

De grimper dans les classements ; deux indicateurs semblent être plus importants :

  • le nombre de téléchargements (il est donc important de faire des promos sur l’app pour attirer l’utilisateur à la télécharger)
  • les notes et les commentaires (qu’il faudra prendre en compte pour améliorer l’app ; il est donc  important de toujours laisser un contact direct pour que l’utilisateur soit en mesure de vous faire remonter ses remarques)

De mesurer l’engagement de l’utilisateur notamment en analysant :

  • les statistiques (GooglePlay Console, iTunes Connect, App Annie, Storeslytics...)
  • le nombre de nouveaux utilisateurs : ceux qui téléchargent l’app
  • la rétention : quel pourcentage de ces nouveaux utilisateurs revient sur mon app après le premier lancement
  • le nombre d’utilisateurs actifs sur mon application
  • la fréquence d’utilisation
  • la durée moyenne des sessions

A cela pourront s’ajouter des métriques internes que vous pourrez définir (et qui feront sens pour vous par rapport à vos objectifs).

Il ne faut pas tout mesurer mais choisir ce que l’on veut tester précisément pour ensuite valider par la mesure.

Il est aussi possible et recommander de mettre à contribution les utilisateurs PENDANT le développement de l’app (et pas uniquement post production). Il faudra donc trouver les populations pertinentes pour nos tests et mettre en place des pratiques pour améliorer l’app (feature flipping / A/B testing).

Des outils sont aussi disponibles pour recueillir le feedback utilisateur en direct depuis l’app : appsfire, uservoice for iOS...

Mais les outils ne suffisent pas, il est recommandé d’également se rendre sur le terrain, d’étudier les utilisateurs en conditions réelles (et par itérations successives améliorer l’app en fonction des retours) et de personnaliser l’expérience utilisateur.

D’assurer le meilleur time to market. Pour cela il est recommandé de :

  • travailler en cycles courts et appliquer une production par petits lots (séparer les grosses fonctionnalités en sous-fonctionnalités, les prioriser, puis les traiter une par une).
  • rassembler physiquement les équipes projet (marketing, métier, UX, dév, recette) afin qu’ils puissent communiquer plus efficacement et réduire le transport d’informations.

Conclusion : Il vous faudra donc connaitre vos utilisateurs, les intégrer au plus tôt dans le développement produit et leur assurer la plus grande réactivité possible.

A vos applications mobiles donc !