Conférencier | Transcription |
| Aurore Tiffany-Davis | Salut, je suis Aurora Tiffany-Davis. Je suis développeur de logiciels au sein de l'équipe JMP Live. Et j'aimerais vous parler aujourd'hui de la manière dont nous développons des logiciels au sein de l'équipe JMP Live. |
| Tout d'abord, j'aimerais que vous imaginiez à quoi ressemble la création d'un logiciel. Si vous n'êtes pas vous-même développeur, l'image que vous avez en tête est probablement colorée par la télévision et les films que vous avez vus. |
| Vous imaginez peut-être quelqu'un qui travaille seul, quelqu'un qui est vraiment intelligent, peut-être même un génie et dont le processus est très simple. |
| Ils réfléchissent à un problème, ils écrivent du code, puis ils s'assurent que cela fonctionne. Et c'est probablement le cas, car après tout, c'est un génie. |
| Si nous étions tous des génies de JMP Live, ce processus simple fonctionnerait pour nous. Mais nous ne le sommes pas et nous vivons dans le monde réel. Nous avons donc besoin d'un peu plus que cela. |
| Tout d'abord, nous ne travaillons pas seuls, nous travaillons très en collaboration et notre processus comporte des étapes pour essayer de garantir que nous produisons non seulement quelques logiciels, mais des logiciels de qualité. |
| Je soulignerai qu'il n'y a pas une seule façon correcte de développer un logiciel. Cela peut différer d'une entreprise à l'autre ou même au sein d'une entreprise, mais je vais vous guider tout au long de notre processus |
| en vous disant ce que je ferais si je devais développer une nouvelle fonctionnalité dans JMP Live. |
| Tout d'abord, avant de m'asseoir pour écrire du code, je dois avoir besoin de le faire. |
| Il doit y avoir un vrai utilisateur avec un vrai problème, quelque chose qu'il a identifié dans JMP Lives et qui ne fonctionne pas... qui ne fonctionne pas comme il le devrait, |
| ce qui est une belle façon de dire qu'ils ont trouvé un bogue ou toute fonctionnalité qu'ils ont demandée. |
| Nous gardons une trace de ces demandes dans un système interne. Donc, la première chose que je ferais serait d'aller dans ce système et de trouver un problème hautement prioritaire qui correspond à mes compétences et de commencer à travailler dessus. |
| Ensuite, j'ai besoin de comprendre un peu plus le besoin. Je vais parler aux gens et essayer de comprendre quel type d'utilisateur veut cette fonctionnalité. Comment vont-ils l'utiliser. |
| Ensuite, j'exécuterai JMP Live sur ma machine et j'examinerai où cette fonctionnalité pourrait s'intégrer à JMP Live tel qu'il existe aujourd'hui. |
| Ou je pourrais ouvrir le code et voir où le nouveau code pourrait s'intégrer dans notre base de code existante. |
| Une fois que je pense avoir une assez bonne compréhension de ce qui est nécessaire, je commencerai à travailler sur la conception. Encore une fois, je vais parler aux gens. Je vais parler aux membres de l'équipe et leur dire : "Avez-vous travaillé sur une fonctionnalité similaire à celle-ci ? Avez-vous déjà travaillé sur cette partie du code ?" |
| Et je parlerai aux experts de l'expérience utilisateur que nous avons chez JMP. |
| Je vais essayer de ne pas réinventer la roue. Donc, s'il y a un aspect de la fonctionnalité qui est très courant et qui n'est pas spécifique à JMP Live, par exemple, quelque chose comme la consignation d'informations dans un fichier. |
| C'est un problème résolu, un millier de personnes ont eu ce problème dans le passé. Il pourrait y avoir une bonne solution open source pour cela. |
| Et si c'est le cas, je pourrais l'utiliser après l'avoir soigneusement vérifié pour m'assurer qu'il est sûr à utiliser. |
| Cela laisse encore beaucoup de terrain à couvrir, beaucoup de code spécifique à JMP Live qui doit être écrit. Et donc j'écrirai des articles et des diagrammes et |
| décrivez ce que je propose et assurez-vous que tout le monde dans l'équipe est à l'aise avec la direction dans laquelle je vais avec la conception. Ensuite, je vais m'asseoir et écrire du code. |
| Pour cela, j'utiliserai un environnement de développement intégré, qui est un outil d'écriture de code qui a beaucoup de cloches et de sifflets pour vous aider à être plus efficace dans votre travail. |
| Maintenant, j'ai écrit du code. Avant de l'enregistrer, je veux trouver les problèmes qui existent dans le code que je viens d'écrire. Je ne suis qu'un humain, donc les chances que j'écrive un code 100% sans faille lors de mon premier essai sont plutôt minces. |
| Je vais commencer par chercher des problèmes très évidents et pour cela, j'utilise l'analyse statique. |
| L'analyse statique examine mon code non pas pendant son exécution, mais comme s'il venait d'être écrit sur une page. Une analogie serait la vérification orthographique dans Microsoft Word. |
| La vérification orthographique ne peut pas vous dire que vous avez écrit un roman captivant, mais elle peut vous dire si vous avez manqué une virgule quelque part. L'analyse statique fait cela pour le code. |
| Une fois que j'ai trouvé et corrigé des choses vraiment évidentes comme ça, je passerai à la recherche de problèmes moins évidents. Et pour cela, nous utilisons une suite de tests automatisés. |
| Cela diffère de l'analyse statique car elle exécute en fait le code. Il exécutera un morceau de code avec une certaine entrée et attendra une certaine sortie. Nous avons écrit une large gamme de tests pour notre code. |
| Et je vais m'asseoir et écrire des tests pour la fonctionnalité sur laquelle je travaille. |
| C'est vraiment utile car m'asseoir pour écrire les tests m'oblige à clarifier ma réflexion sur la façon exacte dont le code est censé fonctionner. En outre, il offre une protection contre la rupture accidentelle de la fonctionnalité par quelqu'un d'autre à l'avenir. C'est un excellent moyen de détecter les problèmes tôt. |
| Passons maintenant aux tests manuels. Je vais exécuter JMP Live sur ma machine, tester la nouvelle fonctionnalité et m'assurer qu'elle fonctionne comme je pense qu'elle devrait le faire. |
| Je pourrais même fouiller dans la base de données qui se trouve derrière JMP Live et garder une trace des enregistrements, des publications, des groupes, des utilisateurs et des commentaires pour m'assurer que tous ces enregistrements sont écrits comme je pense qu'ils devraient l'être. |
| Maintenant, je suis prudemment optimiste que j'ai écrit du bon code et la prochaine étape est l'examen par les pairs. J'aimerais que mes pairs m'aident à regarder le code et à trouver tout ce que j'aurais pu manquer. |
| J'ai peut-être raté quelque chose parce que j'ai juste mes oeillères à propos de quelque chose ou parce que quelqu'un d'autre dans mon équipe a juste des connaissances qui me manquent. Cette étape est également souvent très utile pour l'examinateur, car il peut découvrir de nouvelles techniques. |
| Une fois qu'il a fait l'objet d'un examen par les pairs, nous sommes prêts à valider le code ou à l'archiver dans un référentiel de code source. |
| Nous avons un système de construction continue sur nos serveurs qui veille à ce que nous vérifiions le code. Et quand nous le faisons, il fait un tas de choses avec ce code. |
| Par exemple, s'assurer que les bons fichiers sont là au bon endroit, nommés de la bonne façon et ainsi de suite. Il reviendra également en arrière et réexécutera notre analyse de pile et réexécutera toute notre suite de tests automatisés. |
| C'est utile car après tout, nous ne sommes que des humains. Quelqu'un a peut-être oublié de faire ce travail plus tôt dans le processus ou quelque chose a peut-être changé depuis la dernière fois qu'il l'a fait. |
| Une fois que le code a traversé la construction continue, il est désormais disponible pour les personnes extérieures au groupe de développement. Les premiers à s'en apercevoir sont nos professionnels des tests au sein de JMP. |
| Ils vont passer et ils pourraient ajouter à notre suite de tests automatisés. Ils pourraient exécuter des tests manuels. |
| Ils peuvent examiner le fonctionnement du logiciel sur différents systèmes d'exploitation, différents navigateurs, etc. Ils imagineront des choses folles que l'utilisateur pourrait faire et regarderont ce qui se passe et comment le logiciel répond. |
| Ils sont vraiment une partie cruciale de notre processus. Ils pensent vraiment de manière créative à essayer de trouver des problèmes dans notre produit. |
| Une fois qu'ils ont signé, le logiciel est maintenant disponible pour être récupéré dans notre prochaine version du logiciel. Permettez-moi de faire un zoom arrière maintenant et de vous montrer le produit... le processus dans son ensemble. |
| Et c'est beaucoup d'étapes. C'est beaucoup de choses. Faisons-nous vraiment tout cela pour tout notre code ? |
| Croyez-le ou non, mais ce processus évolue considérablement. Donc, pour un bogue évident très simple, nous allons parcourir ce processus assez rapidement. |
| Mais pour une nouvelle fonctionnalité très complexe à chaque étape de ce processus, nous allons ralentir, prendre notre temps et faire très attention à bien faire les choses. |
| Tout ce qui prend du temps coûte de l'argent à une entreprise. Alors pourquoi JMP est-il prêt à investir cet argent dans la qualité logicielle ? |
| Une raison est très simple. Nous sommes fiers de notre travail et nous voulons produire un bon produit. |
| La deuxième raison est un peu moins idéaliste. Nous savons que si notre produit a des problèmes et que nous ne trouvons pas ces problèmes, nos clients le feront, et ce n'est pas bon pour les affaires. Nous aimerions donc minimiser cela. |
| Je dois souligner que même si JMP investit du temps et de l'argent dans la qualité des logiciels, |
| nous n'investissons pas autant d'argent que, par exemple, une organisation comme la NASA le ferait, donc nous ne pouvons pas promettre la perfection. Comme n'importe quel logiciel disponible sur le marché, |
| il se peut que vous trouviez quelque chose dans JMP Live qui ne fonctionne pas comme vous le pensez. Si vous trouvez une... suggestion, |
| nous aimerions vous inviter à aller à www.jmp.com/support et faites-nous savoir s'il y a quelque chose qui, selon vous, devrait fonctionner différemment ou des fonctionnalités que vous aimeriez à l'avenir. |
| Ce genre de retour d'expérience d'utilisateurs réels est extrêmement précieux pour nous et nous l'apprécions vraiment. C'est tout ce que j'ai pour vous aujourd'hui, mais j'espère vraiment que vous apprécierez le reste de Discovery. Merci. |