Article original : What Does a Software Developer Do? Software Engineer Career Overview
Si vous étudiez pour devenir un développeur de logiciels professionnel, vous vous demandez peut-être ce que fait un développeur de logiciels au quotidien.
Dans cet article, je vais parler de la journée typique d'un développeur de logiciels et de ce à quoi s'attendre sur le lieu de travail.
Responsabilités principales d'un développeur de logiciels
En tant que développeur de logiciels, vos principales responsabilités incluront la correction de bugs dans la base de code, le développement de nouvelles fonctionnalités, l'écriture de tests pour les applications, la rédaction de documentation, la réalisation de revues de code et la participation aux réunions d'équipe.
Les développeurs très expérimentés, comme les architectes logiciels, seront responsables des décisions techniques et architecturales de haut niveau pour les applications logicielles.
Examinons chacune de ces responsabilités plus en détail.
Débogage des bases de code et correction de bugs
Lorsque vous commencez en tant que développeur de logiciels, l'une de vos principales responsabilités sera de travailler sur de petites corrections de bugs et de déboguer de petites erreurs dans la base de code.
Il y aura une liste de tickets (problèmes) qui diviseront le travail en morceaux gérables, et certains d'entre eux incluront des bugs dans l'application.
Vous prendrez en charge certains des petits éléments de ticket, ce qui vous aidera à apprendre la base de code. Il est standard pour un développeur junior de passer les premiers mois à se familiariser avec une base de code et avec le nouveau travail en général.
Assurez-vous simplement de poser beaucoup de questions et d'essayer de programmer en binôme avec d'autres développeurs de l'équipe. Travailler avec d'autres développeurs vous aidera à apprendre de nouvelles techniques et à progresser plus rapidement.
J'ai beaucoup appris de mes collègues, et la plupart du temps, un regard neuf m'a aidé à voir le problème différemment.
Développement de nouvelles fonctionnalités
À mesure que vous vous sentez plus à l'aise dans votre travail et que vous gagnez en expérience, vous commencerez à avoir plus de responsabilités avec la base de code. C'est là que le développement de nouvelles fonctionnalités entre en jeu.
Les fonctionnalités sont des composants essentiels du produit logiciel. Ce type de travail prendra plus de temps que les petites corrections de bugs et vous donnera l'opportunité de contribuer davantage au projet.
Cela vous offrira également l'opportunité de travailler sur des problèmes plus complexes et de progresser en tant que développeur. La première fonctionnalité sur laquelle j'ai travaillé était d'implémenter un thème clair/sombre pour le site web de l'entreprise.
J'ai passé du temps à réfléchir à la meilleure approche pour implémenter cette fonctionnalité dans notre base de code existante. Ensuite, j'ai mis en œuvre ma solution et testé le site web.
La phase finale consistait à passer par des revues de code et à mettre à jour la documentation du site web pour inclure la nouvelle fonctionnalité.
Toute l'expérience m'a appris à construire des solutions maintenables et scalables qui fonctionnent bien avec la base de code existante.
Écriture de tests pour les applications
Un élément important des applications logicielles est de s'assurer qu'elles fonctionnent comme elles sont censées le faire. C'est là que les tests entrent en jeu.
Les développeurs de logiciels sont responsables de l'écriture de différents types de tests comme les tests unitaires, les tests intégrés, les tests fonctionnels et plus encore. Ils peuvent également effectuer des tests manuels qui incluent le développeur parcourant l'application avec un ensemble de cas de test et s'assurant qu'elle fonctionne comme elle est censée le faire.
L'une de mes premières expériences avec les tests est venue sous la forme de tests de fumée et de rédaction de guides de test manuels pour quelques-unes de nos applications. Les tests de fumée consistent à parcourir l'application et à s'assurer que la fonctionnalité de base est intacte.
La rédaction de guides de test implique que le développeur parcourt toutes les fonctionnalités de l'application et crée des cas de test. Ces cas de test impliquent d'écrire les étapes exactes qu'un utilisateur doit suivre et le résultat attendu.
La première fois que j'ai dû écrire un guide de test manuel, je ne réalisais pas à quel point je devais être spécifique en écrivant chaque étape. Mais une fois que j'ai écrit quelques cas de test, le processus a commencé à avoir plus de sens et il est devenu plus facile d'écrire ces cas de test manuels.
Si vous êtes intéressé à en apprendre davantage sur les tests, je vous suggère de lire cet article utile de freeCodeCamp.
Rédaction de documentation
La documentation est une partie importante de toute application logicielle. Il est important de documenter les principales fonctionnalités de l'application ainsi que toutes les étapes nécessaires pour l'exécuter localement pour les développeurs.
Chaque fois que vous rejoignez un nouveau projet et que vous remarquez quelque chose de confus ou de manquant dans la documentation, assurez-vous d'en parler avec l'équipe. Ce serait une bonne opportunité de mettre à jour la documentation.
Parfois, lorsque vous travaillez sur un projet et que l'équipe est occupée à respecter les délais, la documentation peut parfois prendre du retard. Lorsque les choses se calment un peu, assurez-vous de revisiter la documentation et de vous assurer qu'elle est à jour et exacte.
Réalisation de revues de code
Construire un logiciel est une activité d'équipe, et il est important que tout le monde dans l'équipe ait son code revu par ses pairs. Lorsque vous avez apporté des modifications à la base de code, vous créerez ce qu'on appelle une pull request.
Cette pull request représente les modifications que vous souhaitez ajouter à la base de code. Vous demanderez ensuite une revue à des membres de l'équipe et ils examineront votre code et fourniront des commentaires.
Il est important de considérer les commentaires comme constructifs, car votre équipe essaie simplement d'aider à détecter les problèmes et de faire des suggestions sur la manière d'optimiser votre solution.
Il est également important de fournir des commentaires constructifs et de s'assurer que tout dans la pull request corrige le problème ou répond aux exigences de la nouvelle fonctionnalité.
Pour en savoir plus sur le processus de revue de code, veuillez lire cet article utile de freeCodeCamp.
Participation aux réunions de discussion d'équipe
Il y a beaucoup de composants en mouvement qui entrent dans la construction de produits logiciels. Il est important que toute l'équipe soit sur la même longueur d'onde pendant tout le processus d'application.
Le but de ces réunions est que chaque membre de l'équipe partage des mises à jour de statut avec l'équipe et partage tout blocage qui les empêche de progresser sur le projet. Si vous êtes nouveau dans le développement de logiciels, il peut être intimidant de participer aux réunions.
Vous pouvez également vous sentir submergé par certaines des discussions et par toute la nouvelle terminologie utilisée lors de la réunion. Essayez simplement de poser des questions et rappelez-vous qu'il faut un certain temps pour comprendre tous les tenants et aboutissants du processus logiciel.
Ma tendance naturelle est d'être plus réservé lors des réunions, mais j'ai fait plus d'efforts pour parler et poser des questions sur ce que je ne comprends pas. Parfois, vous apprendrez que d'autres personnes avaient la même question et étaient contentes que vous ayez posé cette question.
Faites de votre mieux pour participer activement aux réunions et partagez vos contributions sur le projet et posez des questions sur ce dont vous avez besoin d'aide.
Conclusion
Comme vous pouvez le voir, il y a beaucoup de composants dans la construction de produits logiciels. Vos journées ne seront pas passées à écrire du code pendant 8 heures d'affilée.
Au lieu de cela, vos journées seront remplies de réunions, de sessions de programmation en binôme, de débogage de code, de lecture de documentation, d'écriture de documentation et de tests de logiciels.
J'espère que vous avez apprécié cet article et que vous avez une meilleure compréhension de ce que c'est que d'être un développeur de logiciels. Bonne chance dans votre parcours logiciel.