En tant que programmeur, j'ai une gêne inhérente inhérente à mes outils, au code des autres peuples, à mon code, au monde en général. Je veux toujours l'améliorer. Donc je refactorise, je reste au top des dernières techniques. J'essaye et j'apprends des patterns, j'essaye d'utiliser des frameworks pour ne pas réinventer la roue. Je peux écrire une spécification technique qui fera exploser vos chaussettes avec la quantité de motifs que je peux insérer.
Cependant, récemment, j'ai l'impression d'en savoir plus sur les outils que j'utilise que sur la façon de mettre en œuvre un logiciel efficace.
J'ai l'impression de manquer de compétences en facteurs humains et je pense que pour être un ingénieur logiciel performant, il faut plus que de connaître le cadre le plus cool. Je pense qu'il a également besoin de certaines des compétences suivantes.
- Design d'interaction
- Expérience utilisateur
- Commercialisation
J'ai un peu de cela que j'ai appris de personnes avec qui j'ai travaillé et de grands projets sur lesquels j'ai travaillé, mais je n'ai pas l'impression de "posséder" ces compétences.
Ai-je raison? Dois-je essayer de développer davantage ces compétences ou faut-il les laisser aux personnes qui les font pour une carrière?
Comment vous assurez-vous de ne pas être trop lié à la façon dont vous faites quelque chose et assurez-vous de "rendre vos utilisateurs impressionnants"?
Quelqu'un connaît-il de bonnes ressources pour apprendre ces compétences du point de vue de la programmation?
la source
Réponses:
Mon petit conseil: parlez avec vos utilisateurs autant que possible. Je ne sais pas si vous êtes dans une grande entreprise et que vous êtes sur un continent différent de celui de vos utilisateurs, ou si vous êtes dans une position de type pigiste, mais si cela est possible, parlez simplement avec vos utilisateurs.
Je sais que la plupart du temps, je dois m'asseoir et me souvenir que ce n'est pas mon travail de créer le plus grand code que le monde ait jamais vu, ou de créer une fonction qui utilise le moins de cycles et prend le moins de temps technologiquement possible, mais pour faire tout ce dont les utilisateurs ont besoin pour faire leur travail. Et à cet effet, je trouve qu'au-delà de la simple capacité technique, (pour moi en tout cas) les 2 meilleurs traits à avoir sont une bonne connaissance pratique de l'entreprise des utilisateurs et une bonne relation de travail avec eux.
Je travaille dans une petite entreprise (~ 50 personnes), et j'aime pouvoir marcher jusqu'au cube de n'importe qui et discuter de la dernière chose que j'ai faite / corrigée pour eux. Le meilleur sentiment absolu que j'ai jamais ressenti de mon travail, c'est quand je peux les entendre parler de leur travail et suggérer quelque chose qui résoudra un problème pour lequel ils n'ont jamais réalisé qu'une solution technique pourrait même exister. Cela ne serait pas possible si je ne comprenais pas leurs affaires et si je ne pouvais pas avoir de conversations informelles avec eux.
la source
Je dirais que cela dépend de l'endroit où vous travaillez et des types d'entreprises dans lesquelles vous vous voyez déménager à l'avenir - ce qui est vraiment une discussion ouverte.
Avec les petites entreprises, vous pouvez porter de nombreux chapeaux (bien que je ne sache pas pourquoi le marketing figure dans cette liste, sauf si vous avez l'intention de vendre votre propre produit).
Dans les grandes entreprises, ils peuvent avoir tendance à avoir des personnes qui se concentrent spécifiquement sur ces choses.
Donc, vraiment, il s'agit de savoir où vous vous voyez aller, et potentiellement d'ouvrir plus de portes pour vous-même.
la source
Pour chaque ligne de code que vous écrivez, vous introduisez un risque de bogue.
Ainsi, les meilleures conceptions minimisent la quantité de code introduit - peut-être grâce au principe DRY (Don't Repeat Yourself). Cependant, les startups favorisent l' approche YAGNI (You Ain't Gonna Need It) qui conduit au MVP (Minimum Viable Product) beaucoup plus rapidement.
Si votre objectif est de créer un produit propre et facile à utiliser qui fait exactement ce que veulent vos utilisateurs, alors YAGNI est votre modèle de conception ultime. Jetez tout ce qui ne contribue pas directement au code de travail. Cela inclut des processus de construction puristes et une utilisation obsessionnelle des modèles.
Du matériel de lecture
Vous voudrez peut-être lire " Ne me faites pas réfléchir ", qui est un excellent livre sur la conception de l'interface utilisateur. De plus, n'importe quelle série de livres Gitomer (en particulier le petit livre vert ) vous aidera avec vos compétences en vente, en réseautage et en marketing.
la source
Je pense qu'une certaine quantité de connaissances en conception d'interaction et en expérience utilisateur est très utile même dans une grande entreprise pour une raison: en tant que développeur, vous êtes la première personne à utiliser réellement l'interface, des semaines voire des mois avant qu'elle ne soit dans un état utilisable pour un testeur pour tester.
Il peut être très utile au début de signaler une interface qui n'est pas aussi facile à utiliser que prévu, ou un principe de conception qui aurait pu être ignoré. Ces choses peuvent parfois être difficiles à voir avant d'avoir quelque chose de concret avec lequel travailler, et vous êtes toujours la première personne à avoir quelque chose de concret avec lequel travailler.
la source
Je peux écrire une spécification technique qui fera exploser vos chaussettes avec la quantité de motifs que je peux insérer.
Cette déclaration à elle seule me porte à croire que vous devez travailler sur d'autres aspects du développement logiciel.
la source
Bien que vous ne soyez jamais responsable de tous les aspects des logiciels de votre entreprise, avoir un large éventail de connaissances sur de nombreux sujets peut être extrêmement précieux. Si rien d'autre, c'est plus de choses que vous pouvez déposer dans une interview, afin que vous puissiez poursuivre votre carrière.
Si vous n'êtes pas suffisamment mis au défi dans certains domaines de votre travail, lancez votre propre projet à la maison pour faire quelque chose que vous trouvez intéressant. Ou impliquez-vous dans un projet open source.
la source
Non, ce n'est pas mon travail de m'inquiéter de ce que je construis, mais plutôt de le construire selon les spécifications définies par mon client / employeur. Ils savent déjà ce qu'ils veulent et c'est à moi de le mettre en œuvre correctement afin qu'il soit maintenable. Je donnerai des conseils lorsque l'occasion se présentera si je peux dire qu'ils ne sont pas tout à fait sûrs de la meilleure façon d'intégrer une fonctionnalité dans le logiciel
À un moment donné, je voudrai probablement créer mon propre projet et m'inquiéter de ce que je construis, mais je pense que pendant un certain temps, lorsque je commence une carrière en développement logiciel, il est important de s'efforcer constamment d'apprendre la bonne façon de faire les choses.
la source