Cliché : Le développeur est-il insociable ?
l
e métier de développeur fait partie de ces métiers un peu flous pour le grand public qui induit un bon nombre de stéréotypes.
Parmi les plus répandus, on retrouve bien évidemment celui du geek insociable enfermé dans sa grotte, à l’écart. Qui dit insociable dit mauvais communiquant …
Le développeur est -il une personne qui ne maîtrise pas la communication ?
La communication au centre
Malgré ce que l’on pourrait penser, la communication est au centre du métier de développeur, au point d’être une compétence essentielle, elle est même à la base du manifeste agile ! Afin d’avancer de manière efficiente, une communication organisée est importante.
De manière simplifiée, faisons un comparatif du métier de développeur avec un des métiers lié de près à cet aspect de la communication, j’ai nommé, le traducteur.
On peut faire le parallèle, car dans un sens, le rôle du développeur est de traduire le besoin client en langage informatique.
Cependant, la réalisation technique n’est pas la clé du succès, elle passe d’abord par une vraie collaboration, on peut choisir de vraiment traduire littéralement mot à mot, mais le résultat risque de ne pas être qualitatif.
La collaboration est vraiment importante, comprendre le besoin client passe en priorité par comprendre quels sont les points clés en termes d’importance, au-delà du simple traducteur, plutôt rentrer dans le rôle d’un comédien de doublage.
Il faudra alors comprendre si l’importance va dans le fait de faire passer les émotions ou sentiment, plutôt trouver des expressions ou blagues qui peuvent être équivalente, coller parfaitement au timing des lèvres, savoir quels sont les efforts à faire en priorité par rapport à d’autres et pour se faire, il faut faire preuve d’empathie, comprendre et valider avec l’autre la véritable intention et cela passe par des reformulations, des validations et autres avant même la performance technique.
Le partage et l’ouverture
Un des moyens essentiels d’être un bon communiquant c’est de savoir simplifier les choses, vulgariser afin de se faire comprendre. Dans un métier considéré comme technique, cette capacité est nécessaire !
De plus, ce n’est pas seulement un besoin imposé mais également une utilisation volontaire. En effet, les développeurs sont nombreux à partager, au-delà de partager des bouts de code, on partage des formations, des tutoriels ou autre via par exemple les réseaux sociaux ou des blogs personnels qui sont des outils de communication.
Mais cela reste de la communication indirecte, qui peut être orale ou non mais ce n’est pas la seule, cela passe aussi par la parole en public.
En effet, il existe de plus en plus de conférences liées à ce métier, qui sont pour la plupart, contrairement à ce que l’on pourrait penser, rarement tourné vers le côté technique mais plutôt “générique” et accessible en passant notamment par des retours d’expérience.
Le métier des développeurs, comme les autres, peut rassembler un ensemble assez grand de personnalités différentes, tout comme un youtubeur peut totalement ne pas être à l’aise en public, un informaticien au sens plus large peut très bien être une personne extravertie, à l’aise à l’oral et sociable.

Un programme C est comme une danse rapide sur une piste de danse fraichement cirée, par des personnes tenant des rasoirs.
Waldi Ravens, Programmeur.
C’est quoi un POC ?
l
ors de la création d’un produit, d’un service, on réalise en général une étude de marché afin de vérifier que le concept est viable et que la cible sera bel et bien au rendez-vous.
Cette vérification n’est pas seulement intéressante dans le domaine du marketing, on retrouve des équivalences dans de nombreux secteurs différents.
Pour la partie qui nous intéresse, les projets informatiques on a le POC qui peut entrer en jeu.
Mais que se cache-t-il vraiment derrière ce terme ?
Un prototype avec ses objectifs
Un POC (Proof Of Concept) traduit en français par démonstration de faisabilité est une réalisation qui, comme son nom l’indique, a pour vocation de démontrer la possibilité d’un procédé.
Il ne faut pas confondre le principe de POC avec celui de prototype.
Un prototype permet de représenter le produit (ou le service) via une version simplifiée, il en montre les lignes directrices.
Cela peut par exemple passer par un ensemble de maquettes interactives pour simuler la navigation.
Un POC peut prendre la forme d’un prototype comme pas du tout, il peut par exemple ne pas du tout ressembler à l’application finale. Lui ne doit pas répondre à la question “Comment cela sera fait ?” mais plutôt “Est-il possible de le faire”.
Le but d’une preuve de concept est de démontrer la faisabilité. La réponse qui en incombe se doit d’être binaire (oui ou non), on parle de décision “GO” ou “NO GO”.
Il est important de définir de vrais objectifs pour un POC qui permettront en fonction du résultat de prendre une décision avec des critères déterminés en amont.
Il existe alors de nombreuses formes que peuvent prendre les POCs…


Des cas d’utilisation multiples
Une fois que l’on a compris l’intérêt du concept, il est possible de le décliner dans de multiples situations.
On peut par exemple lors d’une volonté d’évolution, vérifier qu’une certaine technologie permet bien de gérer une certaine fonctionnalité, ou par exemple que la cohabitation avec une autre technologie est possible avant de vraiment la mettre en place sur le projet. Vérifier la compatibilité avec une taille d’écran ou un navigateur en particulier.
Mais le concept va au-delà de tous les exemples auxquels on peut penser dans un premier temps qui en général est lié à une idée de nouveauté, d’ajout, de mise en place.
En effet, il existe d’autres “domaines” dans lesquels, le concept de POC peut intervenir :
- Performance : réaliser un test de montée en charge pour prouver que le serveur peut tenir la charge d’un nombre X donné d’utilisateurs simultanés.
- Sécurité : démontrer l’existence d’une faille logicielle sans pour autant aller en profondeur, mais simplement prouver son existence.
- Communication : au plus simple, cela peut passer par de simples ping pour vérifier que deux serveurs peuvent communiquer entre eux.

Un investissement sur l’avenir
En général cette notion est prisée des méthodes agiles, car elle peut s’adapter à la forme de “mini projet”.
L’élaboration d’un POC exige généralement un certain investissement en temps et/ou en ressources (financières ou humaines).
On parle alors d’investissement dans le sens où le but premier est habituellement de réduire les risques avant de mettre des ressources au niveau de la production.
The Web as I envisaged it, we have not seen it yet. The future is still so much bigger than the past.
Tim Berners-Lee, Inventor of the World Wide Web.
CSS : La relève de Bootstrap
Le CSS est l’un des langages principaux du Web, associé à la structure de page construite en HTML, il permet de mettre en forme cette dernière. Ainsi, les feuilles de style, aussi appelé les fichiers CSS, comprennent du code qui permet de gérer le design d’une page en HTML.
Bien implanté en tant que “titulaire indiscutable”, sa nécessité ne laisse pas place au doute, mais existe-t-il des moyens de faciliter son utilisation, sa mise en place, son optimisation ?
Une évolution perpétuelle
Le CSS a beau être utilisé et bien pris en charge par les navigateurs depuis les années 2000, à l’image de l’univers du Web, il a été obligé d’évoluer. Tout comme le langage Javascript connu pour ses nouveautés nombreuses, ces dernières années, notamment via les technologies dérivées (Angular, ReactJs, Vue.js …), l’écosystème CSS a su s’adapter.
Le code en Javascript et CSS dit pur n’est plus vraiment utilisé. Sans parler des navigateurs qui prennent de plus en plus en compte les possibilités proposées par le langage, différents outils ont permis d’améliorer indirectement la génération des feuilles de style.
On pense notamment aux extensions comme LESS ou SASS, qui permettent d’écrire de façon plus simplifiée via notamment la possibilité de définir des variables, des fonctions, des boucles, d’utiliser l’héritage ou d’autres options avant de générer le code CSS classique associé.
Mais outre ces extensions, il existe des bibliothèques qui permettent également d’atteindre une certaine simplification et un gain de temps …
La Toolbox 🔧
Aujourd’hui quand on parle de CSS on a tendance à penser à Bootstrap.
Ce dernier représente un ensemble de solutions comme Foundation, Materialize, Material UI, Bulma, etc, qui apportent un ensemble d’outils et d’éléments préformatés prêts à être utilisés. L’outil de la firme Twitter, Bootstrap, est simplement la bibliothèque la plus connue et la plus utilisée.
Bootstrap fournit des définitions de base pour tous les composants HTML, ce qui permet de disposer d’apparences uniformes et de gérer le design (graphisme, animation et interactions avec la page dans le navigateur, etc).
La bibliothèque fournit également nombre d’éléments graphiques au format standardisé : boutons, libellés, icônes, cartes, barres de progression…
En plus de ça, il existe de nombreux thèmes communautaires permettant d’avoir des modèles préconstruits de tableaux de bord ou autre.
L’outil apporte à de nombreuses qualités mais n’a-t-il pas certaines contraintes ?
L'utile avant tout : Une nouvelle vision
Bootstrap et ses concurrents sont idéaux dans le cadre de POC (Proof Of Concept), dans lesquels ils permettent de mettre en forme de manière propre très rapidement.
Cependant dans le cadre de projets plus élaborés avec des design spécifiques, ils peuvent atteindre certaines limites.
Une nouvelle vision émerge via le nom de Tailwind CSS avec une manière d’aborder les choses plus orientées sur l’utilité.
Tout d’abord ce dernier se présente comme un véritable framework contrairement aux autres outils plutôt considérés comme des kits UI.
De base, l’approche amène à écrire de manière exhaustive bien plus de classes (utilitaires) dans le code HTML qui permettent de spécifier les attentes visuelles. Cependant le framework permet bien évidemment de créer ses propres classes et de se rapprocher au besoin du fonctionnement de Bootstrap et de ces classes complètes réutilisables.
L’avantage se retrouve essentiellement dans sa forte personnalisation, même si Bootstrap permet de ne pas charger l’ensemble de la bibliothèque avec un découpage par grande thématique, Tailwind via son fichier de configuration permet un découpage vraiment précis et ainsi seulement charger les spécifications utilisées. Ce qui permet un gain de performance via un poids optimisé.
Les différences en termes d’avantages ou désavantages entre ces deux types de solutions n’ayant pas vraiment un poids considérable permettant de faire pencher la balance sans opposition possible.
L’utilisation de l’un ou l’autre va dépendre du contexte et surtout d’une préférence personnelle.
Cet article est une invitation à s’intéresser de plus près à TailWind CSS, car il est surtout intéressant de connaître cette autre voie et ne pas utiliser la solution classique, par défaut, sans jamais la remettre en question.
