Regard intérieur sur le processus de développement d'applications mobiles de Facebook

Auteur: Laura McKinney
Date De Création: 4 Avril 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Regard intérieur sur le processus de développement d'applications mobiles de Facebook - Applications
Regard intérieur sur le processus de développement d'applications mobiles de Facebook - Applications

Contenu


Récemment, j'ai visité le siège social de Facebook à Londres pour en savoir plus sur le processus de développement et de maintenance de son application mobile Facebook. Il se passe ici beaucoup plus de choses que vous ne le réalisez probablement: certaines des applications de Facebook sont traitées ici dans leur intégralité, comme WhatsApp pour les ordinateurs de bureau et les applications professionnelles pour les entreprises.

Les bureaux sont exactement ce que vous attendez de l’image de Facebook, mais peut-être pas tout à fait au niveau des excès du réseau social. C’est un endroit où le travail est sérieux, mais où règne une atmosphère branchée, décalée et décontractée. Les employés peuvent emporter des ordinateurs portables où ils veulent, il y a une salle d’imprimerie (juste parce que), des œuvres commandées sur plusieurs murs et une tortue géante Ninja - je ne me suis jamais demandé pourquoi.


Oh, et la nourriture est incroyable. J'étais là pendant le nouvel an chinois et j'avais plusieurs ventre de porc. Bon temps.

Cependant, je n’étais pas là pour apprécier le décor et la cuisine, j’étais là pour en savoir plus sur Facebook sur mobile. Plus précisément: comment pouvez-vous même maintenir un projet aussi vaste et ambitieux? Le backend de Facebook sert plus de deux milliards de personnes, et l'application Android à elle seule voit une nouvelle version publiée chaque semaine.

Comment gérer une application avec un nombre de fonctionnalités aussi ambitieux?

J'ai parlé à Tal Kellner via le système de téléprésence de Facebook. Tal est responsable de programme technique et est responsable de l'équipe d'ingénierie de publication basée au bureau d'ingénierie de Tel-Aviv. Elle était plus qu'heureuse de partager les détails difficiles.


Tal et son équipe téléchargent pour la première fois leur version allégée de Facebook sur iOS

Ce que j'ai appris était plutôt fascinant, tant du point de vue du développeur que de l'utilisateur. Voici ce que j'ai découvert.

Gestion de projet sur Facebook - Why Scrum> Waterfall

Lorsque vous examinez un grand projet, vous devez tenir compte de votre approche de gestion de projet. Un tel exemple s'appelle la gestion de projet «en cascade». Il s’agit d’une approche séquentielle et linéaire dans laquelle vous travaillez successivement sur une phase spécifique, par exemple en passant de l’idéation à la mise en œuvre, en passant par le test et la publication.

des entreprises comme Facebook optent plutôt pour une approche plus moderne de la gestion de projet appelée «scrum»

De manière cruciale, dans cette approche, vous ne commencez pas la phase suivante tant que la phase précédente n'est pas terminée. Le système provient de la fabrication, où certaines étapes s'appuient souvent sur l'étape précédente: vous devez vous procurer des briques avant de pouvoir construire un mur!

En ce qui concerne les logiciels, cette approche est restrictive. Dans le pire des cas, une mise à jour peut prendre si longtemps à être déployée qu'elle est obsolète à son arrivée. Duc Nukem Pour toujours quelqu'un?

Ainsi, certaines sociétés de logiciels optent plutôt pour une approche plus moderne appelée «scrum», qui est une méthodologie agile. Cette méthode donne la priorité au travail qui compte le plus et le divise en morceaux modulaires. Il repose sur la communication entre les services internes et même sur des agents individuels travaillant seuls sur leurs propres coins de code.

Le résultat, en théorie, est que tout le monde peut travailler tout le temps sur ce qui est le plus pressant pour lui et que chaque partie de l’entreprise sait ce qu’elle fait. Le niveau de propriété de chaque ingénieur est élevé et chacun est finalement responsable de son propre travail. Non seulement cela rend l'entreprise plus agile, mais cela espère également augmenter la satisfaction du lieu de travail. Personne n'est juste un rouage de la machine.

n'importe qui de n'importe où dans l'organisation peut suggérer une idée pour une nouvelle fonctionnalité

J'ai été très impressionné d'apprendre que n'importe qui, n'importe où dans l'organisation, pourrait suggérer une idée pour une nouvelle fonctionnalité, puis se mettre au travail là-dessus si on le lui donnait. Parfois, cela pourrait même devenir sa propre application séparée! Facebook est beaucoup plus un projet collaboratif que la vision imposée de haut en bas de quelques personnes (ou une personne), souvent décrite.

Cela permet à Facebook d'implémenter un cycle de développement extrêmement rapide, permettant une nouvelle mise à jour mobile chaque semaine et des milliers d'engagements (modifications de code proposées) entre ces deux opérations. Si vous pensez que cela est impressionnant, la version Web (dont le backend sert également l’application mobile) est mise à jour toutes les deux à trois heures!

Facebook est généralement très favorable aux nouvelles idées et aux startups. Il a même une initiative appelée LDN LAB consacrée à soutenir de nouvelles idées et de nouvelles entreprises.

Trouver un équilibre

Tiré des diapositives de Tal

Bien sûr, il y aura toujours une limite à ce que l'entreprise peut gérer. Avec autant de code, il y a toujours place à l'amélioration, mais il doit arriver un moment où la version est considérée comme «assez bonne».

C’est là que le «triangle d’or» entre en jeu. Les trois points de ce triangle représentent les caractéristiques, la qualité et le temps. Chaque entreprise a un choix à faire ici: en ce qui concerne le temps critique, accordez-vous la priorité aux nouvelles fonctionnalités au lieu de prendre un peu plus de temps? Autorisez-vous un bogue mineur existant à glisser à travers le filet si cela signifie que vous pouvez ajouter plus de fonctionnalités? Lorsque vous ne pouvez pas tout faire, vous devez définir des priorités.

Chez Facebook, les priorités sont la qualité et le temps. Si une mise à jour est en retard sur la fenêtre allouée, une fonctionnalité sera probablement repoussée. plutôt qu'un coin coupé ou la mise à jour retardée.

Contrôle de version et changements de jonglage

Pour gérer ces mises à jour et modifications du code, Facebook utilise sa propre version modifiée de Mercurial. C’est la place du très répandu Git, qui n’a apparemment pas évolué aussi bien pour les besoins de la société. Phabricator est l'équivalent de GitHub, et utilise beaucoup de plugins pour aider à rationaliser le flux de travail et parfois juste pour rendre les choses plus amusantes (Facebook aime apparemment ses memes).

Mercurial, comme Git, est un système de contrôle de version pour les non-programmeurs. Il permet à un grand nombre de personnes de travailler sur un seul logiciel et d’apporter des modifications et des corrections sans compromettre la version principale de l’application, appelée «branche principale». Ces outils permettent d’éviter les conflits de code et d’expérimenter. Une fois qu'un changement a été entièrement approuvé sur une branche de test, il est ensuite transmis au maître.

Imaginez si un mauvais programmeur faisait une faute de frappe qui cassait tout le code et qu'il n'y avait qu'une version! Ce serait une mauvaise journée pour tout le monde.

Des outils tels que Mercurial permettent de mettre en œuvre l'approche Scrum avec une relative facilité, permettant à tout le monde de travailler simultanément sur des fonctionnalités et des bogues spécifiques avant de tout fusionner dans un grand pot.

Une fois par semaine, une version candidate retirée du master sera ensuite passée à la phase de test. Les codeurs qui ont passé toute la semaine à travailler sur des corrections de bugs ou de nouvelles fonctionnalités se croiseront alors les doigts dans l’espoir que leur travail parviendra à la nouvelle mise à jour.

Toute correction ou modification de dernière minute apportée par les membres de l'équipe nécessitera d'être “choisie” pour son inclusion dans la nouvelle branche par les responsables. Ils auraient utilisé des pots-de-vin sous forme de chocolats et d'alcool offert aux décideurs.

Pour compiler, Facebook utilise un autre outil appelé Buck. Cet outil de construction unique peut tout créer pour l’emballage de l’application. Il n’est pas nécessaire d’utiliser des options distinctes telles que Gradle ou Ant pour cibler différentes plates-formes.

Attraper des bugs dans le temps

Étant donné que tout le monde travaille sur des tâches différentes et que de nombreuses mises à jour sont régulièrement publiées, il est très important que les entreprises s’assurent que leurs logiciels fonctionnent et qu’elles ne présentent pas de bugs sérieux. Pour la plupart, Facebook a une très bonne réputation de garder les choses en cours.

À cette fin, l'équipe divise les tests de logiciels en niveaux, appelés C1, C2 et C3.

C1 est un test interne et tous les employés exécuteront cette version. Au cours de C2, la version concerne 2% du grand public et C3 est en production. Si quelque chose de vraiment grave devait être trouvé, chaque employé pourra accéder à un bouton d’arrêt d’urgence pour arrêter la production.

Les volontaires qui se proposent de faire progresser les niveaux portent le nom d’arbres "huggers" (parce que des branches) et le font en plus de leur travail habituel.

Sur Mobile, les niveaux similaires s'appellent alpha, beta et prod. Alpha signifie un test interne, que tous les employés exécuteront. Le processus de toute entreprise qui utilise ses propres produits de cette manière s'appelle «dogfooding» - de «manger sa propre nourriture pour chien».

Les testeurs disposent également d’outils uniques et intéressants pour signaler rapidement les bogues. Le premier est «Rageshake», où secouer l'appareil par frustration permettra de générer un rapport de bogue, comme avec Google Maps.

Les testeurs disposent également d’outils uniques et intéressants pour signaler rapidement les bogues.

Au cours de l'alpha - qui fait effectivement référence à tout test interne - Facebook utilise également des tests automatiques pour exécuter l'application. Par exemple, un logiciel récemment acquis appelé «Sapienz» fonctionne essentiellement en cliquant sur chaque bouton et en utilisant chaque fonctionnalité dans un assaut aléatoire jusqu'à ce qu'il déclenche un crash. Il enregistre ensuite la trace de la pile, enregistre l'action et en rend compte.

L'application bêta (la version testée par le grand public) passe par une petite sous-section (~ 2%) du grand public. Ce petit extrait recevra la mise à jour à l'avance, fournissant à Facebook des informations en temps réel. Si tout semble bien aller, la mise à jour est diffusée à l'ensemble de la population et le processus recommence.

De puissants outils d'automatisation et de multiplication de force

Pour que tout ce processus soit aussi rapide et fluide que possible, Facebook utilise un grand nombre d'outils différents. Nous avons déjà vu comment la société utilise Phabricator et Sapienz, mais elle dispose d’autres outils et plugins pour d’autres étapes.

Un outil appelé Picknic regroupe toutes les demandes d'attraction (les modifications apportées par les employés) en un seul endroit pour un examen rapide et facile.

Lorsque le test génère une erreur, un robot appelé Nagbot en informe les responsables et les pousse doucement à faire le travail. Utiliser une intelligence artificielle rudimentaire pour gérer ce processus garantit non seulement la réalisation du travail, mais permet également au manager d'éviter d'être le «méchant» en se lamentant constamment!

lorsque le test génère une erreur que quelqu'un doit corriger, un robot appelé Nagbot en informe les responsables et les pousse doucement à l'exécution du travail.

Crashbot est un autre bot responsable de la notification de ces erreurs au fur et à mesure. Il est préférable aux mesures de la console Google, dans la mesure où il génère des rapports en temps réel. Crashbot signalera un problème lorsque le problème dépassera un «seuil de crash acceptable». Cela peut être dû au nombre de personnes rencontrant l'erreur ou au nombre de fois qu'un utilisateur unique a rencontré la même erreur. Quoi qu'il en soit, Facebook aura également une métrique indiquant le nombre d'utilisateurs tristes.

Pour la communication interne, Facebook utilise quelque chose appelé Workplace. Il s’agit bien d’une version de Facebook destinée aux entreprises. Elle constitue un moyen utile d’obtenir des informations sur les membres de l’équipe et de communiquer rapidement avec ceux qui sont assis de l’autre côté du bureau tentaculaire. Facebook vend également ce logiciel à des tiers.

Bien entendu, Facebook ne perdra pas de temps à télécharger chaque nouvelle version de ses applications sur le Play Store, l'App Store, Amazon et tout le reste. Il existe également une application pour cela appelée Mobile Push Train.

Pensées de clôture

Maintenir une application comme Facebook à jour est une entreprise immense et la société doit encore convaincre les utilisateurs d'installer ces mises à jour. Ceci est particulièrement difficile dans les pays où la connectivité n'est pas garantie. Au Canada, seulement 1% des utilisateurs utilisent encore une version de Facebook de plus d'un an. En Ethiopie, ce nombre est plus proche de 50%!

De toute évidence, l'équipe de Facebook travaille très fort et utilise une tonne d'outils et de processus pour que tout soit aussi simple que possible. En fin de compte, l’équipe de développement souhaite adhérer à cinq principes directeurs:

  • Gardez le maître propre.
  • Avoir une équipe avec une expertise en ingénierie de publication.
  • Libérer à l'heure souvent.
  • Produits de nourriture pour chiens.
  • Soyez gentil avec les utilisateurs.

Cela semble simple, mais comme vous pouvez le constater, il faut beaucoup de plaques tournantes. Même maintenir tous les outils utilisés dans le processus est un projet en soi!

Pour sa part, Facebook entretient une atmosphère amicale et enjouée au bureau de Londres. Les membres de l'équipe échangent des GIF et des mèmes via des plug-ins, ils nomment les chambres en fonction de «choses que les Britanniques détestent» et de jeux de mots shakespeariens, et ils sont très fiers de leur travail. Sur Facebook, ils travaillent fort et jouent fort, et il semble que le système fonctionne dans l’ensemble.

La prochaine fois qu'une nouvelle mise à jour sera déployée pour l'une de vos plus grandes applications, réfléchissez à tout le travail et à l'organisation nécessaires pour la réaliser.

amung a annoncé une baie de e bénéfice de 28,7% ur un an.Le activité d’affichage, de mémoire et de mobilité ont le plu touchée.amung compte ur le technologie future ...

La vague de martphone à petit budget de amung lancée en Inde e pouruit avec la ortie du amung Galaxy A70. Le dernier-né de la famille Galaxy A, en contante expanion, et prêt à...

Le Plus De Lecture