|
Transcription
|
| Bonjour, je suis Aurora Tiffany-Davis, développeuse de logiciels sur le |
| L'équipe JMP Live et moi-même aimerions vous parler aujourd'hui de |
| comment nous développons des logiciels dans l'équipe JMP Live. |
| Tout d’abord, j’aimerais que vous imaginiez à quoi ressemble le développement de logiciels. |
| je vous aime. Si vous n'êtes pas vous-même un développeur et que |
| l'image que vous avez dans votre esprit est probablement colorée par la télévision et |
| films que vous avez vus. |
| Vous pourriez imaginer un génie excentrique qui travaille seul, |
| et le processus de développement de logiciels est très simple. Ils |
| réfléchissent vraiment à un problème. Ils écrivent du code |
| et ensuite ils s'assurent que ça marche. Et c'est probablement le cas, |
| parce que, après tout, ils sont un |
| génie. Si nous étions tous des génies comme Hollywood le dit, |
| ce processus pourrait fonctionner pour nous, mais en réalité nous ne sommes que des humains, |
| et donc nous avons besoin d'un peu plus que |
| cela. Tout d'abord, nous ne travaillons pas seuls. Nous travaillons très |
| de manière collaborative et nous avons un processus qui nous aide à |
| produire des logiciels de qualité. Je tiens à souligner ici qu'il n'y a pas |
| un processus correct pour développer des logiciels. Votre |
| le processus va différer selon les entreprises et souvent même |
| au sein des entreprises. Mais ce que je vais faire aujourd'hui, c'est vous guider à travers |
| ce que je ferais si je développais une nouvelle fonctionnalité dans |
| JMP en direct. |
| Tout d’abord, avant de m’asseoir pour écrire du code, je dois |
| avoir un besoin réel de le faire. Il doit y avoir une personne réelle |
| qui a trouvé quelque chose dans JMP Live qui |
| ça ne fonctionne pas tout à fait comme ils le pensent, c'est-à-dire |
| une belle façon de dire qu'ils ont trouvé un bug ou qu'ils ont un |
| demande d'une nouvelle fonctionnalité. Nous suivons ces problèmes de manière |
| système interne, et donc la première chose que je ferais serait d'aller à |
| ce système et trouver un problème hautement prioritaire qui est une bonne |
| correspond à mes compétences, et commencer à y réfléchir, et commencer |
| en parler. La prochaine chose que je ferais serait d'essayer de comprendre |
| le besoin en parlant aux gens. Quels types d'utilisateurs vont |
| besoin de cette fonctionnalité ? Comment sont-ils |
| je vais l'utiliser ? Ensuite, j'exécuterais JMP Live sur ma propre machine, |
| et commencer à examiner où la nouvelle fonctionnalité pourrait s'intégrer |
| dans JMP Live comme c'est déjà le cas |
| existe aujourd'hui. Ensuite, je mettrais le code en ligne et je commencerais à réfléchir |
| à travers la manière dont le nouveau code va s’intégrer dans notre base de code. |
| Une fois que je pense avoir une bonne compréhension du besoin, je |
| passerait à l'étape de la conception. Et là encore, ma première |
| l'étape suivante consistera à parler aux gens. Je parlerai à l'utilisateur |
| experts en expérience que nous avons au sein de JMP et je parlerai à mon |
| collègues et demandez : « Avez-vous travaillé sur une fonctionnalité similaire à |
| Avez-vous déjà travaillé sur cette partie du code auparavant ? » |
| Ensuite, je commencerai à peaufiner le design. Je pourrais écrire des articles |
| et dessiner des diagrammes et les partager autour de moi pour que je puisse faire |
| s'assurer que les autres membres de l'équipe sont généralement |
| à l'aise avec la direction |
| J'emménage. Maintenant, je vais m'asseoir et commencer à écrire quelques |
| code. Et pour cela, j'utiliserai le développement intégré |
| environnement, qui est un programme qui a beaucoup de |
| des fonctionnalités conçues pour nous aider à mieux faire notre travail. |
| Maintenant que j'ai écrit du code, ma première étape consiste à trouver le |
| problèmes que je viens de créer. Je ne suis qu'un humain, donc les chances |
| le fait que j'ai écrit un code 100% parfait du premier coup est assez mince. |
| Ma première étape va être de |
| utiliser l'analyse statique. L'analyse statique n'exécute pas le code, |
| on dirait que c'est écrit sur un morceau de papier |
| papier. Une analogie pourrait être le correcteur orthographique dans Microsoft Word. Vérification orthographique |
| ne peut pas me dire si j'ai écrit quelque chose de convaincant ou non |
| roman, mais il peut me dire si j'ai oublié une virgule quelque part. |
| L'analyse statique fait cela pour le code. |
| Maintenant que j'ai trouvé et résolu ces problèmes très évidents, mon |
| la prochaine étape consistera à rechercher des problèmes moins évidents, |
| et pour cela j'utiliserai une suite de tests automatisés. Nous avons |
| écrit une large gamme de tests sur notre code. Automatisé |
| les tests exécutent le code, ou plutôt ils exécutent un sous-ensemble du code |
| code, fournissant une certaine entrée et attendant une certaine sortie. |
| C'est un exercice vraiment précieux de s'asseoir et d'écrire ces |
| tests, car parfois, lorsque je m'assois pour écrire un nouveau test pour |
| toute fonctionnalité, cela m'oblige à vraiment clarifier ma réflexion sur |
| comment le logiciel est censé fonctionner en premier lieu. |
| Il fournit également une protection vraiment cruciale contre |
| collègues briseront accidentellement cette fonctionnalité à l'avenir. Donc |
| c'est un excellent moyen de trouver |
| problèmes tôt. Une fois que j'ai écrit et exécuté ces automatisés |
| tests, je vais passer à quelques tests manuels. Je pourrais exécuter JMP |
| En direct sur ma machine locale ou sur l'un des nombreux serveurs dont nous disposons |
| au bureau et fouiner et essayer des choses et être sûr |
| que ça fonctionne comme je le fais |
| je pense que cela devrait être le cas. Je pourrais même consulter la base de données qui |
| se trouve derrière JMP Live et assure le suivi des enregistrements sur |
| utilisateurs, publications, groupes, commentaires et assurez-vous que les enregistrements sont |
| écrits de la manière dont je m'attends à ce qu'ils soient. |
| Maintenant, je suis prudemment optimiste quant au fait que j'ai écrit de bonnes choses. |
| code, et j'ai créé un utile |
| fonctionnalité. L'étape suivante consiste à demander l'avis de mes pairs. Je vais |
| soumettre cela à un examen par les pairs. Maintenant, dans JMP Live, nous soumettons 100 % de |
| le code que nous écrivons grâce à l'évaluation par les pairs et la raison est |
| que nous le trouvons si précieux. |
| Il y a peut-être quelque chose que j'ai raté parce que je viens de |
| avoir des œillères sur quelque chose. Ou peut-être que c'est le |
| cas où quelqu'un d'autre dans mon équipe aurait simplement connaissance que je |
| manque. Il arrive souvent que dans une critique, le critique |
| tire beaucoup de valeur de l'exercice car ils pourraient |
| Apprenez de nouvelles techniques. |
| Maintenant que l'équipe est assez optimiste quant à ce que nous avons créé |
| un bon code, je vais enfin valider mon code ou le vérifier dans |
| un référentiel de code source. |
| Nous avons un système de construction continue qui veille sur nous |
| valider le code, et quand nous le faisons, il |
| l'analyse. Il recherche des éléments vraiment basiques comme, sont les fichiers |
| nommé de la bonne manière et au bon endroit ? Il sera également rediffusé |
| analyse statique et il relancera l'intégralité de notre test automatisé |
| suite. Il le fait au cas où quelqu'un aurait oublié de le faire |
| plus tôt dans le processus. Ou plus souvent, il se pourrait que |
| quelque chose de petit et de subtil a changé depuis la dernière fois que |
| une suite de tests automatisés a été exécutée. |
| Il fait donc toutes ces analyses et quand il les réussit, |
| cette étape, le code est désormais disponible pour les personnes extérieures à |
| l'équipe de développement pour prendre une |
| Regardez ça. Les premières personnes qui s'en rendent compte sont les testeurs |
| experts que nous avons au sein de JMP Live et au sein de l'équipe JMP |
| plus largement. Ce sont des professionnels des tests. C'est ce qu'ils font |
| pendant toute leur carrière, et ils sont vraiment bons dans ce domaine. |
| Ils pourraient réexécuter la suite de tests automatisés. Ils pourraient ajouter d'autres tests |
| dans nos suites. Ils pourraient exécuter JMP Live manuellement et fouiller |
| généralement. Ils peuvent exécuter JMP Live localement et prétendre faire |
| des choses en tant qu'utilisateurs qui seraient absolument insensées. Quelle est la |
| la chose la plus folle que l'utilisateur puisse faire ? Et voyons comment le logiciel |
| y répond. Ils sont vraiment créatifs avec ces tests |
| scénarios. Ils peuvent également exécuter le logiciel sur différents |
| différents navigateurs et systèmes d'exploitation pour nous assurer que notre |
| le logiciel est flexible et robuste. |
| Une fois qu'ils ont approuvé cette nouvelle fonctionnalité, c'est maintenant |
| disponible pour être récupéré dans notre prochaine version du logiciel. |
| Laissez-moi prendre du recul maintenant et vous montrer le processus dans son ensemble. |
| Cela représente beaucoup d'étapes. Est-ce que nous faisons réellement tout cela pour tous |
| de nos changements de logiciels ? Croyez-le ou non, nous le faisons. Cependant, cela |
| le processus évolue considérablement, en fonction de la complexité de |
| le travail. Si nous avons un bug vraiment simple et évident, nous allons passer à l'étape suivante |
| à travers ce processus, mais nous le ferons assez rapidement. |
| D'un autre côté, si nous avons une nouvelle fonctionnalité très complexe, à |
| À chaque étape du processus, nous allons ralentir. |
| Nous prendrons notre temps et prendrons beaucoup de soin pour nous assurer que |
| nous y parvenons. |
| Maintenant, tout ce qui prend du temps coûte de l'argent, alors pourquoi est-ce que |
| JMP est prêt à investir cet argent dans la qualité des logiciels ? |
| L’une des raisons est très simple : nous sommes fiers de notre travail et nous |
| je veux produire un bon produit. |
| La raison suivante est moins idéaliste. Nous savons que |
| quels que soient les problèmes qui existent dans notre |
| processus, et dans notre produit, si nous ne les trouvons pas, notre |
| les clients le feront et ce n'est pas bon pour les affaires. Donc nous |
| J'aimerais minimiser cela. |
| Désormais, aucun processus ne peut fournir |
| perfection absolue. Et donc nous vous invitons vraiment à rester une partie |
| de la communauté JMP. Allez sur community.jump.com et laissez-nous |
| savoir s'il y a quelque chose à propos de JMP Live si cela ne fonctionne pas le |
| comme vous pensez que cela devrait être, ou quelque chose de nouveau que vous aimeriez |
| à voir dans le futur. |
| Ce type de retour d’expérience du monde réel est extrêmement précieux pour nous, et |
| nous l'accueillons vraiment favorablement. |
| C'est tout ce que j'ai pour vous aujourd'hui, mais j'espère vraiment que |
| vous apprécierez le reste de votre expérience Discovery. Merci |
| toi. |