Ressources

  • Software Craft - 14.1 Attitudes et aptitudes

L’attitude parle de la façon dont nous faisons les choses, tandis que l’aptitude (ou les aptitudes) indique les choses que nous sommes capables de faire

Il est utile, pour analyser l’essence du craft, de distinguer entre attitudes et aptitudes.

  • Les aptitudes sont les capacitĂ©s Ă  produire un travail; par exemple, savoir Ă©crire est une aptitude, en gĂ©nĂ©ral apprise Ă  l’école.

  • les attitudes en revanche sont la façon dont on se comporte lorsqu’on utilise ses aptitudes. Avec la mĂȘme aptitude de savoir Ă©crire, vous pouvez Ă©crire avec des attitudes diffĂ©rentes :

    • «écrire de façon concise», avec comme attitude de chercher l’efïŹcacitĂ©
    • «écrire de façon pompeuse», avec cette fois l’attitude de chercher Ă  impressionner.

% notice style=“warning” title=” ” icon=” ” % En logiciel, les aptitudes reprĂ©sente la capacitĂ© Ă  programmer, la familiaritĂ© avec des technologies, outils ou frameworks.

Par-dessus ces aptitudes, le craft est un ensemble d’attitudes adaptĂ©es aux enjeux des logiciels actuels. % /notice %

Les attitudes-clés du craft

  • Commencer par le but Ă  atteindre, ce qui se retrouve de façon Ă©vidente dans le dĂ©veloppement dirigĂ© par les tests, avec l’impĂ©ratif d’écrire le test avant d’écrire le code, oĂč le test est considĂ©rĂ© comme le but Ă  atteindre.

  • Collaborer en continu dĂšs le dĂ©but, une idĂ©e au cƓur du dĂ©veloppement dirigĂ© par le comportement (BDD) avec la pratique des ateliers de spĂ©cifications entre les 3 amigos.

  • Collaborer au travers d’artefacts expressifs, une injonction au cƓur du Clean Code avec l’importance accordĂ©e Ă  rendre le code lisible, notamment par le nommage du code et des tests, entre autres principes.

  • Limiter la taille des artefacts, Ă  petite Ă©chelle avec la dĂ©composition en mĂ©thodes courtes et les rĂšgles des objets callisthĂ©niques, Ă  l’échelle des classes, ou Ă  grande Ă©chelle avec les modules ou microservices de taille limitĂ©e.

  • Des façons de faire contextuelles, et donc diffĂ©rentes selon les contextes. Par exemple, une technique de test telle que le Record-Playback, rĂ©putĂ©e peu maintenable, est contre-indiquĂ©e pour une utilisation pĂ©renne, mais se rĂ©vĂšle pourtant nĂ©cessaire comme une Ă©tape temporaire de mise sous test initiale de code legacy.

  • Avancer par petits pas, les baby steps propres au dĂ©veloppement dirigĂ© par les tests (TDD) ou Ă  la planification agile en itĂ©rations (Scrum).

  • Chercher le feedback rapide (prouver la valeur en prioritĂ©, ou identifier les problĂšmes), avec l’impĂ©ratif de faire passer les tests (ou les garder passants) au plus vite avant tout refactoring en dĂ©veloppement dirigĂ© par les tests (TDD).

  • Rechercher la simplicitĂ©, comme illustrĂ© Ă  merveille par les quatre rĂšgles de design simple de Kent Beck et l’injonction Keep It Simple and Stupid! (KISS).