Malgré le titre quelque peu prétentieux, le but de cet article n’est pas de présenter une success story ou de donner quelques « bons plans » basés sur des platitudes et des truismes inutiles. Je veux juste partager quelques histoires sur l'entreprise dans laquelle j'ai passé presque toute ma carrière professionnelle. Sur la façon dont ce service a vu le jour dans une ville lointaine et froide appelée Yakutsk, je partage mon point de vue sur inDrive du point de vue d'un ingénieur.
Salut tout le monde! Je m'appelle Michil Androsov et je travaille chez inDrive depuis maintenant 10 ans. J'ai rejoint l'entreprise alors qu'il y avait trois personnes dans l'équipe de développement, et je l'ai quittée en tant que CTO avec 500 personnes sous mes ordres. Au fil des années, l'entreprise est passée d'une startup locale à une entreprise licorne avec des centaines de millions de dollars investis par les plus grands fonds mondiaux.
inDrive (ancien inDriver, abréviation de « Independent Driver s »), est un service de covoiturage de Yakutsk (la capitale de la République de Sakha ) avec une grande différence par rapport à tous les autres : le tarif du voyage est fixé par les passagers eux-mêmes. .
Contrairement à ses concurrents, le modèle de tarification d'inDrive n'implique aucun algorithme complexe basé sur des centaines de critères. L'ensemble du système est aussi transparent que possible, avec seulement deux parties impliquées dans le processus : le conducteur et le passager qui négocient les tarifs entre eux et conviennent d'un prix qui convient aux deux parties. Il s’agit d’un système auto-équilibré.
La République de Sakha, également connue sous le nom de Yakoutie, est une république située à l'Extrême-Orient de la Fédération de Russie. Principalement habité par la population indigène locale, les Yakoutes, mais assez multiculturalisé. La république a la réputation d'avoir un climat extrême et rigoureux.
Voici pourquoi le service a vu le jour à Iakoutsk, entre autres. Dans mon livre, deux raisons expliquent cela :
Climat froid. Avec des températures extérieures descendant jusqu'à 50 degrés Celsius en dessous de zéro, plutôt que de se promener dans le parc ou de faire une randonnée dans la nature, les gens ont tendance à rester chez eux. Ils doivent trouver des moyens de se divertir et, le plus souvent, ils passent leur temps devant un ordinateur. En combinaison avec les meilleures écoles qui mettent un accent particulier sur la physique et les mathématiques, et qui sont nombreuses dans la région, il y a une chance que beaucoup de ces enfants deviennent des programmeurs. Du moins, c'est comme ça que je m'explique cela.
Isolement du continent. Pour cette raison, Internet était très cher et lent. Internet fonctionnait grâce à la technologie des relais radio. Et il fallait payer pour chaque mégaoctet. Quelques films téléchargés sur Internet pourraient coûter le salaire d’un travailleur. Ainsi, les employés des fournisseurs de services Internet téléchargeaient quelque chose du Big Internet et le mettaient sur l' intranet . Je me souviens de certains gars qui se livraient même à la pêche par satellite.
C'est grâce à ces deux facteurs que Iakoutsk a fini par avoir son propre "Internet", et avec lui le portail Internet Ykt.ru (actuellement en panne) - des portails Web locaux comme Yahoo ou Dmoz, Craigslist, Napster, Image Photo Board, News, Forums tout en un. Il s’agissait d’une variété locale d’Alphabet, et tous les quelques informaticiens de Iakoutsk voulaient y trouver un emploi. La société propriétaire du portail s'appelait Sinet (abréviation de Sakha Internet) – une société au sein de laquelle inDrive fut rapidement créée.
Il convient de souligner ici qu'en plus de Sinet, il existait une grande société de développement de jeux appelée Mytona à Yakutsk, qui agissait également comme un pôle d'attraction pour les informaticiens locaux. Cette société a démarré avec deux frères du petit village nordique de Khonuu qui ont emprunté de l'argent à leurs parents pour commencer à développer leur premier jeu indépendant. Dans l’état actuel des choses, inDrive et Mytona ont « quitté » la Russie.
En ce qui concerne les services de taxi, il était difficile et coûteux de se déplacer à Iakoutsk avant que inDrive ne fasse son apparition. Les choses fonctionnaient à l'ancienne, il fallait d'abord appeler et réserver un véhicule via le répartiteur, puis attendre longtemps l'arrivée du chauffeur. Pire encore, votre appel pourrait être oublié et l'attente pour la voiture dépasserait alors toutes les limites possibles.
Un autre problème a été les vacances du Nouvel An (jours fériés importants dans le pays, deux semaines de fête, personne ne travaille), lorsque les services de taxi ont augmenté leurs prix plusieurs fois, poussant ainsi les passagers à bout. À l'hiver 2012, plusieurs gars intelligents ont créé un groupe Vkontakte appelé « Communauté des conducteurs indépendants de Yakutsk ». Dans celui-ci, vous pourriez indiquer que vous deviez vous rendre d'un point A à un point B et laisser votre numéro de téléphone. Ensuite, un chauffeur attentionné qui se dirige par là pourrait vous appeler pour organiser un trajet. À la fin du voyage, le passager devait laisser de l'argent au chauffeur pour couvrir les frais d'essence.
Bien sûr, très vite, au lieu d’une compensation pour le prix de l’essence, les gens ont commencé à payer pour le trajet. En peu de temps, le groupe a gagné en popularité et a commencé à supprimer progressivement les services de taxi traditionnels.
A cette époque, Arsen Tomsky, le directeur de Sinet, voit dans ce groupe une idée prometteuse pour développer son entreprise et décide de le racheter. Essentiellement, ce point marque le début de l'existence d'inDrive.
En octobre 2013, j'ai rejoint l'entreprise en tant que troisième développeur alors que la startup en était à son cinquième mois d'activité. À cette époque, la version Android de l'application était déjà disponible et nos gars recherchaient un développeur iOS. Avant de rejoindre l'entreprise, j'ai travaillé pendant un an dans un petit studio de startup développant des livres interactifs sur iPad pour enfants, d'abord dans notre langue maternelle. À ce moment-là, je pensais changer de métier.
J'avais un gros avantage pour moi : mon MacBook, ce qui était rare à Iakoutsk à l'époque. Je pensais que c'était ma chance d'essayer de trouver un emploi chez Sinet. Je n'avais aucune expérience dans le développement iOS, mais d'une manière ou d'une autre (probablement en raison du manque de candidats appropriés), j'ai réussi à décrocher un emploi dans l'entreprise de mes rêves.
Le développement iOS était natif : j'ai codé en Objective-C. Aujourd’hui, la situation n’a pas beaucoup changé, la seule différence étant que Swift est désormais couramment utilisé à la place d’Objective-C. Alors qu'Android était codé en Java, le backend était écrit en PHP. De nombreux éléments définis à l'époque restent aujourd'hui au cœur de la base de code d'inDrive.
À l’époque, l’équipe principale de développement iOS n’était que moi. En 2015, une deuxième personne est venue me rejoindre. Une fois qu’un troisième a été embauché en 2016, nous avons commencé à croître très rapidement. Il n'y avait pas d'équipes multiplateformes à l'époque, juste des équipes de développement iOS, Android, back-end et des testeurs QA.
Je me demande comment le chauffeur inDrive acceptait les demandes de trajet à cette époque. C'est ce qu'on appelle un arrangement par appel : un passager passe une commande, les conducteurs à proximité la voient simultanément sur leur liste de demandes et ceux qui aiment l'offre cliquent dessus. Ce qui était étrange à l’époque, c’était qu’on connectait simplement un conducteur et un passager via le réseau de communication cellulaire ! Parfois, plusieurs conducteurs appelaient en même temps pour la même demande de trajet. Après l'appel, nous montrions au passager une liste de tous les chauffeurs qui avaient appelé afin qu'il puisse choisir celui qui lui convenait le mieux. L'ensemble du dispositif semblait fonctionner selon le principe selon lequel "l'ordre revient à celui qui appelle en premier". Pour cette raison, des chauffeurs se sont plaints auprès du service client, signalant qu'ils n'avaient pas suffisamment de temps pour récupérer la commande.
Pendant longtemps, il y avait une légende selon laquelle iOS avait beaucoup plus de chances d'obtenir une commande qu'Android. Il y avait une part de vérité là-dedans, car l’interface fonctionnait effectivement plus rapidement sur iOS. Pendant longtemps, nous n'avons pas introduit de processus d'acceptation de commande « sans appel », plus couramment utilisés par d'autres services de covoiturage, pensant que les passagers auraient plus confiance dans le conducteur s'ils avaient le temps de se parler sur le téléphone avant le trajet. Évidemment, une telle stratégie avait ses limites, et de surcroît assez sérieuses.
De plus, la première version de l'application comportait un onglet intéressant appelé « Pilotes disponibles ». En cliquant dessus, vous pourrez accéder à la carte, trouver un chauffeur disponible, l'appeler personnellement et organiser un trajet. Naturellement, à l’époque, il n’existait pas encore de connexions cryptées.
De plus, il existait une troisième façon de trouver un chauffeur : après avoir créé une demande de trajet (commande), je pouvais trouver un chauffeur approprié sur la carte et lui envoyer mon offre via un message personnel. Cela s'appelait « Commande personnalisée ».
De nos jours, les gars regrettent parfois l'époque où tout était aussi simple, rapide et amusant que possible. Je ne savais pas ce qu'étaient les référentiels, et après la sortie de chaque version, j'ai archivé le dossier du projet et l'ai enregistré sur mon disque dur (des centaines d'archives y sont encore stockées) et sur Google Drive. Dans les premières années, notre projet dans Xcode s'appelait startPage , alors que nos tâches produit étaient écrites directement sur le tableau blanc.
Je n'étais pas encore familier avec les modèles de programmation et les architectures de base du développement iOS. Le résultat final était une pile de contrôleurs Massive View et de storyboards avec des dizaines d'écrans. Il s'agissait d'une véritable programmation StackOverflow.
Petit à petit, notre équipe de startup a commencé à s'agrandir. De nouvelles personnes se sont jointes et les premiers processus simples ont émergé. En 2014, l'entreprise comptait déjà 10 collaborateurs. C'est à cette époque que nous avons pris l'avion pour Novossibirsk pour participer à une conférence. C'était nous trois, toute l'équipe de développement. Ce fut une autre étape importante dans l'histoire de l'entreprise, car dans la République de Sakha, on se sent isolé du grand monde extérieur. Des voyages comme celui-ci étaient pour nous un événement majeur.
Fin 2013, nous avons été rejoints par Sasha Pavlov, la créatrice du groupe VKontakte, racheté par Arsen Tomsky. Avec lui à bord, nous avons commencé nos premières tentatives de lancement dans d’autres villes. Un jour, Sasha s'est envolée pour Sakhaline pour discuter avec les chauffeurs. Il a imprimé des brochures promotionnelles et a commencé à les distribuer dans le parking du centre commercial, mais a été chassé par la sécurité. Finalement, nous avons eu un lancement réussi à Sakhaline et celui-ci a immédiatement affiché une excellente croissance.
Nous avons ensuite commencé à le lancer dans d'autres villes du nord et de l'est de la Russie : Irkoutsk, Tomsk, etc. Ces régions ressemblent à Iakoutsk dans la mesure où elles connaissent des conditions climatiques sévères similaires et où il n'y a pas d'autres applications majeures. Dans ces villes, l’application a commencé à connaître une croissance presque instantanément.
Nous avions l'habitude de nous asseoir dans notre petit bureau et de rêver : « Imaginez, un jour nous gagnerons plus que Ykt.ru ». Nous avons bien ri, mais en réalité ce moment est venu très vite.
Notre PDG a toujours voulu une histoire plus grande et sans rapport avec Iakoutsk. C'est un entrepreneur dans l'âme et il est toujours à la recherche de nouveaux défis. Cela nous semblait évident et logique, donc personne ne se demandait pourquoi nous faisions ce que nous faisions.
C'était toujours cool de comprendre à quel point nous, les gars de Iakoutsk, pouvions rivaliser avec les grandes entreprises. A cette époque, nos principaux concurrents étaient Taxi Maxim et Yandex Taxi . Nous ne pensions pas encore à Uber . Mais il a vite fallu réfléchir longuement à la situation, mais je vous en parlerai plus dans mes prochains articles si cela vous intéresse.
PS C'est ma première expérience d'écriture d'un article et je souhaite en écrire davantage sur l'histoire de l'évolution d'inDrive, comment je suis devenu CTO et les défis techniques et non techniques que nous avons rencontrés et avons dû surmonter. Ce serait donc génial d'avoir vos commentaires sur ce qui pourrait être amélioré ici et sur ce que vous seriez intéressé à lire dans les prochains articles. Partagez-les dans les commentaires!
PPS Les étapes de l'évolution de Sinet et d'inDrive sont décrites plus en détail dans le livre du PDG de l'entreprise : « inDriver : From Yakutsk to Silicon Valley ».