L'une des professions les plus idiotes est celle des managers qui gĂšrent les programmeurs. Pas tous, mais ceux qui nâĂ©taient pas eux-mĂȘmes programmeurs. Ceux qui pensent quâil est possible « dâaugmenter » lâefficacitĂ© (ou dâaugmenter « lâefficacitĂ© » ?) en utilisant les mĂ©thodes tirĂ©es des livres. Sans mĂȘme prendre la peine de lire ces mĂȘmes livres, la vidĂ©o est gitane.
Ceux qui nâont jamais Ă©crit de code. Ceux pour qui les films hollywoodiens sur les programmeurs sont faits - enfin, ceux pour qui ils regardent leurs e-mails en utilisant la ligne de commande. Ceux qui ne s'intĂ©ressent Ă rien d'autre que des indicateurs, des dĂ©lais et leur propre salaire.
Ceux qui sont majoritaires.
Mais ils sont idiots pour une autre raison. Ils veulent de l'efficacité, ou du moins de l'efficacité (allez, manager, Google quelle est la différence), sans comprendre ni l'un ni l'autre. Sans comprendre généralement l'essence, le processus d'obtention du résultat, les pertes qui surviennent dans ce processus, les coûts de développement. Bref, travailler avec un programmeur comme s'il était une boßte noire.
Ils se sont heurtĂ©s Ă la direction des programmeurs pour exactement une raison : il y a le battage mĂ©diatique, l'argent, le marchĂ© et une bande des mĂȘmes idiots. Il y a un endroit pour se perdre.
S'il y avait un battage médiatique dans la production d'assemblages mécaniques, nous y courrions. Les breaks sont nuls. Je ne serais pas surpris que le vendeur de sapins de Noël dans notre quartier en décembre soit un responsable informatique en vacances.
Bref, si possible, tirez sur ces gars dans le cou. Ne vous inquiĂ©tez pas, ils trouveront un emploi. Aucun dâentre eux ne fera jamais quelque chose de dĂ©cent tant quâil ne deviendra pas lui-mĂȘme programmeur. Parce qu'il ne comprend pas l'essence, le mĂ©canisme, la logique du processus qu'il contrĂŽle.
Bon, assez parlé des managers. Passons maintenant au point, pour les programmeurs. Comment augmenter l'efficacité du développement en apprenant à écrire du code de haute qualité.
Pour augmenter lâefficacitĂ©, vous devez rĂ©soudre les problĂšmes plus rapidement sans perdre en qualitĂ©. Pour rĂ©soudre les problĂšmes plus rapidement, vous devez ĂȘtre capable dâĂ©crire immĂ©diatement du code de haute qualitĂ©. Et « de haute qualitĂ© », et « Ă©crire » et « immĂ©diatement ». Laissez-moi vous expliquer avec une mĂ©taphore.
Ăcrire du code de haute qualitĂ©, câest comme parler correctement une langue Ă©trangĂšre. Quand on ne connaĂźt pas une langue, on passe beaucoup de temps Ă essayer dây formuler ses pensĂ©es.
Si vous avez un besoin urgent de dire quelque chose, vous vous contentez de quelques mots, souvent pas les bons, vous oubliez les articles, l'ordre correct des mots, sans parler des temps verbaux et d'une mauvaise prononciation.
Si vous avez le temps de formuler une rĂ©ponse, vous devrez ouvrir un dictionnaire ou un traducteur en ligne et passer beaucoup de temps Ă formuler vos pensĂ©es. Cependant, le sentiment sera toujours dĂ©sagrĂ©able : vous dites la rĂ©ponse et vous ne savez pas si elle est correcte ou non. Câest la mĂȘme chose avec le code â il semble avoir Ă©tĂ© Ă©crit, il semble fonctionner, mais savoir sâil est de bonne qualitĂ© ou non est un mystĂšre.
Cela sâavĂšre ĂȘtre une double perte de temps. Il faut du temps pour trouver une rĂ©ponse. Il faut Ă©galement du temps pour formuler cette rĂ©ponse â et pas si peu.
Si la capacitĂ© d'Ă©crire du code de haute qualitĂ© est prĂ©sente, la rĂ©ponse peut ĂȘtre formulĂ©e immĂ©diatement, dĂšs qu'elle a mĂ»ri dans la tĂȘte, sans consacrer de temps supplĂ©mentaire Ă la traduction.
La capacitĂ© d'Ă©crire du code de haute qualitĂ© est utile lors de la conception de l'architecture. Vous nâenvisagerez tout simplement pas dâoptions incorrectes, irrĂ©alisables ou de mauvaise qualitĂ© dans votre tĂȘte.
Pour rĂ©sumer : la capacitĂ© dâĂ©crire du code de haute qualitĂ© accĂ©lĂšre considĂ©rablement la rĂ©solution de problĂšmes.
Mais ce n'est pas tout. GrĂące aux gestionnaires de bottes en feutre, il y a un problĂšme : nous n'avons aucune raison d'Ă©crire du code de haute qualitĂ©. Le manager ne regarde pas le code, le client ne regarde pas le code. Nous nous montrons rarement le code, seulement parfois, dans certains projets oĂč il existe un « vĂ©rificateur » de code dĂ©signĂ© ou une refactorisation pĂ©riodique.
Il s'avĂšre que dans la plupart des cas, le code merdique va Ă la production ou au client. Une personne qui a Ă©crit du code merdique forme une connexion neuronale stable - il est non seulement possible d'Ă©crire du code merdique, mais c'est aussi nĂ©cessaire - c'est acceptĂ©, et ils paient mĂȘme pour cela.
En consĂ©quence, la capacitĂ© dâĂ©crire du code de haute qualitĂ© nâa aucune chance de se dĂ©velopper. Le code Ă©crit par un employĂ© conditionnel n'est jamais vĂ©rifiĂ© par personne. La seule raison pour laquelle il apprendra Ă programmer normalement est la motivation interne.
Mais cette motivation interne entre en conflit avec les plans et les exigences dâefficacitĂ© et de productivitĂ©. Cette contradiction nâest clairement pas rĂ©solue en faveur dâun code de haute qualitĂ©, car les gens ne critiquent mĂȘme pas les gens pour leur code merdique. Et pour l'Ă©chec de la rĂ©alisation du plan - quand mĂȘme.
Que dois-je faire? Je vois et propose deux chemins qui peuvent se combiner.
La premiĂšre consiste Ă montrer votre code Ă une personne au sein de lâentreprise. Pas de maniĂšre rĂ©active (lorsque demandĂ©/forcĂ©), mais de maniĂšre proactive (euh, mec, regarde mon code, s'il te plaĂźt). L'essentiel ici est de ne pas publier de morve sucrĂ©e, de ne pas essayer de critiquer le code sous une forme polie. Si le code est de la merde, nous le disons : le code est de la merde. Avec des explications, bien sĂ»r, et des recommandations pour l'amĂ©liorer.
Mais ce chemin est Ă©galement mĂ©diocre. Son applicabilitĂ© dĂ©pend du point oĂč le contact a eu lieu. Si le travail est dĂ©jĂ entrĂ© en production et qu'il s'avĂšre que le code est de la merde, cela n'a aucun sens de le refaire. Plus prĂ©cisĂ©ment, les raisons - les mesures s'affaisseront Ă©galement. Les managers se prĂ©cipiteront et vous Ă©craseront avec leurs exigences dâefficacitĂ©. Et n'essayez mĂȘme pas de leur expliquer que le code merdique reviendra certainement sous forme de bugs - cela se retournera contre vous. Vous ne pouvez que vous engager Ă ne plus recommencer.
Si le travail n'a pas encore été livré ou vient de commencer, alors verser de la merde sur le code (ou son projet, son idée) peut avoir une signification assez pratique - la personne le fera normalement.
La deuxiĂšme façon, la plus intĂ©ressante, consiste Ă rĂ©aliser du dĂ©veloppement open source en dehors des heures de travail. Quel est le but : qu'un groupe de programmeurs, Ă savoir des programmeurs, voient votre code et en parlent. Tout le monde au sein de lâentreprise nâa pas le temps. Mais les programmeurs du monde entier n'ont toujours rien Ă faire, et si vous Ă©crivez quelque chose d'utile du point de vue de l'application, ils regarderont certainement Ă l'intĂ©rieur.
L'astuce principale, Ă mon avis, est d'Ă©crire du code en dehors des heures de travail, car la contradiction entre la qualitĂ© du code et la rapiditĂ© de livraison du rĂ©sultat ne fonctionnera pas. Ăcrivez votre dĂ©veloppement pendant au moins un an. Ni les dĂ©lais, ni les spĂ©cifications techniques, ni l'argent, ni le patron ne vous mettront la pression. LibertĂ© et crĂ©ativitĂ© totales.
Ce n'est que dans la créativité libre que vous comprendrez et ressentirez ce qu'est un bon code, que vous verrez la beauté du langage et de la technologie et que vous ressentirez le charme des tùches commerciales. Eh bien, vous apprendrez à écrire du code de haute qualité.
Certes, cela vous demandera de consacrer du temps personnel. Comme tout autre dĂ©veloppement. ConsidĂ©rez cela non pas comme un coĂ»t, mais comme un investissement â ââen vous-mĂȘme.
Source: habr.com
