Ce qui définit le rôle de «développeur de logiciels»


10

Je suis développeur logiciel junior et je travaille pour une entreprise depuis moins d'un an.

Bien que j'ai toujours pensé qu'être développeur de logiciels signifie développer des logiciels et coder quelque chose, mes tâches sont plutôt de type administratif, telles que la configuration de Jenkins, la réplication SQL, etc.

Ces types d'emplois sont-ils inclus dans un rôle de développeur ou un développeur ne développe-t-il que des logiciels? Dois-je en parler à mon manager? Est-ce un moyen courant pour les entreprises d'évaluer les compétences «en développement»?


9
Cela dépend de qui est votre patron aux cheveux pointus.
Neil

Chaque entreprise définira les rôles légèrement différemment. Demandez à votre responsable quelles sont les responsabilités et les attentes du rôle.
Bernard

4
Il y a des périodes où les charpentiers doivent charger du bois, pousser des brouettes, etc. Tout cela fait partie du travail. Si vous êtes un charpentier inexpérimenté, vous en faites probablement beaucoup plus qu'un charpentier principal.
Bryan Oakley

1
Développement logiciel> écriture de code. Si un développeur de logiciels ne sait pas comment configurer / utiliser et / ou ne connaît pas la valeur (d'un outil comme) Jenkins, alors par définition, il serait (très) développeur de logiciels junior. Considérez-le comme une formation en cours d'emploi et comptez-vous chanceux de ne pas travailler dans un environnement où vous devez exécuter votre propre serveur CI sur votre propre machine virtuelle, maintenu à votre propre rythme afin de maintenir un niveau de qualité logicielle qui soit attendu, mais découragé dans la pratique si des outils comme ceux-ci sont interdits dans leurs "processus" (principalement manuels).
michael

Réponses:


11

On dirait qu'ils ont embauché un junior parce qu'ils ne pouvaient pas se permettre un senior, plutôt que parce qu'ils voulaient en fait un junior (quelqu'un dans lequel ils peuvent investir et encadrer jusqu'à ce qu'ils deviennent senior). J'ai dirigé une équipe qui avait été contrainte par des managers qui ne savaient pas mieux.

Il s'est retrouvé avec toutes sortes d'emplois malheureux comme créer des vidéos de formation pour les utilisateurs et autres et je me sens toujours coupable à ce sujet maintenant, mais j'étais sous pression pour livrer et l'attente était que l'ajout d'une tête dans la salle de développement ne ferait qu'accélérer les choses .

C'est malheureux, car cela vous met, vous et votre patron, dans des positions délicates.

Il n'a probablement pas de travail auquel il peut faire confiance à un junior, et les seniors qu'il pourrait avoir ne peuvent pas être distraits de leur quotidien. Le moyen le plus simple est de confier aux juniors de nombreuses tâches non liées au développement, avec lesquelles il ne veut pas vraiment perdre le temps des développeurs seniors.

Mais quelques problèmes en découlent.

Tout d'abord, le type de devops qu'il vous donne nécessite vraiment un développeur senior. En particulier, un serveur de build doit être installé par quelqu'un qui construit le logiciel et sait où se situent les problèmes.

Deuxièmement, le junior ne devient pas plus utile. Après cinq ans, vous feriez toujours les mêmes tâches, car vous ne pouviez toujours pas faire confiance au travail de développement réel.

Troisièmement, le junior réalisera finalement (comme vous l'avez fait) qu'il n'aide pas sa propre carrière. L'hypothèse selon laquelle les juniors sont de mauvaise qualité plutôt que faible (et à la recherche) d'expérience est une erreur terrible, mais très courante, dans cette industrie.

Alors, oui, asseyez-vous avec votre patron. Mais comprenez la situation difficile dans laquelle il se trouve. Voyez si vous pouvez arriver à un arrangement qui résout les problèmes de tout le monde. Vous allez avoir besoin d'un mentor senior et certaines de vos tâches actuelles devront être transmises à un senior. Cela ralentira le projet mais, à long terme, cela portera ses fruits. C'est le point dont vous avez besoin pour communiquer avec votre patron, et peut-être avec ses patrons. Aussi, voyez si vous pouvez trouver quelque chose que vous pouvez offrir en retour pour atténuer les coûts.

Si vous ne le pouvez pas, vous voudrez peut-être chercher ailleurs.


Ce ne sont PAS des tâches de "développeur senior". Ce (jenkins) ne fait que suivre les instructions. Les développeurs seniors décident du chemin (par expérience), les développeurs juniors suivent le chemin. Si un développeur junior se plaignait de la mise en place de jenkins, je rechercherais un autre développeur junior; le temps nécessaire pour le configurer est inférieur au temps nécessaire pour publier cette question et lire les réponses. (Je sais, parce que j'ai configuré hudson / jenkins plusieurs fois. Et la réplication de la base de données. Sooo plusieurs fois.) "Faites-le", alors vous saurez comment. Si vous n'apprenez jamais à faire quoi que ce soit et que vous vous attendez à diriger, vous n'êtes qu'un PHB en formation.
Michael

@michael_n: Complètement en désaccord. Il y a une différence entre configurer Jenkins et configurer tout l'environnement de génération de manière à réduire les efforts de tous les développeurs, tout en permettant des déploiements sûrs en un clic, etc. Et c'est la différence entre ce qu'un Junior vous donnera et ce qu'un senior vous donnera, lorsqu'on lui demandera de configurer un serveur de build.
pdr

... et pourtant je suis d'accord avec vous: "Il y a une différence entre la configuration de Jenkins et la configuration de tout l'environnement de build." Exactement. Donc, je suppose que cela dépend si vous interprétez la question littéralement (je l'ai fait). L'installation de jenkins est un après-midi; la configuration de votre build make / ant / maven prend des jours et peut facilement se transformer en semaines et doit être effectuée correctement. Les bons managers peuvent décomposer les choses et déléguer sur la base de l'expérience (à cet égard, j'ai été un mauvais manager dans le passé, optant pour tout faire moi-même simplement parce que ce serait plus rapide. équipe "n'évolue pas.)
michael

@michael_n: voyez ce que vous voulez dire. J'ai tendance à avoir moins d'attentes à l'égard d'un gestionnaire, je suppose. Particulièrement celui qui embauche un junior pour des raisons financières, plutôt que pour une planification future.
pdr

7

Je trouve que le terme "développeur de logiciels" est synonyme de "programmeur". Ainsi, un développeur de logiciels est une personne dont la responsabilité principale est d'écrire du code. Dans mon premier emploi, mon titre était "Développeur", et ma responsabilité principale était de concevoir et de coder des logiciels. Mais je pense qu'il n'y a pas de définition exacte du terme. Il est utilisé différemment par différentes personnes, ainsi le sens devient flou.

Mais pour qu'une équipe de développement fonctionne efficacement, vous devez avoir ces éléments configurés, serveurs CI, réplication SQL, déploiement sur des serveurs de test, surveillance des serveurs de test, archivage des builds, etc. (Peut-être que tous ne s'appliquent pas dans toutes les situations) .

Ces tâches prendront beaucoup de temps dans la phase initiale d'un projet, mais prendront moins de temps une fois que vous aurez une belle configuration en cours d'exécution.

Malheureusement, les développeurs préfèrent coder plutôt que de gérer des serveurs de build. Par conséquent, souvent, ces tâches ennuyeuses tombent entre les mains des développeurs juniors, car les développeurs seniors ont des tâches plus importantes.

Je n'ai connu aucune entreprise qui utilise ces tâches comme un moyen d'évaluer les compétences.

Si vous n'êtes pas satisfait de vos responsabilités actuelles, je vous suggère de prendre la question avec votre supérieur hiérarchique.


1
Il y a une différence entre les termes selon cela .
Bernard

1
également selon cela
smp7d

2

Ça dépend. Il semble que différentes entreprises définissent cela différemment et pour certains, il s'agit d'un terme générique pour un éventail de fonctions techniques. Pour certains, ce n'est qu'un titre. En posant la même question auparavant, j'ai obtenu une réponse similaire à "Seuls les développeurs ont la capacité de le faire dans notre organisation", je dirais peut-être, mais cela ne fait pas nécessairement son développement).

La réponse théorique est qu'un développeur (en comparant avec un codeur / programmeur) est une personne qui "résout des problèmes" même s'ils n'ont pas à faire avec "coder quelque chose".

Vous voulez coder davantage, alors demandez peut-être à votre responsable d'autres tâches de codage ou faites certaines des choses que vous faites en codant? Vous avez mentionné des éléments opérationnels, donc certains d'entre eux pourraient être réalisés par des frameworks DevOps (vérifier chef et marionnette ), ce qui rendra les fonctions plus efficaces et proches du développement.


2

Il n'est pas rare qu'un développeur ait des compétences en administration de système. En tant que développeur senior, j'estime qu'environ 5% de mon temps est consacré à ces tâches.

Cependant, si vous n'effectuez aucun codage, vous devriez probablement parler à votre responsable de la tâche de codage. Après tout, vous souhaitez acquérir une expérience de codage. Vous avez également plus de valeur en tant que programmeur qu'en tant qu'administrateur système.


1

Le code n'est pas très utile s'il n'est pas correctement intégré à une application ou n'accède pas aux données correctes, de sorte que les activités que vous répertoriez semblent très conformes à ce que fait un développeur. Je dois ajouter que les développeurs de logiciels sont également très mélangés dans la documentation et les tests. Ce sont des activités nécessaires à la production de logiciels.

C'est génial si votre entreprise a des spécialistes qui peuvent faire ce genre de choses pour vous, mais si ce n'est pas le cas, les développeurs de logiciels sont responsables de tout jusqu'au déploiement (et éventuellement de l'inclusion) d'une application en production et de son support.


0

Il est assez courant qu'un développeur dans une petite ou moyenne entreprise assume certaines tâches de configuration d'administrateur de serveur / DBA / général.

Cependant, si ces tâches commencent à devenir la majeure partie de vos responsabilités, cela peut vous inquiéter en fonction de vos objectifs de carrière. Bien que vous puissiez probablement prospérer dans certaines entreprises en tant que technologue général, lorsque vous devez déménager dans une nouvelle entreprise, cela peut entraîner de nombreux problèmes dans votre transition. Si vous n'effectuez aucun développement traditionnel, vous devez vous assurer de l'indiquer clairement sur votre CV. Si vous souhaitez obtenir un emploi en développement direct après un passage dans un emploi comme vous l'avez décrit, vous devrez peut-être accepter quelque chose pour lequel vous êtes "surqualifié" en fonction des années dans l'industrie.

D'un autre côté, il peut y avoir des entreprises à la recherche de développeurs aux compétences diverses. Mais avec la tendance actuelle d'écrire du code dans les entretiens, vous devrez également avoir des compétences de codage de premier ordre, même si le travail nécessite peu de code une fois que vous êtes entré.

Si vous ne voulez pas rester coincé dans votre position actuelle, j'essaierais certainement de remédier rapidement à la situation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.