Fonction: Ingénieur logiciel

Auteur: Laura McKinney
Date De Création: 2 Avril 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Fonction: Ingénieur logiciel - La Technologie
Fonction: Ingénieur logiciel - La Technologie

Contenu


Source: Dragonimages / Dreamstime.com

À emporter:

L'ingénieur logiciel est profondément impliqué dans le cycle de vie du développement logiciel et joue un rôle important dans la réussite d'un projet.

Que fait un ingénieur logiciel? La réponse est simple: il ou elle est impliqué (e) en génie logiciel, en train d'appliquer les principes d'ingénierie aux produits logiciels.

Cependant, il existe une multitude de détails et de nuances dans la description de ce que les ingénieurs en logiciel font dans le monde du logiciel. Nous en parlerons un peu plus en regardant «un jour dans la vie» d’un ingénieur en logiciel qui travaille à la création de tout le contenu numérique que nous utilisons quotidiennement. (Pour en savoir plus sur le rôle d'un intervenant sur le terrain, consultez la section Comment je suis arrivé ici: 12 questions avec l'auteur et l'ingénieur en logiciel David Auerbach.)


Le cycle de vie du développement logiciel

Pour comprendre le rôle de l’ingénieur logiciel, il est utile de connaître le cycle de développement du logiciel (SDLC).

Le cycle de vie du développement logiciel comprend diverses phases clés, souvent décrites comme la planification des exigences, la conception, le codage, les tests, la mise en œuvre et la livraison (quelques étapes à suivre en fonction de processus exclusifs).

«Le logiciel commence par le problème que nous essayons de résoudre», explique John Quigley de Value Transformation LLC, décrivant le cycle de vie du développement logiciel conventionnel en commençant par une partie de ce qui se passe au début du processus. «Ceci sera articulé dans une forme de document, et est le résultat d'entretiens avec des clients ou des personnes qui souffrent du problème… Le document décrira l'aspect du problème qui aidera à générer des idées à comparer à celle-ci pour la solution. Ce sera l'objectif de ce travail, établissant ce que nous essayons d'accomplir. ”


Au cours de la phase de spécification, les ingénieurs établissent la description technique spécifique du produit, à la fois le matériel (le cas échéant) et le logiciel.

Ensuite, il y a le codage: «Les ingénieurs logiciels vont écrire les instructions spécifiques dans un code qui produira le produit souhaité qui répond aux exigences spécifiques», explique Quigley à propos de la phase de codage.

Après cela, ajoute-t-il, des tests sont ensuite effectués, puis une autre série d'étapes amenant le logiciel solidement vers un environnement de production. Vers la fin du processus, diverses idées sur la mise en œuvre et le déploiement sont possibles. Quigley ajoute qu'un nouveau modèle «agile» pour SDLC fonctionne un peu différemment.

Pas de bugs, pas de stress - Votre guide étape par étape pour créer un logiciel qui change la vie sans vous détruire

Vous ne pouvez pas améliorer vos compétences en programmation lorsque personne ne se soucie de la qualité des logiciels.

"Dans le monde agile, les choses semblent beaucoup, mais les itérations sont plus petites et plus proches les unes des autres", déclare Quigley. «L'exigence peut être gérée via des user stories, de nature moins technique et plus écrite pour comprendre l'application, afin que les ingénieurs en logiciel puissent tirer des conclusions et déduire les attributs clés nécessaires en fonction de l'utilisation réelle.»

Le rôle varié de l'ingénieur logiciel

Étant donné que le cycle de vie du développement logiciel comporte diverses phases et opérations, il est donc logique que le travail de l’ingénieur logiciel varie également.

«Un ingénieur logiciel a un rôle plus important que la plupart dans la création d'une solution logicielle», écrit Samuel Malachowsky, professeur au Rochester Institute of Technology. «Chaque élément du SDLC comprend des spécialistes: représentants des ventes et des ventes pour les étapes initiales, architectes de la phase de conception, codeurs / programmeurs pour la construction, assurance de la qualité pour la vérification / les tests, informatique pour le déploiement / la maintenance et chefs de projet pour le déplacement et la gestion des projets. chaque membre de l’équipe / phase, mais les ingénieurs logiciels doivent s’appliquer de manière générale à l’ensemble du processus. Compte tenu de ce point de vue, une meilleure question pourrait être de demander ce qu'un ingénieur logiciel ne fait pas. ”

Voici un autre point intéressant évoqué par Malachowsky à propos de la différence entre l’ingénierie informatique et l’ingénierie logicielle, qui en dit long sur le travail d’un ingénieur logiciel ordinaire:

«L'informatique est opérationnelle et répétitive, alors que l'ingénierie s'articule autour de nouveaux problèmes à résoudre en tant que projets uniques», a-t-il déclaré. «Le personnel informatique est beaucoup plus susceptible de rechercher des certifications individuelles basées sur des outils en raison de cette répétition. En contraste avec quelque chose comme l'ingénierie informatique, on cherche où les exigences sont remplies - les CE ont tendance à se concentrer sur la résolution du problème avec le matériel, avec un logiciel le supportant. Les SE résolvent le problème avec des logiciels, avec du matériel fourni. »

L'ingénieur logiciel et les équipes de projet

Dans de nombreuses entreprises, les ingénieurs logiciels sont regroupés et des rôles délégués en fonction de leur rôle dans le processus complexe.

Brennan Meagher décrit un exemple tiré de TeleTracking, une entreprise qui fait la une de l'innovation en matière de santé chez Fierce Healthcare, dans le Collège américain des médecins d'urgence, dans la gestion des données de santé, dans Healthcare News et ailleurs.

«Chez TeleTracking, les ingénieurs logiciels sont responsables du codage et du test de tous les modules et applications faisant partie de la plate-forme TeleTracking», déclare Meagher. «Ils aident également au développement de solutions logicielles et de productions. Cela inclut la recherche, la conception, la documentation et le développement de nouveaux logiciels. En bref, nos ingénieurs logiciels créent les solutions logicielles qui s’alignent sur la vision technique de TeleTrackings pour améliorer l’accès aux patients. ”

Vous pouvez imaginer ces professionnels sur un campus d'entreprise, tout d'abord en train de dessiner, puis de peaufiner le modèle, puis de tester, en équipe, de mener à bien un projet jusqu'à son terme.

«Les ingénieurs logiciels sont régulièrement responsables des exemples suivants: écriture, débogage, tests unitaires et codes de test de performance dans toutes les couches applicatives», explique Meaghan. "Cela inclut les couches frontale (Web), intermédiaire (Web Services) et d'accès aux données."

L'essentiel est que les ingénieurs en logiciel occupent divers emplois spécialisés. Ils doivent tous comprendre certaines des bases du codage, mais certains d'entre eux doivent approfondir les spécificités des tests, la transparence des exigences de conception ou, dans certains cas, le monde du développement agile.

Ensuite, le modèle DevOps est apparu et a fusionné une grande partie des processus itératifs très précisément décrits et catégorisés dans le modèle conventionnel. Le rôle de l’ingénieur logiciel change donc. (Pour en savoir plus sur DevOps, voir Explications de la part des gestionnaires de DevOps.)

Cela vous laisse un peu à continuer lorsque vous souhaitez en savoir plus sur le travail de ces professionnels centraux de la production de logiciels. L’ingénieur logiciel a été décrit comme le «couteau suisse» de la conception et de la création de logiciels - et peut finir par porter plusieurs chapeaux dans une entreprise très active.