Hommage au pattern module

1 janvier 2010

Pas celui de JavaScript, mais l’autre de l’excellente bibliothèque YUI, qui vise le HTML (même s’il n’a pas l’air d’avoir survécu au passage à la version 3).

En une phrase :

HTML rencontre AOP.

Le problème :

  1. Le graphisme est (encore) sujet à variation, par exemple du fait :
    • d’une logique de personnalisation poussée,
    • plus simplement parce qu’il n’est pas encore prêt.
  2. Par contre le contenu est déjà suffisement structuré pour qu’on puisse créer le HTML, et respecter la structure de titrage

Comment s’y prendre :

  1. Quand vous avez un « bloc » qui se tient bien tout seul, pour l’exemple :
    <div id=”contenuPrincipal”>
    Lorem ipsum [...]
    </div>
  2. Donnez-lui au moins un div avant, une étape après, et un autour. Pour notre exemple :
    <div id=”contenuPrincipal”>
    <div class=”module-before”></div>
    <div class=”module-content”>
    Lorem ipsum [...]
    </div>
    <div class=”module-after”></div>
    </div>
    (Les noms de classes sont longs pour l’exemple, préférez quelque chose comme « mb », « mc», « ma »)
  3. Profitez des nouveaux points pour votre feuille de style !
    #contenuPrincipal {}
    #contenuPrincipal .module-before {}
    #contenuPrincipal .module-content {}
    #contenuPrincipal .module-after {}
  4. « Points bonus » (ou « comment aller trop loin dans bien des cas ») :
    • Utiliser la version « inline » : mettez des <span> aux balises de type « bloc », et aux liens. Par exemple :
      <p>Lorem ipsum [...]</p>
      devient
      <p><span>Lorem ipsum [...]</span></p>
    • Soyez clair sur l’utilisation du pattern :
      <div id=”contenuPrincipal”>
      devient
      <div id=”contenuPrincipal” class=”module”>
    • Poussez le vice jusqu’à intégrer la notion « d’autour » de l’AOP, par exemple ainsi :
      <div id=”contenuPrincipal”>
      <div class=”module-around”>
      <div class=”module-before”></div>
      <div class=”module-content”>
      Lorem ipsum [...]
      </div>
      <div class=”module-after”></div>
      </div>
      </div>

Force « contre » :

  • Il est (vraiment !) plus difficile de rentrer dans le code de la page (d’où la nécéssité parfois d’être explicite sur l’utilisation de ce module) si on ne l’a pas créer soi-même
  • Le code de la page est plus lourd

Forces « pour » :

  • Très grande souplesse introduite en terme de mise en page
  • A fait ses preuves
  • Accessible
  • Permet même de s’affranchir du workflow traditionnel, permettant dans certaines circonstances un meilleur Time-to-Market

À l’avenir :

Avec (surtout) la venue de CSS3 et (quand même moins) d’HTML 5, le besoin de cette souplesse sera probablement moindre (enfin, une fois qu’Internet Explorer 6 ne sera plus un problème).

Qui plus est, on peut probablement s’attendre à des conflits avec la balise <h>, sensible à son contexte (au niveau de profondeur) …

Chaîne « classique » de production web : comment en est-on arrivé là ?

29 décembre 2009

Depuis la nuit des temps était le contenu.

À travers différents métiers (marketing, communication, artistes, …) ce dernier à réussi à occuper chaque media (grotte, discussions, livres, journaux, radio, télévision, …).

Du côté de 1994 :

Il y a bien longtemps, un nouveau medium apparaissait : le web. Nouveau medium, nouveau médiateur : le webmaster faisait lui aussi son apparition.
Issus de l’informatique, ces pionniers se destinaient à la base à une profession de programmation ou d’administration de services. Donc la qualité du graphisme ne faisait pas forcément partie de leur préoccupations, n’ayant généralement pas été sensibilisés ni formés à cela. Et puis le web des premières heures était limité, destiné à la publication de documents scientifiques, pas à donner des effets « waouh ».

Le workflow de l’époque : contenu → webmaster → internet

Aux environs de 1996
Avec l’arrivée de personnes issues d’autres milieux, tel le typographe David Siegel, et le détournement de la balise <table>, des sites plus beaux ont commencé à faire leur apparition.

Le workflow de l’époque : contenu → graphiste → webmaster → internet

À peu près en même temps les sites ont commencés à devenir assez grands et complexes pour devoir être programmés. Et les administrateurs de services se virent confiés de nouvelles machines, et parfois aussi de nouvelles exigences (24/7, sécurité, &c.)
Une petite partie des webmasters de l’époque revinrent à leur métier d’origine, laissant les nouveaux venus occuper la place. Sans compter que ce qu’on allait appeler la bulle des « dot’ com’ » commençait à gonfler, ouvrant beaucoup de place…

Le workflow de l’époque : contenu → graphiste → webmaster → développeur → administrateur → internet

(Question au lecteur, une nouvelle variante de l’œuf et la poule : ces gens sont-ils venus « améliorer » le web du fait de l’arrivée du grand public, ou le grand public est-il venu parce que le web devenait « consommable » ?)

2000-2001

Et la bulle explosa. Les informaticiens retournèrent à l’informatique, les graphistes à la PAO, …
… Seuls restèrent les passionnés et ceux qui ne savaient/voulaient rien faire d’autre.

Cette explosion, associée à la victoire d’Internet Explorer 6 sur les version 4.7 et 4.8 de Netscape, amena le milieu a gagner en structure, avec l’adoption par les praticiens des standards du web (notament des CSS) grâce à des gens comme Jeffrey Zeldman et au WASP. Les webmasters disparurent, remplacés par les intégrateurs web.

En même temps se firent un paquet d’intranets toxiques, avec un balisage catastrophique, ou des ActiveX qui ouvrent la porte à d’autres dangers…
… tout cela lié à l’hégémonie d’Explorer, une méconnaissance des bonnes pratiques par les autres professions, à commencer par les universités.

Quelque part en 2004

Quand le milieu se remit du KO, il fallait repartir de plus belle. Les intégrateurs étant en nombre limité, ils devinrent « naturellement » la contrainte. Pour les délester d’un peu de travail, la charge du graphisme reprit la division qu’elle connaissait en publicité/communication : les créa[tif]s, chargés du « woah » et souvent brouillons, et les exé[cutant]s, capable de soigner les créations et de les décliner…

Le workflow devint : contenu → créa → exé → intégrateur → développeur → administrateur → internet

Le webmaster ne tarda pas à revenir de ses cendres, pour importer le contenu dans ces nouveaux dispositifs.

Par ailleurs, privés du contact direct avec ceux qui manipulent le produit, les créas ne furent pas forcément suffisement cadrés pour ce qui est de la structuration du contenu et de l’ergonomie, ce qui amena l’arrivée d’un nouveau rôle : l’architecte de l’information, qui s’occupe de la répartition du contenu à travers les pages et de la disposition au sein de celles-ci (du coup ils découvrent les outils des autres métiers [modélisation de processus, personnas, ...])

Le workflow actuel dans une firme assez grande est donc : contenu → architecte → créa → exé → intégrateur → développeur → webmaster → administrateur → internet

Pour l’instant les gens du marketing et de la communication sont « tenus à part », en tant que « clients ». En partie à cause de leur méconnaissance de la production, en partie parce que c’est plus commode comme ça, avec tous les contenus préparés à peu près à l’avance…

Vous pouvez donc deviner les (prochains) enjeux :

  • pour les petites entreprises, être capable de faire aussi bien sans recourir à une chaîne aussi longue ;
  • la capacité à créer/transformer/transférer du contenu doit être augmentée, le « client » étant de moins en moins en mesure de le faire ;
  • avec une chaîne aussi longue, il faut viser juste ou sinon ça fait très mal : il va se passer encore des choses autour de l’architecture de l’information ;
  • finalement la leçon acquise par d’autres milieux (presse, informatique) va être assimilée aussi et on va voir l’adoption de méthodes plus légères, itératives et incrémentales (bref : agiles et/ou lean) se mettre en place ;
  • probablement au travers de la mise en place de Kanban (on commence à avoir des retours très prometteurs)

Agilité et animation en “stop-motion” : au-delà des post-its

24 juin 2009

Thibault Bouchette a récemment envoyé un courriel à la mailing-list XP-France pointant vers cette merveille : DEADLINE

Je vous invite tout particulièrement à voir aussi le making-of.

Au-delà du côté “fun”, côté méthodologie, on retrouve des choses bien connues des praticiens d’XP :

  • Un exemple de “carottage” (“spike” en anglais), une sorte de prototype jetable, histoire d’avoir la réponse à la double question « est-ce faisable, et si oui en combien de temps ? »
  • Une modélisation du domaine (c’est plutôt IXP ou FDD qui poussent à ça, mais beaucoup connaissent[/utilisent?] les travaux d’Eric Evans…)
  • Des itérations : on va retravailler son ouvrage jusqu’au résultat attendu (ici : pré-animation avec flash, animatique, tournage, [et une post-production [montage, son, …] passée sous silence)
  • Du travail d’équipe, et des gens aux compétences multiples (ici : préparation/masque, assemblage/cadrage, assemblage/acteur, assemblage/éclairage)
  • Des statistiques : 3 mois de préparation, 4 jours de tournage, plus de 6 000 post-its

Comme quoi le contexte a beau beaucoup compter, le bon sens reste le même partout ;-)

À l’intention des travailleurs du web

18 juin 2009

Faites bien attention à la variété de vos travaux !

Ça vous aidera à :

  • Apprendre plus vite / souvent ;
  • Vous vendre plus facilement…

Par exemple :

  • Si vous faites trop d’intranets, vous n’aurez rien à montrer en temps utile :-( ;
  • Si vous travaillez trop souvent en équipe, on ne saura pas identifer ce que vous avez fait/savez faire ;
  • Si vous faites trop d’une spécialité, on ne saura pas comment vous vous débrouillez dans les autres…
  • Si vous faites trop d’une spécialité (bis), lors d’un changement significatif de l’environnement (exemple : l’arrivée Ruby on Rails), vous ne pourrez que compter les points :-D

En tout cas merci de ne pas répéter mes erreurs ;-)

« sur-équipé », non merci !?

10 juin 2009

Une fois n’est pas coutume, voici un billet d’humeur…

J’ai récement entendu lors de spots publicitaires le mot « suréquipé » (je ne sait pas pour qui, et là n’est pas la question, en fait j’espère que plusieurs marques utilisent ce terme histoire de ne vexer personne :-/ ). « sur-équipé » ? J’ai dû mal entendre…
… en fait j’ai bien entendu. Ça m’a tellement marqué que je ne saurais vous dire de quoi ou qui il s’agit.

Quelques remarques :

  1. Voilà qu’un défaut devient une qualité !
  2. On dirait qu’il n’y a pas que le monde du logiciel qui se retrouve à créer trop de fonctionnalités par rapport à la demande…
  3. Heureusement que les publicitaires ne pensent pas toujours ce qu’ils disent ;-)

Que veux dire sur-équipé ?

  1. Trop équipé …
  2. … donc trop cher : si l’équipement n’avait été que ce qu’il faut, le fabricant aurait pu baisser le prix et/ou monter ses marges ;
  3. … donc difficile à utiliser : une interface digne du tableau de bord d’un avion (cf les préférences de MS Word ;-) ), sans façon…
  4. … donc pas adapté : si le fabricant fait ce qu’il veut, quelles sont les chances qu’il ait fait ce que moi je veux ?
  5. … donc pas fiable ! En effet si la communication ne passe pas entre, au choix, le public et le marketing ou le marketing et l’ingénierie, qu’en est-il entre l’ingénierie et la production ?

Ce n’est pas un hasard si le Lean nous invite à :

  • considérer la sur-qualité et la sur-production comme des gaspillages,
  • et à utiliser des processus tirés, y compris pour la conception !

MàJ : En défense du suréquipement :

Et si je suis dans un marché saturé ? D’après le modèle de Kano, il faut déjà sortir de la zone d’indifférence…

Comment s’y prendre ?

Le plus simple est de faire plus de ce que l’on sait déjà faire (on va donc se battre sur les “facteurs de performances”, c’est les trucs du type “plus il y en a mieux c’est” : gadgets, …) dans un premier temps, histoire de dégager temps et moyens pour les deux autres lignes :

  • les “must-have” (c’est-à-dire ne pas fâcher son client : éxécution impeccable, très bonne compréhension des besoins, …) (attention c’est très dur)
    (En automobile, c’est le terrain de Toyota et Honda, en logiciel, ça tend à être celui d’Apple et de 37Signals),
  • mais aussi les “delighters” (ces “petites choses qui changent tout”)
    (bizarrement ça tend à être des boîtes externes au milieu qui excellent à entrer dans un marché avec, genre Apple avec l’iPhone pour le monde de la téléphonie)

La course “au plus” plutôt qu’“au mieux” ne peut marcher qu’un temps

Prenons un exemple : le marché des lecteurs MP3 était en apparence saturé quand Apple y a lâché son iPod…

Comment on fait les constructeurs du marché à l’époque ? Ils se sont démarqués les uns des autres à coup de fonctionnalités supplémentaires : plus gros disque dur, radio, micro pour l’enregistrement, …

Comment a fait Apple ?

  • Un machin qui en fait moins, mais le fait très bien (transfert à haute vitesse grâce au FireWire plutôt que l’USB, pas de prise de tête grâce à iTunes, …),
  • et qui en plus change la donne (il est beau, il est facile à utiliser [c’est fou que ce soit un facteur de délice plutôt qu’une condition nécéssaire…], …)

Rétrospective publique XPDay France 2009

10 juin 2009

Les photos des panneaux que j’ai pu prendre (attention, fichier .zip)

Merci à Raphaël Pierquin d’avoir pris le relais de temps en temps (notamment pour le “clustering” du WIIFM) et à Sébastien Douche pour l’accueil et les ondes de silences…

Quelques remarques :

  • Je suis troublé par le nombre de personnes qui était là pour voir une rétrospective, ce qui veut dire que la curiosité face à ce genre d’événement est encore haute, donc qu’il n’y en a pas encore suffisement assez pour que ce soit perçu comme quelque chose d’anodin…
    Question : comment changer cet état de fait ?
  • C’est la première rétrospective dont je sors plus reposé qu’en y entrant…
    … mais je n’ai pas encore trouvé pourquoi !
  • Petite leçon : il faut vraiment faire attention à communiquer un agenda de la rétrospective, même s’il va changer en cours de route, histoire de rassurer tout le monde.

L’ordre des “activités” (et d’où je les tiens) :

  1. Les directives (sources diverses)
  2. Check-in (“Comment je m’appelle”, “en tant que …”, et puisque c’était le bon public : “quel langage de programmation je serais ce soir” ;-) ) (Agile Retrospectives)
  3. What’s In It For Me (sources diverses)
  4. ESVP (Agile Retrospectives) et “Create Safety” (Project Retrospectives)
  5. Timeline (Agile Retrospectives) et pause
  6. “Mine for gold” (Project Retrospectives) et “Patterns & Shifts” (Agile Retrospectives)
  7. Constitution du Backlog pour l’édition 2010 (improvisé sur place :-) )
  8. Clôture : Return On Time Invested (Agile Retrospectives) et +/∆ (Agile Retrospectives)

XPDays France 2009

27 mai 2009

Seconde expérience des XPDays France, qui ont eu lieu lundi et mardi près de Paris, et par ailleurs la plus grosse édition (6 salles, 250 participants, …).

Outre un lieu formidable, des repas et des pauses parfaits, j’ai pu aussi profiter de quelques sessions :

Lundi 25 mai

  • Session d’ouverture : Chapeau bas aux organisateurs pour avoir su faire passer tous les messages sans que ça tourne au supplice…
    (et mention spéciale à la description de la conférence appuyée de photos explicatives…)
  • Blanche Neige et les Sept Nains : le miroir magique vous aide à mieux travailler en équipe
    par Portia Tung et Pascal Van Cauwenberghe
    C’est dur à raconter, si ce n’est que c’est génial (comme toujours avec ces deux là…).
    En gros on démarre par une brève de séance de socialisation (j’aurais dû chercher à retrouver ceux que j’ai rencontré à ce moment-là pour en apprendre plus après…), puis un jeu prend place, qui en fait autant apprendre sur soi-même que sur la composition de l’équipe “idéale”.
  • Les 90 premières minutes d’une équipe remarquable
    par Géry Derbier.
    Après s’être présenté, Géry a commencé par faire faire des passes de ballons “invisibles” mais néanmoins colorés, ce qui donne des effets surprenants (perte, duplication, …) (c’est qui arrive au code pendant le projet), et ce pendant plusieurs itérations, l’occasion pour les équipes d’apprendre quelques-uns des « Core Protocols », et de les pratiquer de façon efficace. Ensuite, vient l’exercice difficile de se mettre d’accord sur les mots “remarquable”, “confiance”, “présence”. Ça a été l’occasion pour Géry de nous faire part d’une partie de son expérience, en revenant sur les points énoncés qui lui tenaient à cœur.
    Une équipe m’a frappé par son utilisation efficace des protocoles appris, et par les résultats « supérieurs » en terme de quantité et d’organisation, et je ne serais pas surpris qu’il y ait une relation de cause à effet…
  • Travailler entre adultes
    par Raphaël Derbier.
    Après une division en groupes « homogènes » et s’être présenté, Raphaël aborde certains points propres aux enfants qu’on n’est plus supposé voir chez les adultes, et il se trouve que certains sont désirables. Étant le rapporteur de mon groupe, j’ai des notes touchantes au sujet de projets en cours où à venir sur des thèmes tels que « prendre soin de soi » (ce que ne sait pas faire un enfant, et certains adultes aussi), de l’apprentissage, de la communication
  • Push, pull [kanban], réaliser sans itérations (si nécéssaire)
    par moi-même.
    Je suis désolé, je vais essayer de réparer ça.
    Pour faire simple : j’en suis encore traumatisé.
    Quelques leçons:
    1) En gros sans table et avec un quart d’heure de moins, j’aurais dû proposer de sacrifier les simulations et transformer l’atelier en présentation, ça aurait été plus efficace ;
    2) Le réalisme c’est bien, mais être simpliste plutôt que simple n’est pas forcément le “crime” que je pensais ;
    3) La prochaine fois je compte sur un temps divisé par deux, ce sera mieux ;
    Si vous tenez à savoir comment s’est passé le désastre : je comptais sur un quart d’heure d’introduction/rôdage, après quoi la simulation de mode poussé se serait passé correctement, et aurais mis en avant comment les phénomènes de queues et les problèmes classiques de production de masse peuvent nous être applicable. Sauf qu’au moment de faire la simulation il était temps de faire la pause, donc l’entraînement n’a pas eu lieu, et même en reprennant directement à la simulation du mode tiré il a fallu un échauffement…
    … du coup beaucoup des points que j’espérais faire passer ne sont pas sortis :’-(
    Tout n’aura pas été nul au demeurant : la collaboration a été très riche, alors que personne n’a eu à renoncer sa nature de « spécialiste », donc la promesse de kanban aura été tenu.
  • La parabole du trafic urbain - l’Agilité expliquée autrement
    par François Bachmann.
    Si votre projet était une voiture, par quels hasards de la route passerait-il ? Et une ambulance ? Grâce à cette métaphore, François nous a montré comment une méthode comme eXtreme Programming marche comme un rond point (pas de décision centrale mais une décision individuelle en fonction d’un savoir local, la nouveauté vient toujours de la droite, les flux), et les systèmes classiques comme des feux.
  • La discussion à la fin autour de la valeur d’une équipe et les classes de services comme des voies séparées me fait encore réfléchir…

Mardi 26 mai

  • Quelques repères pour une histoire de la gestion de projets informatiques
    par Godefroy Beauvallet
    Deux idées se démarque de mes notes :
    1) Un réseau PERT c’est un outil de communication, pas de plannification et si on l’oublie ça fait mal ;
    2) Le management est traversé par des modes au moins aussi violentes que celles du graphisme, et les mythes d’une époque façonnent l’évolution d’une industrie qui naît lors de celle-ci (je me demandes quels sont les mythes qui façonnent la communication digitale)
  • My Language Is More Agile Than Yours (a LISP Presentation)
    par Conan Dalton
    Il y a 1) moins de parenthèses 2) plus d’intérêt dans LISP qu’on pourrait ne le penser au premier abord…
    … surtout quand on commence à regarder le rapport bruit/signal d’un langage/framework.
  • Le “Business Value Game”, trois itérations dans la peau du Product Owner
    par Pascal Van Cauwenberghe, Portia Tung, aidés par Laurent Morisseau
    Session parfaite malgré le nombre élevé de personnes, et très implicante, à tel point que la fatigue aidant on zappe presque la très important conclusion…
    J’avais oublié à quel point les time-box c’est dur ;-)…

Bref, beaucoup de très bonnes discussions, des rencontres passionnantes, des idées à explorer (dont quelques unes de bien farfelues ;-) )

De l’« empirisme » à la « définition »

23 mai 2009

Préambule : le temps de mettre au point le brouillon de ce billet et je me suis fait doubler (ici).

Le point principal :
une méthodologie n’est pas seulement « empirique » ou « définie », mais plus ou moins de l’un et/ou de l’autre.

Dans le semble-t’il trop méconnu « Agile Software Development with Scrum » (surnomé le « livre noir»), un résumé des travaux d’Ogunnaike présente les méthodologies comme étant « définies » ou « empiriques ». Pour faire caricatural (mais à peine plus que le livre), une méthodologie « définie » recense toutes les étapes d’une création/transformation de produit, mais se trouve vulnérable face à de trop grandes variations d’entrée. Et une méthodologie « empirique » consiste davantage à « inspecter et adapter » (le mantra de SCRUM) le produit, en prenant toutes les mesures nécéssaires pour arriver au résultat souhaité, sans chercher à créer un workflow répétable.

Alors, votre méthodologie est-elle « définie » ou « empirique » ? À quel genre de chaos avez vous à faire face ? Quel workflow pouvez-vous utiliser ?

Petit listing de méthodes (pour l’exemple, par pour l’exhaustivité), de la plus « empirique » à la plus « définie »…

  1. SCRUM, qui est un framework générique (qui ne veut pas savoir ce qu’on fait) ;
  2. eXtreme Programming prétend qu’on fait du code, et applique un workflow astucieux (à coup de tests en premier) ;
  3. DSDM considère qu’on réalise un produit, et applique un workflow à base d’itérations typées ;
  4. FDD applique un workflow pour le développement non pas seulement de code, mais de logiciel (par exemple avec une étude du domaine pour commencer) ;
  5. Les Lean Product Development System utilisent un ensemble de timebox / standards de travail pour arriver à mettre au point un produit industriel ;
  6. Les Lean Production System utilisent tout comme les Lean Product Development System des standards de travail, mais cette fois le workflow est contrôlé à coup de Kanban et non plus de timebox…

Il est à noter que les standards de travail des familles « lean » sont constament sujet à évolution…

Il faut aussi savoir changer de style : par exemple pour la réalisation d’un dessin animé vous allez utiliser un système empirique le temps de mettre au point simultanément l’univers, les personnages, le scénario, puis vient le temps de la réalisation à proprement parler, qui est beaucoup plus basée sur des flux (et donc suit une méthodologie plus « définie »)…

Plusieurs fichiers de feuilles de styles

19 mai 2009

Description :

Plusieurs variantes (généralement combinées) :

  • Une feuille de styles pour la page d’accueil, une pour les pages centrales, une pour les pop-up ;
  • Une feuille de styles par gabarit plus une pour la structure récurrente ;
  • une feuille de style supplémentaire par navigateur commettant des bizarreries (au hasard IE/Win versions 6 et 7).

Pour :

  • Réduction possible du délai de livraison (par l’augmentation de la concurrence) : il est plus facile d’avoir davantage de personnes travaillant simultanément à la réalisation du site, sans surcoût de type technique (genre : fusion des modifications sur un même fichier)
  • Facilité de maintenance : en cas de correction il est plus facile de savoir où trouver les déclarations fautives

Contre :

  • Augmentation de risques : de duplication, de croisement de cascades, &c. car on n’a pas tout sous les yeux ;
  • Dans un environnement rigide (forte traçabilité, tests manuels systématiques) : coûts plus élevés pour la maintenance de par la simple manutention de plusieurs fichiers au lieu d’un seul.

Voir aussi : Un seul fichier de feuilles de styles

Un seul fichier de feuilles de styles

19 mai 2009

Description :

Toute la présentation du site est définie dans un seul fichier CSS.

Pour :

  • Vitesse, facilité : tout est sous la main, y compris les redéfinitions spécifiques à IE/Win.

Contre :

  • Risque de complexité : tout étant ensemble il est facile de « coder par différence » et de se retrouver avec des cascades complexes ;
  • Le fichier unique devient une contrainte : il sera plus difficile de faire intervenir plusieurs intégrateurs en même temps (des outils de gestion de configuration tels que SubVersion, git, peuvent largement atténuer cet inconvénient).
  • Maintenabilité : on se retrouve à utiliser des hacks pour IE/Win, et ceux tendent vitent à proliférer…

Voir aussi : Plusieurs fichiers de feuilles de styles