Transcription
|
| Salut, je suis Aurora Tiffany-Davis, un développeur de logiciels sur le |
| L'équipe JMP Live et j'aimerais 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 logiciel |
| comme vous. Si vous n'êtes pas un développeur vous-même et le |
| 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 un génie bizarre qui travaille seul, |
| et le processus de développement de logiciels est très simple. Ils |
| réfléchissez vraiment à un problème. Ils écrivent du code |
| puis ils s'assurent que cela fonctionne. 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 dit que nous le sommes, |
| ce processus pourrait fonctionner pour nous, mais en réalité nous ne sommes que des humains, |
| et nous avons donc besoin d'un peu plus que |
| cette. Tout d'abord, nous ne travaillons pas seuls. Nous travaillons très |
| en collaboration et nous avons un processus qui nous aide à |
| produire des logiciels de qualité. Je ferai remarquer ici qu'il n'y a pas |
| un processus correct pour le développement de logiciels. Ton |
| processus va différer d'une entreprise à l'autre 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 Live. |
| Tout d'abord, avant de m'asseoir pour écrire du code, je dois |
| ont un besoin réel de le faire. Il doit y avoir une vraie personne |
| là-bas qui a trouvé quelque chose dans JMP Live qui |
| 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 dans un |
| système interne, et donc la première chose que je ferais est d'aller à |
| ce système et trouvez un problème hautement prioritaire |
| correspondre à mes compétences, et commencer à y penser, et commencer |
| en parler. La prochaine chose que je ferais est d'essayer de comprendre |
| le besoin en parlant aux gens. Quels types d'utilisateurs vont |
| besoin de cette fonctionnalité? Comment vont-ils |
| va l'utiliser? Ensuite, je lancerais JMP Live sur ma propre machine, |
| et commencez à regarder où la nouvelle fonctionnalité pourrait s'intégrer |
| dans JMP Live comme il est déjà |
| existe aujourd'hui. Ensuite, j'évoquerais le code et commencerais à réfléchir |
| grâce à la façon 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 conception. Et là encore, mon premier |
| l'étape va être de parler aux gens. Je parlerai à l'utilisateur |
| l'expérience d'experts que nous avons au sein de JMP et je parlerai à mon |
| collègues et demandez: "Avez-vous travaillé sur une fonctionnalité similaire à |
| cela avant? Avez-vous déjà travaillé sur cette partie du code? " |
| Ensuite, je commencerai à étoffer le design. Je pourrais écrire des articles |
| et dessinez des diagrammes et partagez-les pour que je puisse faire |
| sûr 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 à en écrire |
| 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 est de trouver le |
| problèmes que je viens de créer. Je ne suis qu'un humain, donc les chances |
| que j'ai écrit un code 100% impeccable lors de mon premier essai sont plutôt minces. |
| Ma première étape va être de |
| utiliser une analyse statique. L'analyse statique n'exécute pas le code, |
| il le regarde comme s'il était écrit sur un morceau de |
| papier. Une analogie pourrait être la vérification orthographique dans Microsoft Word. Vérification orthographique |
| Je ne peux pas me dire si j'ai écrit ou non un |
| roman, mais il peut me dire si j'ai raté 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 par rapport à notre code. automatique |
| tests exécutent le code, ou plutôt il exécute un sous-ensemble du |
| code, a fourni une certaine entrée, et attend une certaine sortie. |
| C'est un exercice vraiment précieux de s'asseoir et d'écrire ces |
| tests, car parfois quand 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 cassant accidentellement cette fonctionnalité à l'avenir. Alors |
| c'est un excellent moyen de trouver |
| problèmes au début. Une fois que j'ai écrit et exécuté ces |
| 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 que nous avons |
| dans le bureau et fouille et essaie des trucs et assurez-vous simplement |
| que ça marche comme je |
| pense qu'il devrait. Je peux même consulter la base de données |
| se trouve derrière JMP Live et garde une trace des enregistrements sur |
| utilisateurs, publications, groupes, commentaires et assurez-vous que les enregistrements sont |
| écrit de la manière dont je m'attends à ce qu'ils soient. |
| Maintenant, je suis prudemment optimiste d'avoir écrit du bon |
| code, et j'ai créé un |
| fonctionnalité. La prochaine étape consiste à demander à mes pairs leur avis. je vais |
| soumettre cela à un examen par les pairs. Maintenant dans JMP Live, nous mettons 100% de |
| le code que nous écrivons par le biais d'un examen par les pairs et la raison en est |
| que nous le trouvons si précieux. |
| Il y a peut-être quelque chose que j'ai manqué parce que j'ai juste en quelque sorte |
| avoir des oeillères sur quelque chose. Ou ça pourrait être le |
| cas où quelqu'un d'autre dans mon équipe sait simplement que je |
| manquer de. C'est souvent le cas dans un avis que le critique également |
| tire beaucoup de valeur de l'exercice, car ils pourraient |
| découvrez de nouvelles techniques. |
| Maintenant que l'équipe est assez optimiste, nous avons créé |
| un bon code, je vais enfin valider mon code ou l'enregistrer dans |
| un référentiel de code source. |
| Nous avons un système de construction continue qui nous surveille |
| commit du code, et quand nous le faisons, il |
| l'analyse. Il cherche des trucs vraiment basiques comme, sont les fichiers |
| nommé de la bonne manière et au bon endroit? Il réexécutera également |
| analyse statique et il réexécutera l'ensemble 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 peut que |
| quelque chose de petit et de subtil a changé depuis la dernière fois |
| la suite de tests automatisés a été exécutée. |
| Donc, il fait toutes ces analyses et quand il passe |
| cette étape, le code est désormais disponible pour les personnes en dehors de |
| l'équipe de développement pour prendre un |
| Regarde ça. Les premières personnes qui s'en aperçoivent sont les tests |
| experts que nous avons au sein de JMP Live et au sein de l'équipe JMP |
| plus généralement. Ce sont des professionnels du test. C'est ce qu'ils font |
| pour toute leur carrière, et ils sont vraiment bons dans ce domaine. |
| Ils peuvent réexécuter la suite de tests automatisés. Ils pourraient ajouter plus de tests |
| à nos suites. Ils peuvent exécuter JMP Live manuellement et fouiller |
| en général. Ils peuvent exécuter JMP Live localement et faire semblant de le faire |
| des choses en tant qu'utilisateurs qui seraient absolument insensées. Quel est le |
| 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 divers |
| différents navigateurs et systèmes d'exploitation pour vous assurer que notre |
| le logiciel est flexible et robuste. |
| Une fois qu'ils se sont déconnectés de cette nouvelle fonctionnalité, c'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 processus dans son ensemble. |
| C'est beaucoup d'étapes. Faisons-nous vraiment tout cela pour tous |
| de nos changements logiciels? Croyez-le ou non, nous le faisons. Cependant, ce |
| le processus évolue beaucoup, en fonction de la complexité de |
| l'oeuvre. Si nous avons un bug évident très simple, nous allons |
| à travers ce processus, mais nous le ferons très 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 grand soin de nous assurer que |
| nous faisons les choses correctement. |
| Maintenant, tout ce qui prend du temps coûte de l'argent, alors pourquoi |
| JMP est prêt à investir cet argent dans la qualité des logiciels? |
| Une des raisons est vraiment simple. Nous sommes fiers de notre travail et nous |
| veulent produire un bon produit. |
| La raison suivante est un peu 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 génial pour les affaires. Alors on |
| aimerait minimiser cela. |
| Désormais, aucun processus ne peut livrer |
| 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 |
| la façon dont vous pensez que cela devrait, ou quoi que ce soit de nouveau que vous aimeriez |
| à voir dans le futur. |
| Ce type de rétroaction dans le monde réel est extrêmement précieux pour nous, et |
| nous nous en félicitons vraiment. |
| C'est tout ce que j'ai pour toi aujourd'hui, mais j'espère vraiment que |
| vous appréciez le reste de votre expérience Discovery. Remercier |
| tu. |