Vous êtes-vous déjà inquiété de savoir comment vous construisez quelque chose plutôt que ce que vous construisez réellement?


11

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?


2
Oui, c'est un gros problème. Si vous étiez une entreprise unipersonnelle, vous auriez immédiatement ressenti le pincement. Une start-up pourrait ne pas vous embaucher parce que vous ne comprenez pas qu'elle se bat pour survivre et qu'elle soit obligée de sortir des trucs de qualité bêta le mois prochain ou de mourir, ou parce que vous ne pouvez pas étirer un peu la vérité lorsque vous parlez aux clients. Cependant, dans une grande entreprise mal gérée, il est peut-être préférable de poursuivre un intérêt égoïste. La direction le fait tout le temps de toute façon.
Job

J'aime utiliser d'excellents produits, où je pense "wow, ça marche bien". Donc, essayer de participer à la création de tels produits "wow" me vient naturellement. Si ce n'est pas naturel pour vous, gardez peut-être à l'esprit ceux qui aiment cela et sont prêts à payer beaucoup d'argent (pensez aux produits Apple).
LennyProgrammers

2
Il me semble que vous êtes sur la voie d'être un travailleur axé sur les processus, plutôt qu'un travailleur axé sur les résultats. Vous vous concentrez sur le processus parce que c'est ce que vous connaissez. Apprenez à abandonner le processus et à vous concentrer sur les résultats. Comme vous l'avez dit, les modèles de conception et autres ne sont que des outils: votre principale préoccupation doit être de savoir quel problème le produit que vous créez va résoudre.
whatsisname

1
@whatisname, ce n'est pas si simple, bien sûr, les "résultats" peuvent sembler que telle ou telle application fonctionne très bien pour la version 1.0 avec du code ad hoc qui a été piraté ensemble, mais pour la version 2.0, un changement majeur est nécessaire, eh bien vous êtes toujours va être coincé avec un "résultat" de l'effort précédent qui devra être retravaillé .. Je pense que c'est vraiment une situation où la fonctionnalité d'une application du point de vue d'un utilisateur n'est que la pointe de l'iceberg et vous pouvez ' t contraindre le "résultat" à cela
programmx10

@whatisname Si cela avait été une réponse, je l'aurais acceptée mais je suis également d'accord avec toi Rick. Ce que j'essaie d'atteindre, c'est un point où l'un des 2 ensembles de compétences est en équilibre, donc je suis en mesure de concevoir une excellente expérience utilisateur tout en utilisant les meilleurs outils et techniques. Il semble en ce moment que l'un ou l'autre souffre. Je dois faire des deux ensembles de compétences une seconde nature.
Rob Stevenson-Leggett

Réponses:


5

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.


+1 pour parler avec les utilisateurs - essentiel pour créer un produit utile
Gary Rowe

5

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.


2
Merci - points intéressants. Je considère le marketing comme plus que la vente, je pense aux blogs de développement, au référencement, aux affiliés, à la façon dont ils devraient être intégrés, etc.
Rob Stevenson-Leggett

2

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.


1

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.


Je ne suis pas dans une grande entreprise et j'ai déjà travaillé pour une entreprise de design d'interaction. J'ai trouvé cela parce que ma connaissance manquait parfois que je m'en remettais. Avez-vous des ressources ou des recommandations de livres?
Rob Stevenson-Leggett

1

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.


Il y avait une certaine ironie là-dedans :) Probablement pas trop bien rencontré dans la question.
Rob Stevenson-Leggett

@Rob, heureux que vous ayez dit cela, j'avais de gros feux rouges clignotants qui s'éteignaient partout.
ocodo

1

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.


1

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.


Intéressant, vous êtes en minorité. Ne pensez-vous pas que parfois les autres personnes peuvent se tromper?
Rob Stevenson-Leggett
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.