Transcription
|
| Bonjour, je suis Aurora Tiffany-Davis, développeur de logiciels sur le |
| L'équipe JMP Live et moi 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 |
| comme toi. Si vous n'êtes pas vous-même développeur et que |
| image que vous avez dans votre esprit est probablement colorée par la télévision et |
| films que vous avez vus. |
| Vous imaginez peut-être un génie excentrique qui travaille seul, |
| et le processus de développement de logiciels est très simple. Ils |
| réfléchir sérieusement à un problème. Ils écrivent du code |
| puis ils s'assurent que cela fonctionne. Et c'est probablement le cas, |
| parce qu'après tout, ce sont des |
| génie. Si nous étions tous des génies comme Hollywood dit que nous le sommes, |
| ce processus peut fonctionner pour nous, mais en réalité nous ne sommes qu'humains, |
| et donc nous avons besoin d'un peu plus que |
| ce. 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 précise ici qu'il n'y a pas |
| un processus correct pour développer un logiciel. Ton |
| le 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 te 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 |
| ont un réel besoin 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 de nouvelle fonctionnalité. Nous gardons une trace de ces questions dans un |
| 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 |
| correspondre à mes compétences, et commencer à y penser, 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 vont-ils |
| va l'utiliser? Ensuite, j'exécuterais JMP Live sur ma propre machine, |
| et commencez à regarder où la nouvelle fonctionnalité pourrait s'intégrer |
| dans JMP Live comme il l'était déjà |
| existe aujourd'hui. Ensuite, je ferais apparaître le code et commencerais à penser |
| comment 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, mon premier |
| étape va être de parler aux gens. je parlerai à l'utilisateur |
| experts expérimentés que nous avons au sein de JMP et je parlerai à mon |
| collègues et demandez : "Avez-vous travaillé sur une fonctionnalité similaire à |
| ça avant ? Avez-vous déjà travaillé sur cette partie du code ?" |
| Ensuite, je commencerai à étoffer le design. Je pourrais écrire des articles |
| et dessiner des diagrammes et les partager autour de sorte 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 à écrire |
| code. Et pour cela je vais utiliser le développement intégré |
| environnement, qui est un programme qui a beaucoup de |
| 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 |
| que j'ai écrit un code 100% sans faille lors de mon premier essai sont assez minces. |
| Ma première étape va être de |
| utiliser l'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 article convaincant |
| 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 corrigé ces problèmes très évidents, mon |
| la prochaine étape consistera à rechercher des problèmes moins évidents, |
| et pour cela, je vais utiliser une suite de tests automatisés. Nous avons |
| écrit une large gamme de tests par rapport à notre code. automatique |
| les 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 utile de s'asseoir et d'écrire ces |
| tests, parce que parfois, quand je m'assieds 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 tôt. Une fois que j'ai écrit et exécuté ces opérations automatisées |
| 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 |
| au bureau et fouiller et essayer des trucs et assurez-vous juste |
| que cela fonctionne comme je |
| pense qu'il devrait. Je peux même regarder dans la base de données qui |
| se trouve derrière JMP Live et garde une trace des enregistrements sur |
| utilisateurs, messages, groupes, commentaires et assurez-vous que les enregistrements sont |
| écrit de la manière que je m'attends à ce qu'ils soient. |
| Maintenant, je suis prudemment optimiste que j'ai écrit de bonnes |
| code, et j'ai créé un utile |
| caractéristique. L'étape suivante consiste à demander l'avis de mes pairs. Je vais |
| soumettre cela à un examen par les pairs. Maintenant, dans JMP Live, nous mettons 100 % de |
| le code que nous écrivons par examen 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 j'ai juste en quelque sorte |
| avoir des œillères sur quelque chose. Ou c'est peut-être le |
| cas où quelqu'un d'autre dans mon équipe sait simplement que je |
| manque. C'est souvent le cas dans une critique que l'examinateur |
| tire beaucoup de valeur de l'exercice car ils pourraient |
| découvrez quelques nouvelles techniques. |
| Maintenant que l'équipe est plutôt optimiste, 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 à ce que nous |
| valider le code, et quand nous le faisons, il |
| l'analyse. Il recherche des choses 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 peut 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. |
| Donc, il fait toutes ces analyses et quand il réussit |
| cette étape, le code est maintenant disponible pour les personnes extérieures à |
| l'équipe de développement à 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 pourraient relancer 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 faire |
| des choses en tant qu'utilisateurs qui seraient absolument folles. 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 divers |
| différents navigateurs et systèmes d'exploitation pour s'assurer que notre |
| le logiciel est flexible et robuste. |
| Une fois qu'ils ont approuvé cette nouvelle fonctionnalité, c'est maintenant |
| disponible pour être repris dans notre prochaine version du logiciel. |
| Permettez-moi de faire un zoom arrière maintenant et de vous montrer le processus dans son ensemble. |
| Cela fait beaucoup d'étapes. Faisons-nous réellement tout cela pour tous |
| de nos modifications logicielles ? Croyez-le ou non, nous le faisons. Cependant, cela |
| processus évolue beaucoup, en fonction de la complexité de |
| l'oeuvre. Si nous avons un bogue évident très simple, nous interviendrons |
| tout au long de ce processus, mais nous le ferons très rapidement. |
| D'autre part, 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 avons raison. |
| 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é logicielle ? |
| Une raison est très simple. Nous sommes fiers de notre travail et nous |
| veulent produire un bon produit. |
| La raison suivante est plutôt 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. Alors on |
| voudrais minimiser cela. |
| Maintenant, aucun processus ne peut livrer |
| perfection absolue. Et donc nous vous invitons vraiment à rester une partie |
| de la communauté JMP. Rendez-vous 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 qu'il devrait le faire, ou quelque chose de nouveau que vous aimeriez |
| à voir dans le futur. |
| Ce type de retour d'information du monde réel 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 profitez du reste de votre expérience Discovery. Remercier |
| tu. |