Entreprendre autour d’une application mobile : Un an après.

Comment créer une application mobile quand on ne sait pas coder…

Ma première année d’entrepreneuriat terminée, j’ai souhaité partager mon expérience sur cette aventure.
Si vous cherchez une histoire à la Mark Zuckerberg, passez votre chemin : mon compte en banque est totalement vide et mon seul investisseur régulier est Pôle Emploi.
Cependant, en l’espace d’un an, j’ai pu créer une application mobile qui compte aujourd’hui 2000 utilisateurs réguliers, disponible sur Android et IOS.

En revanche, il y a un an, je ne savais absolument pas coder…

Afin de rendre cet article (résumant une année entière), un peu plus sympa à lire, j’ai décidé de le réaliser sous une forme romancée.
Je m’excuse d’avance du résultat..

Bonjour. Moi c’est Phil, 25 ans. Si je suis ici aujourd’hui, parmi les alcool… euh les entrepreneurs anonymes, c’est pour vous parler de mon problème. Depuis un an maintenant, je suis atteint d’entrepreneuriat aigu. J’y pense tout le temps, c’est dingue.

Je cherche des problèmes là où il n’y en a pas, je cherche des solutions là où il y en a, et PARFOIS seulement, je trouve des réponses là où il n’y en a pas.

Et c’est ainsi, au détour d’une cuvette de WC, après avoir vomi la totalité de mon repas (un peu par le nez, beaucoup par la bouche), que je découvre mon problème.#TrueStoryBro

Ce problème deviendra au fil des mois une obsession, et par la suite, une véritable quête dont l’unique objectif est sa résolution.

1. Le commencement

La liberté d’entreprendre

Solve a real problem. You don’t start a company because you want to be an entrepreneur or the fame and glory that comes along with it. You become an entrepreneur to solve a real problem.
- Aaron Patzer

Il faut revenir un an en arrière. Je terminais tout juste mes études d’informatique en alternance sur Lyon, et je me posais dès lors, une question quasi existentielle sur mon avenir : Accepter un poste à responsabilité tant attendu et mérité, de surcroît très bien payé, au sein d’une petite PME prometteuse ou devenir très très ami avec Pôle Emploi ?

Finalement, la seconde proposition me parlait le plus. Être accepté dans le plus grand incubateur de France était une opportunité à ne pas manquer. #Troll

Après un entretien j’ai été accepté pour une période de deux ans. Le recruteur, apparemment pas très bien réveillé, me répéta plusieurs fois qu’ “être au chômage” n’était pas un jeu, que sourire “était un peu déplacé”, et que “des gens travaillaient pour me le payer”. #TrueStory

Puis, en examinant un peu plus attentivement mon dossier, il m’expliqua d’un air assez surpris que je devrais appartenir au Pôle Emploi “Cadre”, et non au Pôle Emploi “Normal”. Il s’excusa et je fus immédiatement redirigé vers le Pôle Emploi “Cadre”.

Le Pôle Emploi Cadre était assez différent du “Normal”. Les locaux étaient flambants neufs, les gens souriaient et on vous proposait même le café quand vous arriviez. Aujourd’hui encore je cherche à comprendre cette différence de traitement.

Mais bon ça y est. Je commençais enfin ma vie d’entrepreneur !

Plus on est de fou, plus on rit !

Being a founder is like being a parent. You always stay involved.
- Bart Decrem

Quand j’ai commencé à entreprendre, nous étions deux sur le même projet : Ugur, un “camarade de classe” (Expression ringarde déposée) et de surcroît très bon ami, et moi. Lui habitait à Chambéry, moi à Lyon. Du coup on a vite compris qu’il fallait absolument trouver un lieu pour bosser ensemble.

Les prix des co-working étaient trop cher pour nous : 300€ mini par personne, c’est trop. Surtout quand PE te file que 800 à 1000€ par mois. Dommage, j’aimais bien le fauteuil en forme de banane de la salle détente.

Les locations de bureaux privés ou partagés c’est un peu la même chose, sauf qu’il faut fournir les statuts de ta société. Mais quand tu commences à entreprendre, tu n’as pas vraiment de statut (et tu n’as pas vraiment d’argent non plus). L’affaire était donc vite réglée.

Puis un jour, Ugur, dans un éclair de génie s’est dit: “Pourquoi ne pas créer une association ? On aurait un statut juridique, et on pourrait souscrire à une assurance pro ?” De là StartNCode, une association pour t’apprendre à coder était née. Plutôt ironique quand on savait que ni Ugur, ni moi ne savait coder..

Quelques jours plus tard nous trouvions un local de fou, en collocation, à louer pour 120€/p. Le top !

Plus on est de fou, plus on pleure

The more people we have on our team, the less room there is in the elevator and the more complicated everything gets.
- David Karp

Pendant deux mois, nous travaillions comme des dingues : C’était cool, passionnant et relativement épuisant. Un jour, lors d’une pause-café, Ugur m’annonça qu’il allait devenir papa. J’étais vraiment content et heureux pour lui !

Cependant, très vite, nous avons compris que cela poserait problème. Financièrement d’abord, car élever un enfant avec 800€ par mois relève du suicide, puis temporellement, car un enfant requiert beaucoup de temps, non partageable avec notre projet..

On s’est laissé du temps pour réfléchir, pour finalement décider ensemble, de s’arrêter là tous les deux. Coup dur pour notre projet. Je continuerais seul.

2. Découvrir que l’on peut tout apprendre

The only way to win is to learn faster than anyone else.
- Eric Ries, Lean Startup

Notre projet est devenu mon projet. Le rôle et les tâches d’Ugur sont devenus miennes, par la force des choses. Forcément, j’ai dû apprendre à apprendre, et vite !

Ce projet, CookMinute (il aura mis 2h avant de nous en parler quoi…), prendra la forme d’une application mobile dont l’objectif est d’aider les personnes à mieux manger, le plus simplement et rapidement possible.

Mais un tout petit problème s’imposa par lui-même, assez rapidement d’ailleurs, je ne savais pas coder. D’ailleurs je ne savais pas faire grand-chose utile à mon projet…#LeMecSansAucunTalent

En revanche, comme tout le monde, je savais apprendre.

Apprendre à coder

Writing code? That’s the easy part. Getting your application in the hands of users, and creating applications that people actually want to use – now that’s the hard stuff.
- Jeff Atwood

Du fait de ma formation en informatique, j’avais des bases d’algorithmie. Cependant, étant issu d’une option orientée Réseau/Télécom/Gestion de projet, je ne connaissais que le langage de base à savoir le HTML. Et manque de bol, on ne peut pas développer une application mobile en HTML. Du coup je me suis dit pourquoi ne pas essayer d’apprendre à coder ? #BestChoiceEver

Bon en revanche, la courbe d’apprentissage était assez raide. Voir quasiment verticale. Pour vous donner une idée, c’est comme si votre pharmacien devait apprendre à réaliser une opération à coeur ouvert. Il a des bases théoriques, mais doit pousser sa formation un peu (beaucoup ?) plus loin.

Du coup je me suis formé au langage de programmation Swift pour développer une application mobile sur IOS (Apple), et au langage de programmation JAVA pour développer une application mobile sur Android et coder la partie serveur (Base de données et Dashboard).

Pendant 6 mois, j’ai bossé pour apprendre ces langages, en travaillant comme un acharné, et en passant toutes les heures que j’avais dans chacune de mes journées à coder (Weekend inclus). Dur quand tu as un minimum de vie sociale, encore plus dur quand tu as une copine. Cette période d’apprentissage a été réellement la pire de toute ma vie. J’ai compris dans la douleur, à quel point ce métier était à la fois difficile mais passionnant. Je ne me rendais pas compte du travail derrière un projet de développement. Je ne me rendais pas compte qu’en réalité, le code était un art.

Ce qu’il y a de positif avec notre génération, c’est internet : Vous pouvez TOUT apprendre dessus, c’est assez magique. C’est la bibliothèque d’Alexandrie des temps modernes. Seul petit bémol : Être bon en anglais. Mais bon, ça aussi, on peut l’apprendre ;)

Voici une petite liste des pépites qui m’ont le plus aider pour apprendre à coder :

En l’espace de 6 mois, je suis passé d’aucune compétence en programmation orientée objet (Je ne savais pas ce qu’une classe ou un objet était…) à un niveau plutôt pas trop mauvais. J’ai pu ainsi sortir la version IOS assez rapidement, et commencer à itérer dessus.

Apprendre à recommencer

It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.
- Charles Darwin

Itérer c’est cool ! On peut tester plein de choses, et améliorer son produit. Le petit souci, c’est que, j’avais codé mon application vraiment n’importe comment, sans aucune architecture ou logique technique derrière. Chaque ajout de nouvelle fonctionnalité était synonyme de bugs sur des choses qui fonctionnaient normalement avant… Arg ! J’ai découvert le mot “régression” (Ouh le vilain mot !), et aussi que je codais très mal..

Du coup, j’ai décidé de montrer mon code à un collègue développeur, pour avoir son avis dessus. La vue de mon code déclencha chez lui une sorte de crise d’épilepsie, c’était assez bizarre à voir… “Trop dégueulasse” selon lui. “Ton code est plus LIQUIDE que SOLID !” (Blague de développeurs, désolé…)

Une longue session de refactoring s’en suivi (J’ai repris tout mon code pour l’optimiser et le rendre plus propre, en essayant d’appliquer des bonnes pratiques de développement. Merci au très bon livre Clean Code !).

Là aussi j’ai pas mal morflé, car j’ai dû apprendre vite des notions poussées (Designs Pattern, Notions SOLID, etc…) qui n’avait aucun rapport avec mon application de cuisine. Cependant, c’est à ce moment où ma courbe de progression à décoller. C’est également durant cette période où j’ai appris à réaliser des tests unitaires, et à rendre mon code testable ! Un gain de temps inestimable pour la suite.

Apprendre à itérer

Get your idea out in the wild, iterate your ass off, and hopefully build something spectacular.
- Kyle Bragger

Avec du recul, je me rends compte que la première version de CookMinute était dégueulasse, mais que ça allait quand même. Le problème dans le monde des applications mobiles, c’est que si votre application est vraiment trop dégueulasse (visuellement parlant), personne ne la télécharge, et si quelqu’un le fait, vous pouvez vous attendre à une note de merde très rapidement. Une note de merde, surtout au début, équivaut à un aller simple pour le fin fond des appstores. Certains disent que ceux qui y sont allés ne sont jamais revenus..#TrueStoryBro

Bref, l’itération sur un produit bien codé, c’est vraiment cool et très rapide !

Apprendre à designer

A user interface is like a joke. If you have to explain it, it’s not that good

Avant de commencer à coder, il y a une phase assez importante par laquelle j’ai été obligé de passer : Imaginer et poser l’UX (Expérience utilisateur) et l’UI (Interface utilisateur). Pour résumer, il faut réfléchir à toute la partie “design” de son application.

Cette partie qui semblait simple pour moi au début, s’est révélée plus compliquée que prévue.

J’ai rapidement appris que, comme dans la vie de tous les jours, l’apparence compte énormément, surtout la première impression : Par exemple, dans une boulangerie, votre regard s’arrêtera sur un gâteau en particulier, car vous le trouverez plus beau que les autres autours.

C’est la même chose pour une application mobile. Vous-même quand vous scrollez la liste des applications mobiles sur le store, votre regard s’arrête sur celle qui vous plaît le plus visuellement parlant.

Le hic c’est qu’au début, quand on n’a aucune expérience, on trouve tout “beau” voir même “normal”. En fait, c’est dégueulasse. On pourrait trouver sa cuvette de chiotte jolie.. #YouKnowWhatImTalkingAbout

Du coup, j’ai dû apprendre à habituer mes yeux aux belles choses, réalisées par de vrais professionnels. J’ai dû trouver des sources d’inspirations fortes et pertinentes. Voici les outils qui m’aident et m’inspirent au quotidien: Muzli 2, Dribbble, Sketch 3.

Apprendre à obtenir des feedbacks

If a user is having a problem, it’s our problem.
- Steve Jobs

Quand j’ai lancé l’application sur l’AppStore d’Apple, je m’attendais à avoir des retours d’utilisateurs, soit par Facebook, soit par email. Je m’étais dit que les gens donneraient volontiers leur avis sur mon application, car elle est cool !

Finalement non.

La solution ? Et pourquoi pas intégrer un petit module dans l’application sous forme de chat, afin de pouvoir dialoguer avec ses utilisateurs ? Et hop, je tombe sur Smooch. En fait, Smooch te propose un chat embarqué que tu peux installer dans ton application, avec plein de petits outils pour rendre la communication avec tes utilisateurs finaux simple et ludique. Un vrai bonheur !

Je suis passé de 0 feedback (Ceux obtenus par mes proches et ma famille ne compte pas…) à une centaine ! Cela m’a permis de pouvoir itérer sur des fonctionnalités demandées par beaucoup de personnes, où tout simplement, résoudre des bugs de manière plus précise.

Cependant, j’ai dû travailler la manière dont je percevais les feedbacks. Certains étaient assez blessants, mais m’ont permit dans une certaine mesure, d’améliorer mon produit. Je me rappelle encore d’une utilisatrice belge, qui a testé l’application 10 min pour en conclure que “les photos étaient horribles” et “que mon app ne servait à rien” : quelques jours après, vus l’état dans lequel je me trouvais, on me faisait la surprise de m’offrir un studio photo me permettant d’améliorer ainsi, la qualité de mes photos. #LoveMyFriends

J’ai réalisé à ce moment que si vous obtenez un feedback négatif, c’est que vous avez laissé, aussi petite soit-elle, une porte ouverte avec un écriteau indiquant : “Hey, vient voir, il y a un truc qui cloche ici”. Le but de l’itération, combiné avec l’interprétation des feedbacks, est de refermer une à une ces portes.

Au total, j’ai pu discuter avec une centaine d’utilisateur, à tout moment de la journée et depuis n’importe où : À 23h avant d’aller me coucher, en vélo quand je me rendais à mon bureau, en sortant de la douche… Bref, c’est une expérience vraiment unique !

Apprendre des startups

Running a startup is like being punched in the face repeatedly, but working for a large company is like being waterboarded.
- Paul Graham

Vers la fin de mon cursus scolaire, j’ai eu des cours d’entrepreneuriat, portés essentiellement sur les startups. Ce sont d’ailleurs ces cours qui m’ont poussé à entreprendre à la fin de mes études.

Au début, comme beaucoup de personnes, j’étais vraiment ébloui par ce monde fait d’ors et paillettes, de ces millions (milliards ?) qui étaient levés chaque semaine, et de ces belles success-stories de jeunes entrepreneurs devenus milliardaires.

En revanche, au-delà des success-stories où l’on raconte toujours ce que l’on a bien envie de raconter, et où la masturbation intellectuelle règne en maître, beaucoup de notions et principes géniaux sont apparus, ou tout au moins démocratisés, grâce aux startups !

J’ai pu passer pas mal de temps à étudier ce milieu, notamment via les cours en ligne de Y Combinator : Un pur bonheur ! Bon, tout est en anglais, mais ça se lit très très bien. Si vous souhaitez obtenir l’équivalent en Français, vous avez Koudetat de The Family, qui s’en inspire grandement, tout en y rajoutant sa propre expérience et toutes ses anecdotes.

Avec ces deux cours, j’ai pu me familiariser grandement avec l’univers startup, et comprendre des notions qui m’ont aidé à bien penser et même architecturer mon projet étape par étape, en m’inspirant intelligemment de l’expérience d’autres entrepreneurs.

Une petite phrase (Issue de Steve Blank) résume assez bien ce qu’est une startup, et la vision globale qu’il faut en avoir :

A startup is a temporary organization formed to search for a repeatable and scalable business model.

Apprendre à faire du marketing

Spread the word in a way that was natural and not spammy.
- Ade Olonoh

Une fois l’excitation des premières semaines de mise en ligne de CookMinute passée, j’ai remarqué une baisse assez nette du nombre d’installation. Forcément, une fois que toute ta famille, tes amis, ainsi que les amis de tes amis ont fini d’essayer ton app, il y a vite plus personne dessus.

Du coup, pour promouvoir mon application, j’ai embauché un robot ! Ce qui est cool avec les robots, c’est qu’ils sont autonomes. Ce qui est moins cool avec les robots, c’est qu’il faut tout leur expliquer...

Facebook Ads : Mon Chief Marketing

Facebook Ads, c’est réellement impressionnant: il te permet automatiquement de diffuser une annonce sur tout Facebook, en fonction de critères bien précis.

Par exemple, tu peux lui dire : “Je veux que tu affiches ma publicité, sur toute la France, pour les femmes entre 20 et 50 ans, qui s’intéresse à la cuisine, et qui souhaite mieux manger”. Bref, si tu veux toucher ta cible à la personne près, tu ne peux pas faire mieux.

En revanche, c’est à toi de créer une publicité qui soit fun et attractive, te permettant ainsi d’obtenir les actions finales que tu souhaites (Like sur ta page Facebook, téléchargement de ton app, etc…).

Des nouveaux utilisateurs sur ton application équivaut à des feedbacks en plus, qui équivaut à des itérations en plus, et qui au final, amélioreront grandement ton produit.

Apprendre à créer de vrais métriques

Don’t measure anything unless the data helps you make a better decision or change your actions.
- Seth Godin

Une fois CookMinute sortie, il a fallu comprendre un peu mieux ce qu’il s’y passait. Les feedbacks étaient parfaits pour étudier les attentes et envies de mes utilisateurs, mais ne pouvaient en revanche pas m’informer si ces derniers utilisaient régulièrement l’application.

C’est là que la mise en place des métriques intervient.

Mesurer le temps passé sur les features

Pour cela, j’ai commencé par utiliser Google Analytics et ses différents trackers, pour savoir si un utilisateur affichait (ou non) un écran ou utilisait (ou non) une fonctionnalité. Cela m’a permis de comprendre sur quelle partie de mon application un utilisateur passait le plus et le moins de temps.

Mesurer la rétention

Si il y a bien un mot à VENERER pour décrire la performance de son application, c’est celui-ci : rétention. Cela peut se définir comme la capacité à conserver ou à faire revenir ses utilisateurs.

Au début, en tant que noob, le chiffre qui m’intéressait le plus était le nombre de téléchargement: En effet, c’est la seule métrique qui ne baissera jamais de tout mon projet

Pourtant, ce chiffre est tout simplement inutile : On peut télécharger une application et la désinstaller. Pourtant, le nombre de téléchargement augmentera.

En revanche, vous ne pouvez pas monter un business autour d’utilisateurs qui n’existent pas, si ?

Actuellement je suis aux alentours des 20 % de rétention sur 30 jours, et 15% de rétention sur 60 jours. J’espère augmenter ces nombres grâce aux prochaines fonctionnalités.

Apprendre à faire de l’argent

Money is like gasoline during a road trip. You don’t want to run out of gas on your trip, but you’re not doing a tour of gas stations.
- Tim O’Reilly

Entreprendre c’est aussi (avant tout ?) vivre de son activité. Cependant à travers une application mobile, c’est un peu plus compliqué…

Tout d’abord, car les clients ne paient pas, ou tout au moins très peu ☺. Avez-vous déjà payé, de manière régulière, pour une même application mobile (Outre Spotify, Netflix, etc…) ?

La difficulté réside à ce niveau. Du coup il va falloir être un minimum malin.

Il y a un temps pour tout

Avant d’entreprendre, je m’étais fixé un objectif assez clair:

  • La première année était dédiée à la création d’un produit, et à la validation d’un besoin grâce à ce produit (Petit bonus si j’arrivais à créer un minimum de rétention). Done.
  • La seconde année sera dédiée à l’amélioration et à l’itération sur CookMinute, au développement du marketing et à la validation d’un business modèle profitable. Doing.

Pourquoi attendre la deuxième année pour commencer à faire de l’argent ? Tout simplement car c’est difficile de vendre de la merde

Il est préférable à mon sens, de se concentrer les premiers temps, sur son produit, plutôt que de chercher à vendre un truc qui n’existe pas ou qui est merdique. En tout cas concernant une application mobile, ça a du sens.

Mais pourquoi tu n’as pas essayé de lever de l’argent ?”

Je pense que la levée d’argent est un moyen d’accélérer son développement et non de le créer. C’est comme donner du viagra à un puceau. Il y a bien quelque chose qui va gonfler, mais ne sera pas forcément un bon amant… #SorryForThisPicture

J’ai quelques idées sur comment monétiser ce projet, tout en essayant de ne pas faire payer les utilisateurs finaux. C’est assez marrant d’ailleurs, je suis en train de monter une entreprise dans un domaine où les clients ne paient pas.

Apprendre à devenir très bons

It’s very easy to be different, but very difficult to be better.
- Jonathan Ive

A travers cette année d’entrepreneuriat, j’ai pu rapidement constater qu’il ne fallait pas être moyen (voire même bon), pour réussir à se faire une place. Il faut tendre à être le meilleur, et cela dans tous les domaines.

Techniquement premièrement, car mon projet étant une application mobile, j’ai dû apprendre à devenir vite extrêmement bon. La concurrence est très rude sur les AppStores, et le niveau d’exigence des applications très élevé !

Ainsi, j’ai dû maitriser des technos indispensables, et m’assurer que mon environnement technique ne deviendrait pas au fil du temps, un boulet que je traine.

Ainsi côté Backend, je suis passé chez Google Cloud Platform pour mes serveurs, APIs et ma base de données. Les technologies utilisées sont JEE/Spring pour AppEngine, Google Cloud Endpoint et Datastore NoSQL. D’ailleurs, c’est la même infra qu’utilise Snapchat ou AngryBirds.

Côté Android, j’ai dû apprendre à maitriser JAVA et l’infrastructure Android, et compléter le tout avec de la programmation reactive, grâce à RxJava, et facilitée via l’injection de dépendance Dagger2. Pour la BDD embarquée, quoi de mieux que Realm ?

Côté IOS, j’ai dû apprendre à maitriser Swift, et compléter également le tout avec de la programmation reactive, grâce à RxSwift, et facilitée via l’injection de dépendance Swinject. Pour la BDD embarquée, je suis resté sur Realm

Apprendre à partager (Github)

When you’re surrounded by people who share a passionate commitment around a common purpose, anything is possible.
- Howard Schultz

Au début de cette année, alors que j’étais encore un assez piètre développeur, j’ai appris à utiliser Github : Tout d’abord pour réaliser des sauvegardes de mon propre code, mais aussi pour utiliser des morceaux de codes (appelés librairies) que d’autres développeurs laissent à disposition gratuitement, et qui me permettaient de réaliser des fonctionnalités beaucoup plus rapidement que si je devais les développer moi-même. On appelle cela l’Open Source.

Ce qui est vraiment sympa, c’est que toutes ces librairies te font gagner un temps assez monstrueux sur certaines fonctionnalités de ton application, notamment sur l’UI.

Cependant, j’ai décidé d’utiliser Github comme un moyen pour progresser techniquement parlant. J’ai ainsi, créé et partagé mes propres librairies, que j’avais créé à travers CookMinute. J’ai pu ainsi échanger avec différents développeurs provenant des 4 coins du globe, ce qui m’a permis d’améliorer considérablement mon niveau de développement.

Actuellement mes librairies sont utilisées par plusieurs centaines de développeurs à travers le monde, une très belle récompense ! Vous pouvez les retrouver ici.

Partager a été aussi pour moi une façon de redonner à la communauté. C’est grâce à cette communauté que j’ai pu apprendre le code seul, et pratiquement apprendre tout ce que je sais aujourd’hui dans n’importe quel domaine.

Et comme dirait Olivier Lockert : “La connaissance, c’est partager le savoir qui nous fait grandir.


La première année d’entreprenariat autour de CookMinute était dédiée à la validation du besoin, par mon application : #Done.

La seconde année sera dédiée à l’ajout de toutes les fonctionnalités en attentes (dont certaines assez grosses), ainsi que l’application de mon business modèle, le tout sur les deux versions IOS et Android.

Si jamais cela devient trop compliqué à gérer pour une seule et même personne, j’essaierais de trouver des collaborateurs avec qui partager l’aventure CookMinute. Cela sera positif car cela voudra dire que l’application montre un gros intérêt, et pourra donc potentiellement générer des revenus pour plusieurs personnes.

Cette année va être tout juste awesome ! J’ai hâte !

Phil, Fondateur et Coffee Maker @ CookMinute.