«En se concentrant sur les problèmes d'accessibilité, vous obtenez des utilisateurs extrêmement dévoués.» Entretien avec John Fox (Netflix)



On sait que l'accessibilité est importante, mais tout le monde ne prête pas suffisamment attention à la disponibilité de son application.

Il est également connu que l'apparition de la société NeXT et son rachat ultérieur par Apple est un épisode important dans la carrière de Steve Jobs, mais peu ont personnellement écrit des logiciels pour les ordinateurs NeXT.

Le développeur de Netflix iOS, John Fox, vient à notre conférence Mobius avec un rapport sur l'accessibilité, et en prévision de cela, nous avons décidé de lui poser des questions: nous avons commencé par sa longue carrière, qui présentait NeXT, puis nous sommes passés au sujet de l'accessibilité. Le texte original en anglais de l'interview a été publié sur Medium, et pour Habr il a été traduit en russe.

- Bonjour, John. Il est intéressant de parler avec une personne qui écrit des applications mobiles depuis 2010 et a commencé à travailler dans l'informatique il y a même des décennies. Dites-nous comment vous avez commencé à le faire.

- Lorsque j'étais étudiant à l'Université de New York, le club dans lequel j'étais incitait l'administration à allouer des ressources pour l'achat d'un Mac, d'une imprimante laser et d'une application de mise en page QuarkXPress. Tout cela est venu moins cher que le coût d'un ensemble typographique d'un numéro de la revue universitaire que nous avons publié, et des fonds étaient déjà alloués pour cet ensemble. Après mes études, j'ai obtenu un emploi dans une entreprise basée à New York qui s'occupait de traductions et de formation linguistique. Parmi nos clients se trouvaient des cabinets financiers et des cabinets d'avocats qui avaient besoin de traductions dans un délai extrêmement court - plus court que ce que tout traducteur en direct pouvait faire.

Dans le New Jersey, à cette époque, il y avait une entreprise qui fournissait du temps sur un ordinateur central qui effectuait la traduction automatique. Aux États-Unis, IBM était initialement engagé dans la traduction automatique, il s'agissait d'ordres de défense pendant la guerre froide, puis le résultat a été privé d'images. La citation biblique «l'esprit veut, mais la chair est faible» («l'esprit est vigoureux, la chair est faible»), l'algorithme traduit sans ambages dans l'esprit de «la vodka est bonne, mais la viande est mauvaise». Malgré ce niveau primitif, l'algorithme a pu être entraîné. Il n'a donné que la version principale du texte, que le traducteur a ensuite éditée. La mise en place de ce système a été une tâche ingrate: nous avons envoyé des documents via une connexion directe d'une machine de traitement de texte propriétaire à notre Mac, puis les avons envoyés plusieurs fois au mainframe et édité le résultat, et finalement rendu le document fini parfaitement formaté aux clients.

Je peux imaginer comment tout le monde a levé les yeux au ciel en décrivant une telle technologie antédiluvienne. Mon fils adolescent étouffe de rire quand je lui dis à quoi ressemblaient les jeux quand j'avais son âge. Mais c'est normal: ce qui est aujourd'hui la technologie la plus avancée va ramasser de la poussière dans le musée demain. Au fil du temps, seule la capacité de collecter de nouvelles solutions demeure.

- Comment avez-vous commencé à travailler avec des applications mobiles?

- Peu après mon déménagement de New York à San Francisco, le premier ordinateur NeXT est sorti. Il était en avance sur son temps d'au moins une décennie. Ici, il est nécessaire de parler de la recherche de Xerox PARC, qui a donné beaucoup de fruits très précieux - par exemple, les premières interfaces graphiques qui sont devenues populaires grâce au Mac. NeXT a utilisé deux autres résultats de ces études: la mise en réseau et la programmation orientée objet. Le CERN célèbre maintenant le 30e anniversaire du World Wide Web - cette réalisation a été rendue possible grâce au fait que l'accès à la programmation était ouvert aux personnes sans diplôme en informatique. S'il n'y avait pas NeXT, j'aurais à peine commencé à écrire des logiciels. Au début, j'ai appris à concevoir et à prototyper des applications à l'aide d'Interface Builder, puis j'ai commencé à écrire des applications Web avec WebObjects (un autre outil NeXT). Au moment où Apple a acquis NeXT, j'avais déjà une bonne compréhension des technologies et des modèles que Cocoa et Cocoa Touch utilisent toujours.

- Avant iOS, vous développiez pour Mac OS, puis c'était moins courant que maintenant. Quelles ont été vos impressions?

- Cocoa (un ensemble d'API héritées de NeXTSTEP) a alors donné aux développeurs bien plus que l'API Windows. Grâce à Cocoa, le programmeur a même pu créer seul un logiciel beau et complexe. Au moment où OS X est arrivé, il y avait un nombre important de développeurs indépendants, dont beaucoup avaient déjà développé pour NeXT - par exemple, Will Shipley, créateur de la Delicious Library. Ils préféraient être les premiers dans le village, plutôt que les seconds dans la ville, et en conséquence, leur village s'est transformé en métropole. J'ai suivi le même chemin - mon application MemoryMiner a reçu d'excellentes critiques, s'est bien vendue et m'a permis de fabriquer plusieurs autres produits basés sur elle, et m'a également donné du travail en tant que consultant.

- Vous travaillez chez Netflix depuis 2015. Quelles sont vos responsabilités dans cette entreprise?

- Lorsque je suis arrivé sur Netflix, leur application était hybride (interface utilisateur en HTML / JavaScript / CSS, un lecteur en code compilé), et ils l'ont entièrement copiée sur Cocoa Touch. Après sa réécriture, basée sur des tests A / B, nous avons apporté de nombreuses améliorations, qui étaient beaucoup plus faciles à faire avec une application Cocoa moderne.

- Sur LinkedIn, votre poste est désigné comme «ingénieur axé sur les produits», ce qui est un libellé plutôt inhabituel. Qu'est-ce que cela signifie et quelle est la différence avec un ingénieur logiciel?

- Bien entendu, pour une application de qualité, il est important que son code soit concis, qu'il soit facile à maintenir et qu'il compile sans erreur. Mais en plus de ces critères, il existe de nombreux autres, non moins importants: convivialité, belle apparence, clarté de l'application au premier lancement (en particulier pour les applications personnalisées). Si vous voulez créer un produit à part entière, ces aspects sont aussi importants que la conception appropriée de l'application (classes bien planifiées, tests unitaires, etc.)

À l'époque, je passais beaucoup de nerfs à expliquer au collègue têtu "barbu" (qui avait travaillé sur UNIX sur la ligne de commande avec Emacs toute sa vie) pourquoi les interfaces graphiques élégantes étaient importantes. À cause de ces conflits, j'ai commencé à développer des logiciels, et ce fut une agréable découverte pour moi que l'apprentissage d'un langage de programmation n'est pas trop différent de l'apprentissage d'un langage normal. Mais la familiarité avec la syntaxe et la grammaire n'est que le début, tout comme la familiarité avec les accords en musique.

- Vous avez écrit sur Twitter que vous êtes un «ingénieur UI». Cela signifie-t-il que vous travaillez exclusivement avec l'interface utilisateur d'applications mobiles - avec animation, visualisation, etc.?

- Oui, maintenant je m'occupe presque exclusivement de l'interface utilisateur: animation, lecture vidéo, localisation, accessibilité. Dans le passé, je travaillais beaucoup avec le code du serveur, mais l'objectif ultime était toujours de créer une interface utilisateur de qualité.

- Dites-nous quelles tâches quotidiennes un développeur mobile dans Netflix doit résoudre.

- Nous effectuons des tests A / B, à la suite desquels nous créons de nouvelles fonctionnalités, soutenons et améliorons les fonctionnalités existantes, partageons les connaissances et améliorons notre travail (contrôle qualité, localisation, etc.). Puisque nous contrôlons nos points de terminaison, notre application peut accéder aux bonnes données exactement lorsque cela est nécessaire.

- Quelle est la structure de votre équipe - par exemple, les développeurs iOS sont-ils en contact avec les développeurs Android?

- Nos équipes - iOS et Android, et le développement mobile et le contrôle qualité - travaillent ensemble. Nous sommes tous assis ensemble et nous avons une atmosphère très conviviale.

- Comment les testeurs interagissent-ils exactement avec les développeurs mobiles?

- La responsabilité de la qualité incombe à tous, donc la responsabilité du développeur est d'aider à créer des plans de test en collaboration avec les testeurs. Nous automatisons tout ce qui est possible (par exemple, créer des captures d'écran) afin que les gens ne puissent faire que ce qu'ils font de mieux.

- Netflix a un blog technologique sur Medium. Existe-t-il quelque chose de similaire spécifiquement pour les développeurs mobiles?

- Nous avons un Twitter Netflix UI Engineers assez actif, dédié au développement de l'interface utilisateur dans son ensemble. Parfois, nous faisons des performances, qui sont disponibles sur YouTube. Il en existe une sélection de quatre dédiées spécifiquement au développement d'applications mobiles.

- Discutons du sujet de votre exposé à Mobius. En ce qui concerne l'accessibilité des applications, les gens pensent souvent aux aveugles et aux malvoyants, mais l'accessibilité peut non seulement les aider. Quels autres cas les développeurs mobiles doivent-ils garder à l'esprit?

- L'automne dernier, nous et deux autres développeurs du hackathon avons mené une expérience dans laquelle l'application iOS était contrôlée sans les mains à l'aide du kit AR. Cette expérience a attiré l'attention des médias . Son objectif était d'aider les personnes atteintes de maladies du système musculo-squelettique.


- Que se passe-t-il si vous ne pensez pas à la disponibilité de votre application iOS - dans quelle mesure cela rend-il la vie difficile aux utilisateurs?

"Nous devons rendre hommage à Apple ici: ils fournissent des fonctionnalités de base pour l'accessibilité hors de la boîte." Si vous utilisez des composants de l'UIKit standard, votre application fonctionnera en général. Mais si vous utilisez vos propres composants, la responsabilité vous incombe. Si vous utilisez des technologies Web, votre application sera probablement inaccessible. Par défaut, UIView ne possède pas d'étiquette d'accessibilité, elle ne sera donc pas reconnue par VoiceOver, la technologie d'accessibilité la plus utilisée dans iOS.

Les problèmes d'accessibilité pour les logiciels Apple ont une communauté très dynamique, il a un site Web appelé AppleVis . Il y a tout le temps des discussions animées sur les applications qui sont bien accessibles et celles qui ne le sont pas.

- Les problèmes d'accessibilité entrent-ils en conflit avec d'autres tâches? Par exemple, un concepteur veut utiliser une belle police, mais elle se lit pire qu'une police plus ennuyeuse. Comment résoudre ces conflits?

- Pour les personnes ayant une déficience visuelle et un daltonisme, les principales difficultés ne surviennent pas à cause de la police elle-même, mais à cause de sa taille et de son contraste. Cela aide si votre application utilise Dynamic Type .

En général, un beau design et une convivialité ne sont pas du tout des caractéristiques mutuellement exclusives. Même si votre application ne prend pas en charge Dynamic Type, les paramètres d'agrandissement et d'inversion des couleurs peuvent grandement faciliter le travail avec l'application.

- Lors du développement d'une nouvelle application, les problèmes d'accessibilité peuvent facilement être reportés à plus tard: ils disent qu'il est trop tôt pour y penser lorsque la fonctionnalité de base n'est pas encore implémentée. Quand est-il temps d'y penser? Les considérations d'accessibilité affectent-elles les décisions pour l'ensemble de l'application, vous devez donc y penser immédiatement?

- D'une manière générale, il est préférable de prendre en compte les problèmes d'accessibilité dès le départ. Mais en même temps, fournir un «programme minimum» pour l'accessibilité nécessite un peu de travail, donc si vous avez un stade expérimental précoce et que vous n'êtes pas à la hauteur, vous n'obtiendrez aucun coût supplémentaire d'une implémentation ultérieure. Cependant, à en juger par mon expérience, la résolution des problèmes d'accessibilité permet de jeter un regard neuf sur d'autres problèmes de convivialité, y compris des problèmes inattendus.

- Quelle que soit l'importance de l'empathie, de nombreuses décisions sont prises sur la base d'indicateurs économiques. Il peut être beaucoup plus facile de convaincre le gestionnaire d'investir des ressources pour garantir la disponibilité, s'il existe des données, combien de nouveaux utilisateurs cela apportera. Existe-t-il des statistiques à ce sujet?

- Il est difficile de trouver de telles statistiques. Je préfère regarder cette question différemment. Toute application, même la plus récente, a toujours des concurrents sur le marché qui remplissent les mêmes fonctions. Pour créer une image pour votre application, vous devez «accrocher» les utilisateurs à quelque chose, puis ils commenceront à en parler à tout le monde. Si vous rendez votre produit pratique pour les utilisateurs qui dépendent d'un logiciel accessible, alors, à leur tour, ils commenceront à faire l'éloge de votre application avec force et force, il sera entendu par les gens.

- Certains développeurs diront: "Eh bien, Netflix a une percée dans les ressources, et nous sommes ici dans une petite équipe pleine de tâches, donc nous n'avons pas à travailler sur l'accessibilité." Voulez-vous répondre à quelque chose?

- Nous avons vraiment plus de ressources qu'une petite entreprise, mais nous considérons ce travail aussi utile à d'autres égards. Par exemple, une partie importante des problèmes liés à l'automatisation des tests est résolue en fournissant des identificateurs d'accessibilité pour les éléments d'interface utilisateur. L'ingénieur QA de notre équipe qui a fait cela a accordé suffisamment d'attention à cela pour ajouter des étiquettes d'accessibilité, puis tout est né de cela. Ici, vous pouvez faire une analogie avec la localisation: il y a une tentation de coder en dur les chaînes dans les éléments d'interface utilisateur, mais cela limitera considérablement le marché sur lequel vous pouvez vendre votre application. En vous concentrant sur les problèmes d'accessibilité, vous créez des utilisateurs extrêmement dévoués.

- Vous avez fait des présentations lors de nombreuses conférences. Et comment était votre tout premier rapport?

- C'était en 1995, j'ai présenté mon système de routage et d'approbation pour NeXT avec un utilisateur de ce système à la Seybold Publishing Conference à Boston. J'étais très inquiet pour la performance, mais les dieux de la performance étaient de mon côté, et finalement tout s'est bien passé. J'ai également eu des échecs catastrophiques pendant le rapport, donc quand je me tourne vers une démo en direct, je garde toujours une vidéo pré-préparée au cas où, afin qu'il y ait une version de sauvegarde.

- Avez-vous déjà visité Saint-Pétersbourg et entendu parler des nuits blanches? Mobius se tiendra en mai, alors qu'ils commencent déjà.

- En Russie, je n'étais qu'une fois, et à Saint-Pétersbourg - pas une seule fois, et il sera très intéressant pour moi de regarder votre ville. Et quant aux nuits blanches, je peux raconter une histoire qui m'est arrivée avant même l'université, quand j'étais avec un ami en Suède au début de l'été. Là, nous avons décidé d'utiliser la lumière du jour sans fin pour la fête. C'est juste que le plaisir s'est terminé avec l'apparition précoce de la maison d'un parent qui n'était pas très heureux de trouver une entreprise d'adolescents ivres dans son sauna. Depuis lors, je suis devenu un peu plus responsable dans mon approche de la vie.

Mobius se tiendra à Saint-Pétersbourg du 22 au 23 mai . John y parlera du thème «Accessibilité pour iOS: bien faire en faisant le bien», et en plus de cela, il y aura des dizaines d'autres rapports sur le développement mobile. Vous pouvez voir le programme complet sur le site Web de la conférence , acheter des billets au même endroit.

Source: https://habr.com/ru/post/fr450680/


All Articles