Breaking out
of Tetris mind set

Qui?

Christian Heilmann est un développeur vivant et travaillant à Londres. Il a commencé son blog en 2006. C’est quelque chose qui le fascine. Il trouve ça fantastique que des gens puissent entrer en contact avec lui et lui poser des questions. C’est pour ça qu’il aime autant le Web : il est très facile de s’y installer et d’y laisser une trace.

Il se définit comme «développeur évangéliste» car c’est un porte-parole, un intermédiaire entre une société et son équipe technique et les développeurs externes qui peuvent enrichir cette société par leurs connaissances.

Quoi?

Christian pense que le Web fonctionne comme Tetris. Si on commet une erreur, les blocs finissent par s’empiler de plus en plus haut. Au fur et à mesure nous apprenons à gérer ce problème et nous devenons meilleur. Selon lui, c’est intéressant comme métaphore car elle démontre qu’à chaque erreurs ou à chaque essais, nous pouvons voir plus loin.

“If Tetris has taught me anything it’s that errors pile up and accomplishments disappear.”
Christian Heilmann

Chaque pièce a ses propriétés, ses atouts et ses faiblesses. Seules, elles ne sont d’aucune utilité, mais ensemble elles se complètent afin de former un tout cohérent et solide. Nous pourrions comparer chacune de ces pièces aux différentes parties qui constituent une maison.

De la conservation à l’innovation

La métaphore de la construction d’un bâtiment

Les murs

“Don't trust the client side – do it all on the server.”

On voit de moins en moins ce genre de personne mais cette citation reste toujours d’actualité et on la voit revenir de temps en temps. C’est la partie la plus classique. Ces personnes restent bloquées dans le «passé» du web car elles prônent les vieilles techniques en évitant les nouvelles, créant des sites désuets.

Le problème est que ces vieilles interfaces sont «correctes» mais risquent d’ennuyer l’utilisateur. Or aujourd’hui, on se doit d’être de plus en plus attentif à l’utilisateur.

Fonctionnel & durable sur tous supports.

Peu innovant, régresse le web.

La charpente

“You have no right to block any users.”

Cette partie tend vers plus d’innovations. Elle veut mettre en place des solutions qui fonctionnent en utilisant les normes du web pour que l’utilisateur ne soit jamais déçu. Par exemple, selon l’environnement, l’interface peut changer. C’est important car ne pas le faire est une erreur par rapport à l’utilisateur qui risque de se lasser lors de son expérience. C’est notre job d’être sûr que les utilisateurs peuvent utiliser les différents produits.

Innovant grâce aux interfaces adaptables aux différents environnements.

Problématique vis-à-vis de l’utilisateur.

Les fondations

“Using semantic HTML gives you a lot of things for free. Accessibility, catching, fast rendering. You can't lose.”

Cette partie défend la sémantique et la structure HTML avec lesquelles nous créons des sites. L’HTML assure l’affichage du contenu malgré les erreurs tandis que les outils (Javascript, CSS, PHP,...) permettent la mise en forme.

Quand on est passé de l’HTML à l’HTML5, les développeurs pensaient que certains seraient plus simples et que certaines choses seraient adaptées ou identiques sur les différents navigateurs. Mais en fait, les fondateurs de l’HTML5 n’ont pas tenu leurs promesses: pas de sélecteurs de date, pas de nombres flottants, ou encore pas d’ancre par exemple. Les développeurs ont été déçu par le retard des mises à jours de ce dernier. De plus, une certaine dissonance d’assimilation règne entre les différents navigateurs.

HTML sera toujours là quoi qu’il arrive.

HTML5 n’a pas tenu ses promesses.

L’électricité

“Browser differences are annoying and shouldn't be in the way of the developer. That's why we need abstraction libraries to fix issues.”

Les librairies Javascript, Jquery, Ajax, etc.. sont utilisées pour réparer certains problèmes en HTML. Les développeurs voulaient que ces librairies soient intégrées sur tous les navigateurs mais malheureusement, Firefox et d’autres n’ont pas cédé et n’ont pas intégré cela.

Il n'y aucun doute que Jquery, Modernizr et d’autres librairies soient bénéfiques au web que nous connaissons aujourd'hui. Ils font que les choses fonctionnent. Le problème c'est que beaucoup de développeurs deviennent dépendants de ça.

Bon fonctionnement de Jquery, Modernizr et autres polyfills.

Risque de dépendance de la part des développeurs.

Le ciment

“I can do everything in Javascript. Every developer on the web should know it.”

C’est la partie la plus polyvalente car elle se glisse partout afin de résoudre des problèmes en utilisant des bases solides. Dans ce cas, c’est Javascript. C’est le seul langage à couvrir toute «l’expérience» car on l’utilise pour le serveur ainsi que pour le client. Et il peut être « combiné » avec de l’HTML et du CSS. Contrairement à ceux-ci, on peut savoir si le JavaScript est appliqué correctement grâce à la récupération d’un traitement d’erreur.

Le Javascript est la base du web d’aujourd’hui, les choses sont plus accessibles grâce à lui. Il y a plus d’interactions et d’adaptation en Javascript et on peut tester si quelque chose se passe ou non. Cependant, le JavaScript est capricieux, c’est-à-dire que son problème est qu’il peut échouer à biens des égards. Avec JavaScript, nous avons un contrôle important, mais nous avons aussi une grande responsabilité.

Polyvalence de Javascript.

Javascript peut être capricieux.

Les matériaux

“I don’t want to have to think about older browsers and broken environments. Frameworks and build processes can take care of that.”

L’utilisation des librairies est inévitable pour combler les divergences des navigateurs en vue d’optimiser l’expérience utilisateur.

Certains web développeurs utilisent les derniers standards, trop récents pour être interprétés correctement par le(s) navigateur(s). À cause de cela, ils doivent anticiper les problèmes de compatibilité. En s’éloignant trop des langages de base, ils deviennent incompréhensibles et doivent dès lors être compilés une ou plusieurs fois afin d’être exécutés de manière universel.

De plus, à force de compilations, on peut vite perdre le contrôle sur notre travail, alourdir des tâches simples, voire créer un effet boules de neige de problème. Par exemple, une erreur compilée en entraînant une autre, qui sera elle-même compilée de nouveau,… En solutionnant un problème, on peut vite en créer une infinité d’autres.

Aujourd’hui, les navigateurs nous aident avec des outils de développement, comme l’inspecteur par exemple, afin de faire un lien entre ce que l’on code et ce qui est interprété par le navigateur.

Évolution du web, compilation de codes non compatibles en codes fonctionnels.

Difficulté à retrouver les erreurs, à force de recompiler les codes.

La décoration

“Browser and web standards are too slow and don’t give us enough control. We want to know what’s going on and control every part of the interface.”

Aujourd’hui, alors que nous voudrions tout contrôler, les navigateurs ne nous donnent pas assez de pouvoir. Cependant, en tant que développeur, il est de notre devoir d’utiliser les outils adéquats, tel que Javascript, afin de créer des interfaces accessibles et innovantes. Plus innovant vous serez, plus vous devrez prendre vos responsabilités pour qu’un site fonctionne chez tout le monde et pour chaque environnement. Grâce à cette méthode de travail, le design est plus interactif, adaptable et efficace aux besoins de l’utilisateur. Si vous faites confiance au navigateur, vous prenez le risque que rien ne s’affiche et que l’expérience utilisateur soit décevante…

Il n'y aucun doute que Jquery, Modernizr et d’autres librairies soient bénéfiques au web que nous connaissons aujourd'hui. Ils font que les choses fonctionnent. Le problème c'est que beaucoup de développeurs deviennent dépendants de ça.

Interface attractive, interactive et responsive.

Code minutieux & complexe, si celui-ci est non-adapté aux changements d’environnement, le site fonctionnera mal et/ou contiendra des erreurs.

Design inclusif

Quelque soit notre place dans le spectre, on a quelque chose à apporter aux autres. Chacune de ces différentes approches et opinions ont leur place dans le web, et font la diversité du marché. La combinaison des compétences de chacun fait la différence au niveau des interfaces. Il est primordiale que l’on «travaille» ensemble, que l’on s’écoute car le web évolue en permanence et combine rapidité et créativité, nous devons savoir vivre avec cet apprentissage continu.

“…All humans are growing, changing, and adapting to the world around them every day. We want our designs to reflect that diversity. Every decision we make can raise or lower barriers to participation in society…”

Le monde ainsi que le Web évoluent continuellement, entraînant des changements dans nos perceptions, nos habitudes,… Malgré cela, nos habitus quotidiens sont radicalement normalisés, excluant une large part de la population. Or la «magie» d’Internet réside dans la communication: l’effondrements des barrières physiques, sociale, lingual,… afin de donner à ceux qui ne l’ont pas encore, l'opportunité de prendre part à la communauté et faire entendre leur voix.

“Voir la diversité humaine comme une ressource pour de meilleurs designs”

L’ambition du design inclusif est de créer des designs appropriés physiquement, cognitivement et émotionnellement à chacun de nous peu importe notre handicap.

Et donc?

Les utilisateurs

Christian Heilmann met en avant le fait que l’expérience utilisateur est le but ultime! Cette dernière citation nous confirme que l’utilisateur doit être avant l’auteur, qui est lui même avant les ‘exécuteurs’ qui sont avant les ‘spécificateurs’, qui eux-même sont avant la théorie pure.

“Users over authors over implementers over specifiers over theoretical purity.”

Notre travail est de créer des interfaces simples, humaines et « amusantes » à utiliser. Les résultats et les outils adéquats doivent être de paires. Il s’agit d’éviter les barrières. Cependant, c’est la plus grande chose que nous ne faisons pas à l’heure actuelle. Il ne faut pas essayer de contrecarrer ce qui ne fonctionne pas immédiatement car ce n’est pas comme ça que le web fonctionne et à la place de réparer tous ces petits problèmes, on en cause des plus gros. Il est temps de comprendre que travailler dans un monde de créativité qui évolue constamment et rapidement demande d’adopter une certaine attitude, autrement nous serons tous perdants. Les conservateurs doivent apprendre des innovateurs et inversement. Plutôt que d'essayer de prouver qu’une technique est meilleure qu’une autre, nous devons nous allier pour « travailler » ensemble. De plus, nos réalisations ne doivent pas être éternelles et il est bon qu’elles disparaissent lorsqu’elles ne sont plus à jour ou n’ont plus d’utilité. Sans quoi, les anciennes techniques à ne plus appliquer resteront accessibles.

Chacun d’entre nous fait donc partie «du web» et a quelque chose à y contribuer. Personne ne détient la solution pour atteindre la perfection mais c’est primordiale que chacun fasse entendre ce qu’il a dire, ça ne peut qu’être bénéfique pour tout le monde. Aucune créativité n’est une perte, peu importe ce que vous faites. Tant que vous êtes libres et créatifs et que vous le partager avec d’autres personnes.

Voir la conférence? Ici...

Lire le case-study? Ici...