ESI UCLM
AccueilOpinionCompétences permanentes en développement de logiciels

Compétences permanentes en développement de logiciels

David Vallejo, professeur à l'ESI, UCLM

Compétences permanentes en développement de logiciels

Par David Vallejo, Professeur des Universités à l'ESI-UCLM.

"Lisez ce que vous aimez jusqu'à ce que vous aimiez lire." La proposition que tire cette fameuse citation de Naval Ravikant m'a amené à retrouver, il y a quelques années, Morgan Housel. Il est désormais l'un de mes écrivains préférés. Morgan a l'incroyable capacité de vous faire réfléchir sur de nombreux sujets, liés à la vie et au comportement des gens, à travers des idées et des arguments qu'il entremêle avec de petites histoires.

Son dernier livre, intitulé Comme toujours, se concentre sur la connaissance de choses qui ne changent jamais, alors que la tendance générale de la plupart d’entre nous est de faire des prédictions incertaines sur un avenir de plus en plus inconnu.

Dans l'un des épisodes de son podcast, également fortement recommandé, Morgan réfléchit aux compétences qui expirent ou expirent et aux compétences permanentes.

Les compétences qui expirent Ils ont tendance à attirer beaucoup d’attention. Du moins, temporairement. Ils ont l'habitude d'être sujets d'actualité exigées par l’industrie pour améliorer les performances à court terme. Ils ont également tendance à générer l’effet FOMO (peur de manquer).

En revanche, compétences permanentes sont différents. Ils ont toujours été là et le seront toujours. Ils sont simples. Ils sont basiques. Ils sont même silencieux. Mais ils font la différence à long terme. L’intérêt composé dans sa forme la plus pure.

Tout cela m'a fait réfléchir aux compétences permanentes du point de vue du développement logiciel. Et dans cet article, je vais en énumérer 7 que je considère particulièrement pertinents.

  • Compétence numéro 1. Sachez qu'en avoir bases de programmation solides représente la pierre angulaire. C’est aussi important qu’une maison ayant de bonnes fondations sur lesquelles construire. La dette technique est un problème récurrent dans de nombreux projets de programmation. Pour l'atténuer, vous devez proposer une bonne conception logicielle. Et pour proposer un bon design, il faut avoir de solides fondamentaux en programmation. Je suis désolé, mais on ne peut pas apprendre à programmer en 21 jours.
  • Compétence numéro 2. Avoir la capacité de gérer les abstractions, en appliquant les solutions existantes à des problèmes récurrents. Exact; Vous y pensez probablement : les modèles de conception. La roue existe déjà, ne la réinventez pas constamment. Utiliser ce qui a été testé et fonctionne permet de gagner du temps et de lutter contre la dette technique.
  • Compétence numéro 3. Identifier la complexité des choses et l'accepter avec humilité lorsqu'elle ne peut être évitée. Le principe KISS (Gardez les choses simples, stupides) est votre allié indémodable, mais il existe des projets intrinsèquement complexes. Parfois, il n’y a pas d’autre choix que de gérer la complexité et la simplification n’est pas réaliste.
  • Compétence numéro 4. Être capable de créer des prototypes de manière agile, afin que le paradigme de développement ou la technologie utilisée ne représente pas un obstacle significatif. J'appelle logiciel de liquidité. Les outils, les technologies, les langages et même les paradigmes évoluent constamment. Être capable de comprendre leur fonctionnement en peu de temps et de les utiliser de manière pratique et agile est essentiel. Maîtrisez la compétence numéro 1 avant d’acquérir la compétence numéro 4.
  • Compétence numéro 5. Comprendre le problème que votre client doit résoudre. Cette étape, préalable à la conception et au développement du logiciel, est essentielle pour parvenir à une conclusion réussie. La capacité d’interagir et de comprendre votre client est irremplaçable. Presque autant que la capacité de dire non lorsque vos attentes (exigences exprimées) dépassent la réalité (ressources disponibles).
  • Compétence numéro 6. Ne suroptimisez pas. L’économie peut être comprise comme la définition de politiques d’allocation de ressources rares. Cela s'applique également au développement de logiciels. N'oubliez pas : « le temps est votre atout le plus précieux ». Concept de route négative. Avertissement qui s'active à chaque fois qu'un collègue utilise l'expression « eh bien, nous y sommes ».
  • Compétence numéro 7. Être généreux. Il s’agit d’une compétence permanente qui pourrait s’appliquer à n’importe quel domaine humain ou professionnel. Le développement de logiciels est un travail collaboratif. Le code écrit par un développeur doit être compris et utilisé par d'autres collègues. Présents et futurs. La même chose se produit avec la documentation du code, même dans les projets d'une seule personne : "La documentation est une lettre d'amour que vous écrivez à votre futur moi." Si vous pensez que ChatGPT peut le faire pour vous, demandez-vous si vous lui confieriez vraiment la tâche d'écrire une lettre d'amour pour vous.
Imprimer, soleil levant. Claude Monet, 1872.

Références

  • L'almanach de Navik Ravikant.
  • Comme toujours. Morgan Housel.
  • Le podcast Morgan Housel.
  • Le cygne noir. Nassim N. Taleb.
  • Arrêter de fumer : le pouvoir de savoir quand s'éloigner. Annie Duc.
Partager avec:
Évaluez cet article