Quel chapeau un programmeur ne devrait-il pas porter? [fermé]

29

D'après mon expérience, les développeurs de logiciels ont tendance à porter plusieurs chapeaux et à remplir plusieurs rôles avec différentes responsabilités. De non seulement le codage, mais parfois aussi l'écriture de SQL, la conception de l'interface utilisateur, la conception de la base de données, la manipulation graphique, voire les tests d'assurance qualité.

Si le rôle principal est d'écrire un logiciel / code, quels rôles le développeur ne devrait-il pas assumer? Y a-t-il?

L'intention de cette question n'est pas parce qu'un développeur est incapable de remplir un autre rôle - mais avoir le rôle supplémentaire fonctionne réellement contre le rôle principal , ou devrait vraiment être un rôle dédié de quelqu'un qui ne programme pas principalement.

éponge
la source
20
Un bonnet ... oh attendez ...
ChaosPandion
21
Un programmeur de l'OMI ne devrait pas porter l'un de ces gros sombreros mexicains, car le bord continuerait de frapper contre le moniteur.
Mason Wheeler
1
@Peter Turner: Le `` chapeau de programmeur génial '' serait l'un de ces emplois de nouveauté qui monte deux canettes de bière. Seulement, pas de bière. Red Bull.
BlairHippo
4
Zut. Un titre si prometteur ...
Personne le
4
@Mason, garder le sombrero sur le moniteur protégera contre les reflets sur les écrans brillants. En d'autres termes - technique.

Réponses:

54

Sysadmin. Le développement de logiciels et la gestion de l'infrastructure informatique sont deux compétences différentes qui ressemblent à un étranger. (Tout ne fait que cogner sur les ordinateurs, non?) Pour une petite entreprise, la tentation sera très forte de rendre The Computer Guy responsable de toutes les machines du bureau.

Si vous avez les compétences nécessaires pour porter les deux chapeaux, génial; mais c'est une de ces choses qui peut être beaucoup plus longue que les gens ne le pensent, et si vous vous auto-apprenez au fur et à mesure, vous ne le faites pas très bien.

BlairHippo
la source
7
CETTE. Sérieusement, ce n'est pas parce que je travaille sur des ordinateurs que je peux réparer l'infrastructure. Vous perdez juste le temps de vos développeurs.
Jaco Pretorius
5
+1 les dégâts qui peuvent être causés par un administrateur système amateur sont énormes.
davidtbernal
Et si vous obtenez le chapeau d'administrateur système, ils peuvent également vous coller avec le chapeau de gestionnaire des installations, ce qui doit être évité à tout prix.
HLGEM
3
OTOH, je travaille dans une entreprise avec un service informatique incroyablement incompétent et lent. Ce que je ne donnerais pas juste pour pouvoir faire mes propres changements de pare-feu ...
Gabe Moothart
1
Quelqu'un a souligné que mon patron n'était pas habillé, mais leur a dit qu'il se salirait par terre en installant des ordinateurs. Ils m'ont montré du doigt que je devais le faire. J'ai failli sauter sur leur bureau et les étrangler, mais j'ai siroté mon café et mentionné que je ne fais pas de matériel.
JeffO
35

Vous portez le chapeau que votre employeur vous demande. C'est ce qui fait de vous un joueur d'équipe. C'est ce qui fait de vous un résolveur de problèmes .

Les gens sont trop pris dans l'idée d'être un "développeur" ou un "architecte" ou un "analyste". Vis ça. Vous devriez être un résolveur de problèmes. Le code n'est qu'un outil dans votre ceinture.

La résolution de problèmes ne se démode jamais.

Si mon employeur veut que je fasse du support technique ou que je construise des ordinateurs, tant pis. Il pense qu'ils gaspillent leur argent, compte tenu du salaire d'un développeur, mais c'est leur affaire. Je suis ici pour résoudre des problèmes. Cependant, je peux le faire, je le ferai. Et si j'ai l'impression, après un certain temps, que mes talents sont gaspillés ou que ma satisfaction au travail n'est pas là où je veux qu'elle soit, alors j'ai juste le droit de passer à un autre travail.

Mais à la question fondamentale - il n'y a pas de chapeau que vous ne portiez pas. Heck, s'ils veulent que vous alliez chercher du café, faites-le. Résoudre leurs problèmes; sachez simplement que vous avez le droit de trouver un autre emploi si vous désirez un changement.

Chris Holmes
la source
5
@Josh: Je pense que ce serait une de ces situations "trouver un nouvel emploi".
Adam Lear
21
Soyez juste prudent avec ça. Les patrons ont tendance à profiter de ceux qui sont prêts à tout. Assurez-vous simplement que vous êtes correctement rémunéré.
Tony
5
Je ne pense pas que Chris dise tout à fait "fais quoi que ce soit" (enfin, il est un peu à la fin; je ne vais pas chercher de café pour ceux qui ne vont pas me chercher aussi), mais en disant "je suis développeur, je ne changera pas une cartouche d'imprimante "est juste snooty.
Peter Boughton
10
Je ne suis pas d'accord. Il est facile de dire qu'un développeur devrait être en mesure de faire tout ce qui lui est demandé, mais cela ne signifie pas qu'il / elle DEVRAIT. Il y a des problèmes de conflits d'intérêts considérables qui se posent dans ces situations. Je ne veux pas accéder aux systèmes de production parce que je serai blâmé quand ils tomberont ("oh, bien XXX était là le mois dernier, donc je suis sûr qu'il a foiré quelque chose parce qu'il est un développeur, pas un administrateur")
MBonig
7
-1; il y a un noyau de vérité ici, mais il y a quelques limites à cet état d'esprit que cette réponse ne fait pas assez pour reconnaître. Qu'en est-il lorsque le véritable problème sous-jacent est que votre employeur craint la gestion du personnel? J'ai vu une fois un bureau s'effondrer parce que les hauts fonctionnaires insistaient pour tailler des chaussures d'ingénieurs intelligents et capables dans des rôles qu'ils détestaient et faisaient très mal. Il y a des moments où on dit "non!" est la meilleure chose que vous puissiez faire pour vous-même et votre employeur.
BlairHippo
29

Testeur!

Veuillez nous envoyer des testeurs directement de l'école de testeurs si besoin est!

Sans testeurs, les gens s'attendent à ce que tout fonctionne au départ, car le programmeur est le testeur et ils sont très intelligents, donc cela devrait fonctionner.

Je ne dis pas que le dogfooding n'est pas une bonne idée. Je pense simplement que les testeurs sont très importants maintenant que je suis programmeur.

Peter Turner
la source
4
Les bons testeurs dévoués sont définitivement sous-évalués!
Peter Boughton
3
Nourriture pour chien!? Je ne prépare que du homard cinq étoiles! ... et c'est pourquoi j'ai besoin d'un testeur pour me dire quand j'ai foiré quelque chose. J'ai fait la chose et je sais comment ça marche. Personne qui a créé une interface utilisateur n'est jamais qualifié pour le tester à fond, simplement parce qu'il sait comment cela fonctionne, pas comment cela fonctionne avec quelqu'un qui ne le fait pas.
Morgan Herlocker
15
Il n'y a rien de mal à être un testeur en général. Il est faux d'être le seul testeur pour VOTRE PROPRE code. Les programmeurs codent avec un ensemble d'hypothèses à l'esprit, et si le testeur a des hypothèses identiques, ils n'exerceront pas de parties inattendues et manqueront de nombreux bogues.
dbkk
5
Tester votre propre code est définitivement un gros non. Un programmeur peut couvrir beaucoup d'autres choses, mais le test fonctionnel réel (si vous ne faites pas de test unitaire, vous ne serez peut-être pas programmeur de toute façon) de votre propre code est une très mauvaise idée. Dogfooding avec c'est bon, l'esprit.
glenatron
3
+1 - les programmeurs pensent différemment des non-programmeurs en termes d'utilisation des programmes. Souhaitez-vous jamais découvrir un bug dans l'élément de menu "Fichier -> Enregistrer"?
26

Vous devez faire attention à ne pas devenir le gars incontournable pour les problèmes de matériel de bureau . Cela peut inclure le dépannage du PC, l'administration du serveur, les sauvegardes et même le travail du système téléphonique. J'ai fait l'erreur de mentionner mon expérience matérielle précédente, et finalement mes tâches matérielles / de dépannage ont été gravement en conflit avec mes fonctions de programmation.

Jon Onstott
la source
Dites aux coupables qu'ils ont besoin de la permission de votre patron et inscrivez-vous tout le temps utilisé pour cela.
@Thor La direction pour travailler sur des trucs matériels - venus - de mon patron. Cela a été utile pour le bureau, mais je ne pouvais pas concentrer ma carrière sur la programmation autant que je l'aurais souhaité à ce moment-là.
Jon Onstott
@Jon, si le patron dit que tu dois le faire, eh bien ... tu dois le faire. Vous pouvez alors discuter avec lui si cela est satisfaisant ou non, et si vous ne parvenez pas à un accord, il est temps de partir.
+1 La même chose m'est arrivée. Ils veulent non seulement que j'écrive du code, mais aussi que je traite les problèmes de réseau avec les fournisseurs de front, ce qui a engendré beaucoup de stress.
Rich
16

Un programmeur ne devrait pas être le seul testeur de son propre code .

Les développeurs écrivent du code avec un ensemble d'hypothèses. Si les testeurs ont le même ensemble d'hypothèses, ils n'exerceront pas la fonctionnalité inattendue en dehors de ces limites, et de nombreux problèmes resteront non détectés.

De plus, pour aller de l'avant, les développeurs ne sont pas très motivés pour essayer de casser les choses, contrairement aux testeurs (peut-être à un niveau subconscient).

Cela ne signifie pas que les tests de développement sont inutiles. Bien au contraire - de bons tests de développement permettent aux testeurs de se concentrer sur la recherche de problèmes plus profonds. Cependant, les tests de développement ne remplacent pas un testeur dédié.

dbkk
la source
10

Deux, je peux penser dès le départ.

  1. Support technique. Je ne suis pas ici pour aider les clients à parcourir le nouveau site ou leur apprendre à utiliser les fonctionnalités.
  2. Bien qu'il puisse être nécessaire d'interfacer avec les clients à différents moments du processus, à moins que vous ne soyez un programmeur gestionnaire, vous ne devriez vraiment pas communiquer directement avec eux sur les fonctionnalités et les implémentations de conception.

On pourrait dire que le développement CSS / UI serait en dehors du "domaine" de programmation mais d'après mon expérience, c'est une compétence nécessaire aujourd'hui. Vous ne pouvez pas vous contenter de tables et dépendre de quelqu'un d'autre pour l'implémenter correctement. Je n'aime peut-être pas implémenter la conception ou modifier le code pour gérer une nouvelle conception, mais cela fait partie du travail.

L'écriture de requêtes est très bien, les tests Q / A sont très bien (et IMO devrait être le travail du programmeur, avoir un département externe le fait, mais vous devez d'abord le tester). L'administration du serveur est un peu une zone grise. Selon la taille du projet ou si vous avez un administrateur de serveur dédié, il peut être nécessaire ou non.

Josh K
la source
7
Concernant le point 2, il y a au moins une entreprise qui a comme principe fondateur que la personne qui écrit le code doit parler directement au client: la désintermédiation a ses avantages.
Frank Shearar
10

En général, d'après mon expérience, la plupart des programmeurs ne devraient pas développer l'apparence de l'interface utilisateur - bien que je sois certainement capable de développer une interface utilisateur (et souvent en créer une lors de la construction d'un prototype ou d'une preuve de concept), c'est il vaut mieux laisser à une personne des facteurs humains (qui dans notre petite entreprise est un graphiste qui s'occupe également de la mise en page des écrans et crée la plupart des manuels et brochures).

De plus, les développeurs ne devraient pas faire de tests d'AQ - c'est le travail du département QA (la société dans laquelle je travaille fabrique des dispositifs médicaux intégrés, c'est donc une exigence que les tests soient effectués par un département séparé).

D'un autre côté, je ne vois aucune raison pour laquelle les développeurs ne peuvent pas concevoir de bases de données et écrire du SQL, s'ils ont les antécédents pour le faire - je l'ai fait plusieurs fois.

tcrosley
la source
2
+1 D'accord sur le fait que les tests d'assurance qualité des développeurs qui l'ont écrit vont à l'encontre de l'objectif.
spong
2
@JoshK Certains tests d'assurance qualité peuvent être effectués par les développeurs, mais les principaux tests d'assurance qualité doivent être effectués par d'autres. Si vous testez votre propre application que vous avez écrite, vous contournez inconsciemment tout problème potentiel. Il s'agit de découvrir des problèmes que les développeurs sont incapables de trouver, une sorte de nouvel œil pour ainsi dire.
spong
2
@JoshK @ChaosPandion D'accord, certains tests préalables par les développeurs devraient être effectués - mais cela ne devrait pas être approuvé, séparant ainsi les tests de QA par ceux qui ne l'ont pas développé.
spong
5
-1: Je ne suis pas d'accord pour dire que les programmeurs ne devraient pas concevoir l'interface graphique. Je travaille depuis 8 ans dans une petite entreprise, et j'ai conçu toute l'interface utilisateur. J'ai toujours suivi les excellentes directives de conception de Microsoft et lu quelques livres sur la conception d'IHM. Nous avons externalisé à des illustrateurs externes uniquement des graphiques.
Wizard79
3
Une chose qui me dérange ici est l'implication qu'une personne graphique est mieux adaptée qu'un programmeur pour concevoir des interfaces utilisateur. Il se peut que votre graphiste soit très bon dans la conception d'interfaces, mais dans le cas général, cela peut dégénérer en une interface confuse, inutilisable et jolie par opposition à l'interface confuse, à peine utilisable et laide que vous obtiendriez du programmeur stéréotypé.
David Thornley
8

Support technique

Une grande partie de ma journée est perdue en prenant des appels au support technique ...

Certains populaires sont:

  • "Mon compte est verrouillé" ou "J'ai oublié mon mot de passe"
  • "Mon [téléphone | clavier | souris | ordinateur] ne fonctionne pas"
  • "Mon ordinateur est lent, pouvez-vous vérifier s'il y a quelque chose d'inhabituel?"
  • "Pourquoi X se produit-il lorsque je clique sur ce bouton? Il devrait faire Y"
  • "Je continue à recevoir ces popups ...." ou "Je pense que j'ai un virus"
  • "Cette personne n'est plus là, pouvez-vous désactiver toutes ses affaires?"
  • "Nous avons un nouvel employé, pouvez-vous le configurer avec login, carte de sécurité, poste téléphonique, email, etc.?"
Rachel
la source
6

Tout rôle qui le fait se gérer lui-même. Dans les petites équipes, on a souvent tendance à faire de l'un des développeurs seniors le chef de projet, mais aussi à le garder dans l'équipe en tant que programmeur. Cela conduit à toutes sortes de problèmes, car ce type, en tant que programmeur, est fondamentalement non géré. Au lieu de déléguer toutes les tâches aux autres membres de l'équipe, il sera souvent tenté de s'en attribuer plusieurs, en particulier les tâches les plus difficiles. Ainsi, les tâches les plus difficiles, celles qui sont les plus susceptibles de causer des problèmes, sont confiées à une personne qui n'est disponible qu'à 50% en tant que programmeur et à ce titre ne rend compte à personne. Lorsque les autres membres de l'équipe sont incapables de livrer, au lieu de se botter le cul, il essaiera de faire leurs tâches, car, en tant que chef de projet, il est responsable du succès et le moyen le plus sûr de le faire est de le faire lui-même n'est-ce pas?

user281377
la source
5

Support technique pour quelque chose que vous n'aviez aucune main dans le développement, le déploiement ou la maintenance, et qui n'a reçu aucune formation et n'est pas tenu au courant des changements majeurs. Une partie de mon travail consiste à répondre au téléphone pour les clients qui m'appellent pourquoi leur Internet ne fonctionne pas. Je ne m'occupe pas de cette moitié de l'entreprise, donc je ne peux rien leur dire d'utile.

Ce n'est pas d'avoir à faire du support technique, cela ne pose aucun problème. C'est être un secrétaire / support technique tout en essayant de développer des choses.

Cela devient assez éprouvant de devoir écouter les gens se plaindre toute la journée et de ne pouvoir rien leur dire. Je conseillerais d'éviter cela à tout prix.

Tarka
la source
Oui, c'est taxant de devoir changer de personnalité plusieurs fois dans la journée. Il est difficile de travailler sur des tâches qui nécessitent de la concentration lorsque vous êtes constamment interrompu.
Rich
5

Ventes .

Un pauvre bougre doit le faire, mais ce ne devrait pas être les développeurs.

Dan Ray
la source
4

En vieillissant, j'ai réalisé qu'il est préférable que les développeurs ne fassent pas leurs propres déploiements (je me suis battu bec et ongles). Ils ne devraient avoir aucun droit sur la base de données de production, à l'exception de certains droits. Notre code est devenu beaucoup moins bogué (et la même chose ne s'est pas reproduite plusieurs fois car le changement n'a été effectué qu'en prod et un déploiement de développement ultérieur l'a écrasé à nouveau puis fixé uniquement sur la prod en toute hâte, rincer et répéter) lorsque nous a dû commencer à le donner à d'autres personnes à déployer et ne pas être autorisé à apporter des modifications rapides à la production car le déploiement n'était pas tout à fait correct. De plus, nous avons cessé d'avoir ces mises à jour accidentelles sans que la clause where ne soit mise en évidence, ce qui modifiait chaque enregistrement du tableau.

HLGEM
la source
Oui, oui et oui. Ne donnez jamais aux développeurs un accès à la production et très limité (et de préférence aucun) à la mise en scène. Si, pour rien d'autre, cela diminue le stress auquel ils sont exposés.
ElGringoGrande
1
Oui! Je suis développeur et je ne veux pas avoir accès à tous ces trucs de production. Et avec d'autres personnes faisant le déploiement du logiciel, c'est un test de plus du processus de déploiement. (Et peut-être que la reprise après sinistre s'améliorera également.)
grincer des dents
3

Artiste et concepteur d'interface utilisateur .

La plupart des programmeurs sont très pauvres en œuvres d'art, mais les entreprises ne prennent pas la peine de payer pour qu'un artiste dessine des images et des icônes pour leurs produits, et utilisent simplement "l'art du programmeur" - avec des résultats hideux. (Jusqu'à Windows Vista, c'était le facteur de différenciation le plus évident entre les Mac et les PC - les Mac étaient beaux et conviviaux, les PC étaient une horreur)

De la même manière, beaucoup de programmeurs ne sont pas très intéressés par l'interface utilisateur - ils se soucient principalement de leur code. Ils exposent simplement le contenu de leurs variables membres directement dans certains champs modifiables, souvent sans se soucier de l'endroit où ils ont placé des boutons et des champs sur leurs formulaires, et supposent que cela est suffisant, ce qui entraîne un logiciel inutilisable. (Toute l'industrie du téléphone mobile était très coupable de cela jusqu'à ce que l'iPhone arrive pour leur montrer que vous pouvez réellement créer une interface utilisateur de téléphone agréable à utiliser)

Lotus Notes est un exemple brillant de la gravité de ces deux choses si vous n'obtenez pas de concepteur professionnel pour aider les programmeurs.

Jason Williams
la source
2
"La plupart des programmeurs sont très pauvres chez artwook" et "Beaucoup de programmeurs ne sont pas très intéressés" n'est pas la même chose que "aucun programmeur n'est intéressé" et "tous les programmeurs sont mauvais". J'en ai en fait connu quelques-uns qui réussissent assez bien.
MIA
1
@ Jim Leonardo: En effet. C'est pourquoi j'ai dit "la plupart" et "beaucoup" plutôt que "tous". :-)
Jason Williams
3

Rédaction de tests globaux et de plans de tests. Sérieusement, les gars, je peux écrire mes propres plans de test, mais cela signifie intégrer dans le produit les erreurs, les fausses hypothèses et les erreurs cognitives que j'ai commises lors de l'écriture. C'était la seule chose que je détestais à propos d'une entreprise dans laquelle je travaillais; où je suis maintenant, nous avons au moins des revues de code qui attraperont probablement ce genre de choses.

David Thornley
la source
Oui, la plupart des tests doivent être écrits à côté des spécifications, avant la création de tout code. Bien qu'un développeur ajoute des tests supplémentaires basés sur la connaissance de ce qu'il a touché, ce n'est pas une mauvaise chose.
Peter Boughton
3

Ne portez jamais plus de "chapeaux" que ce que vous pouvez raisonnablement gérer et avec lequel vous êtes à l'aise, essayer de pigeonner les développeurs de trous en disant qu'ils ne devraient pas faire A ou B signifie qu'un grand concepteur d'interface utilisateur pourrait passer inaperçu parce que quelqu'un pense que les programmeurs devraient rester à l'écart de l'interface utilisateur.

À la fin de la journée, tout le monde aura des forces et des faiblesses différentes et un bon gestionnaire / superviseur / chef d'équipe devrait connaître la meilleure façon de diriger les personnes travaillant pour eux pour s'assurer que les talents sont utilisés de manière appropriée. De même, si vous n'êtes pas à l'aise avec la conception d'interfaces utilisateur ou avec les utilisateurs finaux, faites-le savoir à votre équipe afin de minimiser votre rôle dans ce domaine. Cependant, vous devez être prêt à reprendre des travaux supplémentaires dans un autre domaine.

De plus, si vous portez trop de chapeaux (par exemple, programmeur, concepteur d'interface utilisateur, testeur, analyste commercial, etc.), vous allez soit faire mal à certains d'entre eux, soit vous vous épuiserez. Assurez-vous que vous savez combien de chapeaux vous pouvez gérer et essayez de maintenir la charge de travail autour de ce niveau.

Au-delà de cela, il n'y a vraiment pas de "chapeaux" qu'un développeur ne devrait pas porter s'il a les compétences nécessaires pour exceller dans ce rôle.

rjzii
la source
1

J'ai tendance à accepter n'importe quel travail qui m'est lancé si et seulement si:

  • Je préviens à l'avance de mon niveau de compétence et des implications possibles et mon patron décide qu'il est acceptable
  • Il y a une personne de niveau gourou qui peut (et va probablement à un moment donné) m'aider à faire face à quelque chose d'inattendu
  • Lisez la documentation, les questions posées en ligne, etc.

De cette façon, je suis principalement assuré contre mon patron et si quelqu'un se trompe, c'est au moins réparable.

Audrius
la source
1

Les développeurs sont des parties prenantes de la situation (comme les clients, les propriétaires, etc.), ils ont donc le droit de s'attendre à un travail significatif. À mon avis, cela signifie la possibilité de travailler avec vos forces .

Ainsi, un développeur ne doit pas porter un chapeau qui ne dynamise pas, ne contribue pas à la croissance personnelle et ne mène pas à des performances optimales - et ne vole pas le temps aux "chapeaux" qui font ces choses pour eux.

En plus d'être le seul à tester leur propre code, je pense que tout "chapeau" est correct si c'est un travail significatif pour le développeur qui porte le chapeau.

Ingvald
la source
1

Le "designer" ou le "mec créatif". Vous passerez de la préparation innocente d'une maquette de l'interface d'une application à la rédaction d'un texte marketing pour la prochaine campagne publicitaire en ligne ou à des discussions sans fin sur la «bonne» nuance de bleu avant de la connaître x_x.

pics sauvages
la source
0

ce chapeau avec les canettes de bière sur le côté avec une paille. mauvaise idée si vous vous faites prendre.

modifier:

Voici le chapeau que je déteste mais qui a une grande récompense - c'est un grand signe sur moi qui dit que si cette chose casse c'est de ta faute .... ah, mais si c'est bon, alors toi mon fils est le bon garçon nous vous connaissons tous sont - maintenant retournez au sous-sol ... bon garçon ... c'est tout.

Le chapeau de blâme.

johnny
la source