Ravi Rajan est un directeur de programme travaillant en Inde. Il écrit des articles sur la gestion, la créativité et la création d’une philosophie de conception centrée sur l’utilisateur
procreator-ux-design-studio-VzJjPuk53sk-unsplash-designers
Les concepteurs doivent-ils savoir coder ?
Avant de répondre à cette question, admettons la vérité.
En tant que concepteurs, il est facile de s’énerver contre les développeurs. Peut-être qu’ils ne peuvent pas aligner correctement un bouton, ou que la fonctionnalité magnifiquement conçue par vous est jugée « techniquement irréalisable » par eux, ou pire encore, ils mettent des combinaisons de couleurs choquantes sur l’écran et disent avec désinvolture, « ce n’est pas important » etc,
La réalité est que nous sommes ennuyés par les développeurs principalement parce que nous devons comprendre leur monde. Il en va de même pour les développeurs qui ont besoin de comprendre le design. Ils se fâchent aussi contre nous. Et je le sais parce que j’ai passé la majeure partie de ma carrière à essayer de remplir les deux chaussures à un moment donné.
En tant que designers, nous portons nos chapeaux bleu ciel et pensons que tout ce que nous concevons est faisable. Et en tant que développeurs, nous mettons nos chapeaux rouges ardents et écrivons du code brillant avec des considérations de conception, la dernière chose sur notre liste de retard.
Combler ce fossé nous oblige, en tant que concepteurs, à en savoir plus sur le développement.
Les concepteurs n’ont pas besoin d’être des programmeurs à plein temps, mais je crois fermement qu’il faut avoir une compréhension de base de certains concepts techniques. La programmation est bien plus que l’écriture de lignes de code. C’est une question de logique, d’état d’esprit pour résoudre des problèmes et de simplifier des choses complexes, ce qui définit un bon programmeur.
En bref, penser comme un programmeur est un excellent moyen d’être un meilleur designer. Une fois que vous commencez à le faire, vous apprenez plus vite, itérez davantage et créez des solutions créatives et réalisables.
Et voici cinq habitudes de programmation qui peuvent vous aider à devenir un meilleur designer.
1. Les noms de variables sont importants
2. Les bons programmeurs documentent tout
3. Le débogage est une compétence vitale
4. Vous n’en aurez pas besoin
5. Créez la chose la plus simple qui puisse fonctionner
pankaj-patel-4oAFasAPftg-unsplash-variable
1. Les noms de variables sont importants
Kendrick Lamar l’a cloué quand il a dit.
« Si je dois raconter une histoire vraie, je vais commencer par mon nom. »
Les noms sont partout dans les logiciels. Nous nommons nos fonctions, classes, arguments, packages, etc. Nous nommons les fichiers source et les répertoires et tout ce qu’ils contiennent. Votre nom doit révéler l’intention. Choisir de bons noms prend du temps, mais permet d’économiser plus qu’il n’en faut lorsque les choses se compliquent.
Rappelez-vous toujours que le nom de toute variable, fonction ou classe doit répondre à trois grandes questions,
Faites défiler pour continuer
- Pourquoi existe-t-il ?
- Qu’est ce que ça fait?
- A quoi cela sert?
Ainsi, une bonne dénomination nécessite des compétences descriptives et un arrière-plan culturel partagé qui transcende les frontières. Et personne ne peut vous l’enseigner mieux que vous-même.
En pensant comme un programmeur, vous commencez à imaginer une variable stockant une valeur alors que vous, disons, concevez un bouton bascule sur l’écran. Vous devez mettre une valeur par défaut à la variable – le bouton sera-t-il initialement activé ou désactivé ? Cliquer sur le bouton changera la valeur de la variable. Comment la valeur par défaut sera-t-elle utilisée si le bouton n’est pas cliqué ? Etc.
Votre esprit produit de multiples possibilités logiques, qui rendent votre conception robuste et réalisable.
gabrielle-henderson-HJckKnwCXxQ-unsplash-document
2. Les bons programmeurs documentent tout
Peu importe la qualité de votre logiciel, car les gens ne l’utiliseront pas si la documentation doit être améliorée. Même s’ils sont obligés de l’utiliser, ils ne l’utiliseront pas efficacement ou comme vous le voudriez.
Et presque tout le monde le comprend. Chaque développeur sait qu’il a besoin d’une bonne documentation et la plupart essaient de la créer. Mais ils échouent.
Pourquoi en est-il ainsi ?
Parce que la documentation n’est la chose préférée de personne, tout le monde veut être un bon développeur. C’est pourquoi nous avons des slogans passionnants comme DRY, KISS, SOLID, etc. Mais lorsqu’il s’agit de documenter le Code, il n’y a même pas un seul slogan.
Cela dit, la documentation n’est pas seulement pour les autres développeurs mais souvent pour nous-mêmes. Lorsque nous revenons sur un projet après un certain temps, nous apprécions le travail que nous mettons dans une documentation claire et à jour. Quels que soient le délai, la charge de travail ou l’excuse pour ne pas documenter, tout logiciel sans documentation est un Dodo mort. Aussi simple que cela!!!
Et la même chose s’applique également aux concepteurs. Une bonne documentation, c’est comme couler votre processus de pensée dans la pierre. Le partager peut aider les autres à apprendre le quoi, le comment et le pourquoi !
nubelson-fernandes-gTs2w7bu3Qo-unsplash -débogage
3. Le débogage est une compétence vitale
Si je devais résumer ma carrière de programmeur en deux dures vérités, ce serait les suivantes.
- Tout ce qui peut mal tourner tournera mal.
- Le code sent mauvais, et ça sent mauvais parfois.
Et la seule compétence requise pour contrer ces réalités amères est le débogage.
Oui, débogage. Personne (ou presque !) ne commence la programmation avec amour pour le débogage. Au lieu de cela, c’est souvent une source de frustration et d’effroi. « Combien d’heures vais-je perdre à réparer ce bug ?” beaucoup d’entre nous se demandent. Nous retournerions plutôt à la construction de trucs sympas. (Parce que qui n’aime pas faire des trucs sympas !?)
Pourtant, il est difficile de trouver un développeur que nous admirons qui ne considère pas le débogage comme important. C’est parce qu’ils savent que c’est une source inestimable de croissance pour eux. Il y a quelques situations qui mettront à l’épreuve vos capacités en tant que développeur dans la mesure où le débogage le fera. C’est pourquoi vous devriez commencer à aborder le débogage comme une opportunité d’apprentissage. Bien sûr, la douleur sera toujours là, mais vous la gardez sous contrôle en la faisant de la bonne façon.
De même, en tant que concepteur, le dépannage (ou le débogage) comble l’écart entre votre conception et ce que l’utilisateur veut. Le dépannage est une compétence essentielle que vous pouvez apprendre ! Il faut à la fois des connaissances et des compétences (et parfois beaucoup de chance) pour être bon dans le dépannage.
Vous devez développer la capacité d’isoler le problème, d’évaluer les variables dépendantes et indépendantes et de le tester de manière itérative jusqu’à ce que vous obteniez la satisfaction de l’utilisateur. Plus vous faites de dépannage, plus vous devenez rapide et efficace, et votre conception s’améliorera.
markus-spiske-6CczttZO18o-unsplash-ned
4. Vous n’en aurez pas besoin
« YouArentGonnaNeedIt » (souvent abrégé YAGNI) est une pratique de programmation extrême qui stipule :
« Toujours mettre en œuvre les choses lorsque vous en avez réellement besoin, jamais lorsque vous prévoyez simplement que vous en avez besoin. »
Même si vous êtes totalement, totalement, totalement sûr que vous aurez besoin d’une fonctionnalité plus tard, attendez pour l’implémenter. Il y a deux raisons principales de pratiquer YagNi :
- Vous gagnez du temps car vous évitez d’écrire du code qui n’est pas nécessaire
- Votre code est meilleur parce que vous évitez de le polluer avec des suppositions qui se révèlent fausses mais qui restent quand même.
N’oubliez pas qu’une bonne programmation consiste en quelques brefs moments d’élégance sublime intégrés à des mois de trivialités tatillonnes, exigeantes et précises. Faites ressortir cette élégance sublime en éliminant l’inutile. Cela vous vaut des distinctions et offre aux autres une plate-forme prête à l’emploi pour ajouter, apprendre et travailler en équipe.
Dans la conception, nous appelons ce design minimaliste. L’idée principale du design minimaliste est d’en dire plus en montrant moins. Le design minimaliste est propre, net et intemporel. Les objets inutiles et les fioritures flashy sont laissés sur la planche à dessin. Seul le nécessaire est inclus pour faire passer le message.
N’oubliez pas que la clé du minimalisme est de maintenir le design au « strict minimum ».
takehiro-tomiyama-azRjm_jIZg8-unsplash-simple
5. Faites la chose la plus simple qui pourrait fonctionner
La programmation extrême mentionne deux règles d’or pour écrire du code simple :
- Tout d’abord, implémentez une nouvelle fonctionnalité de la manière la plus simple qui puisse fonctionner. Ne faites rien d’extraordinaire. Il suffit de le mettre pour que cela fonctionne. Faites en sorte que le code réussisse les tests unitaires pour la nouvelle fonctionnalité, et c’est tout.
- Deuxièmement, et c’est essentiel à la règle, refactorisez le système pour qu’il soit le code le plus simple possible, y compris toutes les fonctionnalités dont il dispose maintenant. Suivez la règle de « OnceAndOnlyOnce » pour rendre le système aussi propre que possible.
Rappelez-vous toujours que nous recherchons plus que le moyen le plus rapide. Nous recherchons le résultat le plus direct. Donc, nous décomposons d’abord la méthode existante en morceaux simples. Ensuite, nous modifions l’une des petites méthodes simples pour gérer le cas de test suivant, etc.
De même, une bonne conception minimise les interactions humaines et informatiques au strict minimum. Et lorsqu’il n’y a pas d’interaction, il n’y a aucune expérience utilisateur. Et le but est de créer un design sans aucune expérience.
Oui, les grands designs n’ont aucune expérience utilisateur. Ils incorporent des modèles et des rythmes naturels qui fusionnent avec les activités quotidiennes de l’utilisateur. C’est la sophistication ultime.
La simplicité, dans la conception, consiste à minimiser et à affiner le processus au point qu’il devienne évident pour l’utilisateur. Mais cela ne signifie pas supprimer des tâches complexes ou perdre des informations importantes.
Au lieu de cela, il s’agit de trouver un juste milieu entre les éléments de conception et leur convivialité afin que les utilisateurs puissent rapidement accomplir une tâche après l’autre sans rompre le rythme. Rappelez-vous toujours qu’un design simple est tout simplement inexistant. En d’autres termes, une expérience sans expérience. C’est ça!
Comme Steve Jobs l’a dit à juste titre :
« Simple peut être plus difficile que complexe : vous devez travailler dur pour clarifier votre pensée afin de la rendre simple. Mais ça vaut le coup au final car une fois sur place, on peut déplacer des montagnes.
Sources
Ce contenu est exact et fidèle au meilleur de la connaissance de l’auteur et ne vise pas à remplacer les conseils formels et individualisés d’un professionnel qualifié.
© 2022 Ravi Rajan