La quête du logiciel de qualité — suite et fin (Libres conseils 22c/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : peupleLà, lerouge, goofy, alpha, Sky, Julius22, vvision, okram, lamessen

Les transformations qui préservent la structure

Le deuxième tome de The Nature of Order décrit comment chacune de ces propriétés définit également une transformation. En voici des exemples.

  • Des frontières solides. Vous pouvez parfois transformer quelque chose positivement en lui adjoignant une frontière. Vous installez une palissade autour d’un jardin qui sert alors d’ornement, de coupe-vent afin que des vents forts ne viennent pas endommager le jardin, mais elle existe aussi comme structure en soi. Dans une interface graphique utilisateur, des boîtes à ascenseurs sans cadre sont difficiles à distinguer de l’arrière-plan de la fenêtre (pensez à toutes ces pages web blanches dont les formulaires d’entrée de texte n’ont pas de cadre). Vous placez une corniche sur le toit d’un immeuble afin que la transition entre l’immeuble et le ciel ne soit pas abrupte.
  • Des symétries locales. Il est plus facile de construire de petites parties de manière symétrique : parce qu’elles sont fabriquées sur un tour, parce qu’on doit y accéder des deux côtés, parce qu’elles se plient comme un livre. Faire des choses asymétriques, seulement pour l’intérêt de la chose, demande un travail supplémentaire et il est plus difficile d’obtenir quelque chose qui fonctionne bien.
  • Un espace positif. Vous vous sentez trop exposé quand vous êtes au bureau ? Ajoutez une étagère à mi-hauteur à côté de vous pour délimiter votre espace mais ne vous enfermez pas complètement. Est-ce que votre interface utilisateur donne l’impression qu’il y a beaucoup d’espace restant une fois que vous avez mis les contrôles en place ? Faites plutôt en sorte que les contrôles entourent l’espace utilisable.

Chacun des points qui précèdent est une transformation qui préserve la structure. Vous effectuez un changement dans la structure existante non pas en la démolissant et en la refaisant, mais en ajustant une chose après l’autre selon ces propriétés comme transformations.

En termes de logiciel, il s’avère que c’est ce en quoi le « Refactoring » consiste surtout, quand vous traduisez les concepts en code. Réorganiser, c’est seulement appliquer des transformations qui préservent la structure ou, comme Martin Fowler — l’auteur de Refactoring — l’aurait présenté, des transformations qui préservent le comportement. Vous ne changez pas ce que fait le programme ; vous changez seulement la manière dont il est construit à l’intérieur, morceau par morceau.

En extrayant un morceau de code et en l’insérant dans une fonction nommée, vous ajoutez essentiellement une frontière solide autour du code et créez un noyau robuste. En enlevant une variable globale et en ajoutant des variables de classe, vous permettez la robustesse, car chaque instance peut maintenant avoir une valeur différente dans cette variable, comme nécessaire. En ayant un producteur/consommateur, ou un émetteur/récepteur, vous avez des symétries locales, des imbrications fortes et ambiguës, et une bonne forme.

Richard Gabriel, l’une des principales personnalités du Common Lisp , a étudié comment appliquer les théories d’Alexander au logiciel (et aussi à la poésie ; le code n’est-il pas similaire à la poésie après tout ?). Il donne l’exemple suivant :

  1. Imaginez que vous créez la classe AppelTelephonique. C’est un objet central implicite, qui pourrait être beaucoup plus puissant.
  2. Gerard Meszaros dans le modèle DemiObjet + Protocole suggérait de séparer l’objet en deux demi-appels, liés par un protocole. On obtient ainsi une symétrie locale, un centre fort et un effet d’échelle.
  3. Maintenant, dessinons cela sous forme de diagramme. On obtient alors de la symétrie locale, de l’effet

    d’échelle, des frontières, une imbrication forte et de l’ambiguïté. C’est ici que Meszaros a arrêté sa démarche.

  4. Richard Gabriel suggère alors de renforcer les centres existants en appliquant d’autres transformations qui préservent la structure. Que faire de l’objet central implicite au milieu ? Vous lui ajoutez une frontière explicite (Appel) qui lie les demiAppels entre eux. Cela améliore les symétries locales, maintient l’imbrication forte et l’ambiguïté, et c’est composable.

  5. Oui, c’est composable. Des appels multidirectionnels, des conférences téléphoniques, tout cela s’effectue 

    grâce à la mise en œuvre de transformations qui préservent la structure.

Chaque développeur garde probablement une image mentale du programme qu’il est en train de créer ou de modifier. La partie la plus difficile dans la modification d’un code que vous n’avez pas écrit est de commencer par visualiser cette image mentale. Quand vous travaillez pour que le code affiche une image plus jolie, il s’améliore — et Alexander nous propose une bonne façon de le faire.

Le processus fondamental

Alexander argumente longuement pour expliquer l’intérêt de suivre ce processus : appliquer des transformations qui préservent la structure est la seule manière de réussir une conception de qualité et fonctionnelle. Cela ne vaut pas seulement pour les immeubles, mais pour tout ce que nous construisons. Peu importe que vous partiez de l’existant — un programme, un bâtiment ou une ville — ou que vous partiez de zéro. Nous imitons la nature dans ses processus d’évolution et de régénération, mais nous allons plus vite.

  1. Commencez avec ce que vous avez : un espace vide, un immeuble déjà construit ou bien un programme qui ne ressemble à rien et difficile à utiliser.
  2. Identifiez les centres existant dans cet espace. Trouvez le centre le plus faible ou le moins cohérent.
  3. Voyez comment appliquer l’une au moins des quinze transformations qui préservent la structure afin de renforcer ce centre faible. A-t-il besoin d’être délimité ? A-t-il besoin de se confondre avec son entourage ? A-t-il besoin de plus de détails ? A-t-il besoin d’être dégagé ?
  4. Trouvez les nouveaux centres qui sont apparus quand vous avez appliqué les transformations à l’ancien centre. Cette nouvelle combinaison rend-elle les choses plus fortes ? Les rend-elle plus jolies ? Les rend-elle plus fonctionnelles ?
  5. Assurez-vous que vous avez fait la chose la plus simple possible.
  6. Retournez au début pour l’étape suivante.

Un résumé extrêmement simple pourrait être : trouvez les mauvaises parties, améliorez-les de la façon la plus simple possible, testez les résultats, réitérez.

Alexander ne tient pas à détruire les choses juste pour les reconstruire de façon différente. Il ne s’agit pas de pas démolir des quartiers d’une ville pour les reconstruire mais de les améliorer progressivement. Pour les logiciels, il est bien connu que vous n’allez pas réécrire quelque chose juste parce que vous ne le comprenez plus. Démolir quelque chose, c’est perdre toutes les connaissances qui avaient été incorporées à cette chose en train d’être détruite, même si elle semble étrange dans son état actuel.

De même, Alexander s’oppose à la création de modèles détaillés au préalable. Il donne un bon argument montrant pourquoi les modèles pré-établis ne peuvent pas fonctionner en fin de compte : parce qu’on ne peut pas prévoir de manière absolue tout ce qui va se passer lors de la construction et de l’implémentation ; parce qu’on oubliera forcément une partie des détails de l’environnement au sein duquel notre création évoluera ; parce que la nature en elle-même n’est pas pré-ordonnée et croît plutôt de manière libre et pousse sans pitié à l’évolution jusqu’à ce que les éléments qui la constituent survivent d’eux-mêmes.

De cette façon, vous ne concevez pas l’interface utilisateur en entier ou la structure complète, pour un grand programme, en une seule étape. Vous allez du grand au petit ou du petit au grand (niveaux d’échelle) ; vous testez chaque partie individuellement jusqu’à ce que ce soit bon (des centres solides) ; vous vous assurez que les parties ne sont pas trop déconnectées les unes des autres (interdépendance). Vous déplacez quelques widgets là où ils sont plus accessibles ou plus proches des données auxquelles ils se réfèrent. Vous enlevez quelques cadres et séparateurs pour réduire le désordre. Par dessus tout, vous évaluez continuellement ce que vous avez créé avec de vrais utilisateurs et des cas d’usage réels pour confronter les choses à la réalité, et non à votre imagination.

Un nom pour la qualité

Tout au long de The Nature of Order, Alexander parvient à montrer que les environnements ou les structures construites selon cette méthode finissent toutes par avoir la Qualité sans Nom. Il appelle cela une structure vivante. Cela peut être mesuré et comparé. Ce n’est plus sans nom ; on peut parler d’environnements ou de programmes qui ont une structure plus ou moins vivante par rapport à d’autres — et nous tendons à développer et à obtenir toujours plus de cette propriété.

J’ai seulement intitulé cet article « Le logiciel comme Qualité sans Nom » parce que ça semblait ainsi plus mystérieux.

Je ne peux prétendre connaître la façon parfaite de concevoir et écrire des logiciels. Mais au moins, j’ai une bonne méthode basée sur ce qui produit de bonnes choses ailleurs. Cela a fonctionné pour ma maison et, jusqu’à présent, ça a très bien marché pour mes logiciels. J’espère que ça fonctionnera bien pour vous aussi !

Références

  • Christopher Alexander, A Pattern Language. Version en ligne : http://bit.ly/8n6igg (NdÉ : lien invalide, le 1er février 2013).
  • Christopher Alexander, The Nature of Order. Une page web très moche http://www.natureoforder.com (NdÉ : visité le 1er février 2013).
  • Photos et dessins des 15 propriétés – http://bit.ly/b82Dxu (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, Patterns of Software. Un superbe libre qui traite d’un grand nombre d’aspects du développement des logiciels, en transposant les idées de Christopher Alexander pour atteindre les meilleures techniques possibles en développement de logiciel. Version en ligne : http://bit.ly/dqGUp4 (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, Christopher Alexander, the search for beauty. Une excellente présentation des idées de Christopher Alexander et une galerie de modèles dans le domaine du logiciel. http://bit.ly/ztE6cp (NdÉ : visité le 1er février 2013).
  • Richard Gabriel, The Nature of Order. Le monde post-modèles. Une autre très bonne présentation, qui fait suite à la précédente, explique les 15 propriétés, le processus fondamental et comment cela peut s’appliquer au logiciel. http://dreamsongs.com/Files/NatureOfOrder.pdf (NdÉ : visité le 1er février 2013).
  • Federico Mena Quintero, Software that has the Quality Without A Name. Présentation Desktop Summit de Berlin en 2011. http://bit.ly/oYgJUf (NdÉ : visité le 1er février 2013).



La marque (du langage) Python est en péril en Europe et a besoin de votre aide !

Le célèbre (et libre) langage de programmation Python est en danger en Europe pour une sombre histoire de droit des marques.

Nous avons traduit ci-dessous l’appel à soutien de Van Lindberg, président de la Python Software Foundation.

Python Logo

La marque Python en péril en Europe : Nous avons besoin de votre aide !

Python trademark at risk in Europe: We need your help!

Van Lindberg – 14 février 2013 – Python Software Foundation
(Traduction : Moosh, lgodard, Alpha, QuébecTroll, jtanguy, Penguin, Uflex, ProgVal, goofy, maz, Nodel, Norore + anonymes)

Vous qui travaillez dans une entreprise qui a un bureau dans un pays membre de l’Union Européenne, nous avons besoin de votre aide.

Une entreprise au Royaume-Uni essaye de faire reconnaître le terme « Python » comme marque commerciale pour tout logiciel, service ou serveur, à peu près tout ce qui a quelque chose à voir avec un ordinateur. Plus précisément, c’est l’entreprise qui a acquis le domaine python.co.uk il y a treize ans. À cette époque, nous nous souciions peu des problèmes de marque et nous n’avions pas acquis ce domaine.

Ce n’était pas un problème jusqu’à présent car le domaine python.co.uk, la plupart du temps, se contentait de transférer son trafic vers les sociétés-mères, veber.co.uk et pobox.co.uk. Malheureusement, Veber a décidé qu’ils voulaient commencer à utiliser le nom « Python » pour leurs logiciels serveurs.

Nous avons contacté les propriétaires de python.co.uk à plusieurs reprises et essayé d’en discuter avec eux. Leur seule réponse a été de déposer une demande de marque communautaire réclamant les droits exclusifs d’utiliser le terme « Python » pour des logiciels, serveurs, et services web – et ce partout en Europe.

Nous avons fait appel à un conseiller juridique au Royaume Uni et nous, la Python Software Foundation (NdT :. la Fondation Python), opposons à cette demande une demande de dépôt de marque communautaire, mais notre propre demande n’est pas suffisamment mûre. Dans cette dernière, nous exposons les droits de propriété de la marque résultants de l’utilisation de “Python” au cours de ces 20 dernières années.

D’après notre avocat londonien, les meilleures preuves que nous puissions transmettre au bureau européen des marques déposées sont les lettres d’entreprises connues « utilisant le logiciel de marque PYTHON dans divers pays de l’Union Européenne » de telle sorte que nous puissions « obtenir des témoignages indépendants de leur part, prouvant l’origine de la signification de la marque PYTHON, en relation avec le logiciel et les produits/services associés ». Nous avons aussi besoin de preuves d’utilisation de Python à travers toute l’Union Européenne.

Que pouvez-vous faire ?

1- Vous travaillez pour une entreprise qui utilise Python ? Vous êtes basés en Europe, vous y embauchez ou vous y possédez un bureau ? Pourriez-vous écrire une lettre avec l’en-tête de votre entreprise que nous pourrions réutiliser par la suite ?

Nous aurions besoin des élements suivants :

  1. Une brève description de l’utilisation de Python dans votre entreprise :
  2. Comment votre entreprise associe le terme Python uniquement à la PSF ;
  3. Votre opinion sur le fait qu’une autre entreprise utilisant le terme Python dans ses services, logiciels et serveurs pourrait âtre source de confusion.

La lettre n’a pas besoin d’être très longue —- quelques paragraphes suffisent, mais nous apprécierions toute forme de description de votre utilisation de Python dans vos logiciels, votre hébergement internet, vos serveurs, vos VPN, dans le développement de logiciel ou de matériel ou encore dans l’utilisation de services de sauvegarde. Pour ceux qui sont intéressés par les classes descriptives légales, elles figurent au bas de ce message[1][2].

Vous pouvez envoyer une copie PDF de votre lettre à psf-trademarks@python.org

2. Connaissez-vous ou possédez-vous quoi que ce soit qui ait été publié au sein de l’UE et qui utilise “Python” pour faire référence au langage Python? Pouvez-vous nous transmettre des numérisations, photos ou copies? Cela comprend :

  • Des livres ;
  • Des brochures ;
  • Des programmes de conférences ou présentations ;
  • Des offres d’emploi ;
  • Des magazines ou autres publications ;
  • Des prospectus.

Vous pouvez envoyer un scan PDF de ces documents à psf-trademarks@python.org.

3. Vous pouvez également aider à protéger la propriété intellectuelle de Python en nous soutenant financièrement.

Comme le coût d’opposition d’une marque commerciale est de l’ordre de dizaines de milliers de dollars, nous aurons besoin de trouver un moyen de financer les coûts de procédure de l’opposition.

Merci d’envisager une donation à la Python Software Foundation ou de me contacter.

C’est la première fois que la PSF doit prendre des mesures juridiques pour protéger la propriété intellectuelle de Python. S’il vous plait, aidez Python comme vous le pouvez. La menace est réelle et elle est susceptible de nuire à votre entreprise en Europe, surtout si vous êtes dans le domaine de l’hébergement et que Python fait partie de l’offre que vous proposez.

S’il vous plaît, faites-moi savoir si vous avez des questions auxquelles je peux répondre. Si vous connaissez quelqu’un qui devrait avoir l’information, libre à vous de la partager.

Thanks, Merci,

Van Lindberg, Président
van@python.org
Python Software Foundation

Notes

[1] Classe 9 – Logiciels ; Serveurs pour l’hébergement de sites web ; Matériel informatique pour RPV (réseau privé virtuel) ; Serveurs Internet (NdT : Classifications légales traduites à l’aide de l’outil EuroClass).

[2] Classe 42 – Conception et développement d’ordinateurs et de logiciels ; Hébergement de sites sur Internet ; Hébergement de sites web de tiers ; Hébergement de sites web ; Hébergement de sites web de tiers sur un serveur d’ordinateurs pour un réseau informatique mondial ; Hébergement de contenu numérique, à savoir de revues et de blogues en ligne ; Fournisseur de services d’application, à savoir hébergement de logiciels d’application de tiers ; Hébergement de contenu numérique sur l’internet ; Hébergement de sites web pour le compte de tiers ; Hébergement de sites informatiques de tiers (sites web) ; Hébergement de sites informatiques sites web ; Location de serveurs web.




La promesse de Firefox OS

La promesse du système d’exploitation mobile libre Firefox OS réside moins dans Firefox OS lui-même que dans le parti pris Web (et ouvert) de ses applications.

C’est d’ailleurs plus qu’une promesse : c’est un défi et une nécessité si l’on souhaite conserver ici comme ailleurs l’ouverture et la liberté.

Un billet un peu technique, mais s’il peut contribuer à ce que les développeurs (et utilisateurs) d’applications mobiles se posent de bonnes questions…

Rob Hawkes - CC by-sa

La promesse de Firefox OS

The promise of Firefox OS

Sergi Mansilla – 9 février – Blog personnel
(Traduction : + anonymes)

« Mais comment va t-il faire pour battre Android ou iOS ? »

C’est la réaction qu’ont beaucoup de personnes quand je leur dis que je travaille sur Firefox OS, le nouveau système d’exploitation mobile de Mozilla. C’est une réaction logique. Après tout, nous vivons une période où toutes les grandes entreprises informatiques n’ont qu’un mot à la bouche : sortir un système mobile tout en s’efforçant d’attirer les développeurs pour qu’ils utilisent leur nouvel écosystème propriétaire, les APIS, les bibliothèques, etc. Et en effet, bon nombre de ces entreprises réussissent un peu, voire pas du tout.

Mais Firefox ne se battra pas directement contre les autres plateformes mobiles. Son objectif principal est de modifier la manière dont sont développées les applications mobiles, et même dans la triste éventualité où Firefox OS disparaîtrait durant le processus, si les web-apps devenaient dominantes sur le marché, ce sera un succès.

Le fait que n’importe quel site web puisse devenir une application ne doit pas être sous-estimé. En utilisant des technologies flexibles et populaires comme HTML5, CSS3 et javascript, Firefox OS a promu instantanément des millions de développeurs web et javascript en développeurs d’applications. Tout ce qu’ils ont à faire est de télécharger un module complémentaire de simulation gratuit (et ce n’est même pas nécessaire si votre application n’utilise pas les API des téléphones). Les développeurs connaissent déjà l’environnement du navigateur et ses outils, et il ne leur est pas nécessaire d’apprendre un nouveau langage ou une nouvelle architecture.

Je vous entends déjà. Juste quand vous veniez d’en finir avec le bazar que suppose la manipulation de DOM et de ce sournois de JavaScript. Juste quand vous aviez appris à aimer les classes et gestionnaires d’Android tellement hiérarchisés ou la magnifique méthode de nommage d’iOS, pourquoi retourneriez-vous au désordre qu’est l’écriture des applications web ? N’étions-nous pas d’accord pour dire que le HTML n’était pas, après tout, assez bien pour faire de vraies applications performantes ?

Bon, ça a peut-être été vrai il y a quelque temps, mais nous vivons désormais dans un monde meilleur. Pour que les développeurs conçoivent des applications web robustes et réellement fonctionnelles, plusieurs approches sont possibles, via des architectures de grande qualité. Chez Telenor/Comoyo, où je travaille, nous nous penchons sur l’utilisation de l’architecture AngularJS pour construire nos applications, néanmoins il existe de multiples architectures fiables et bien conçues qui s’appuient sur des années d’expérience dans le domaine du développement d’applications. Et si vous considérez que vous avez un problème avec JavaScript en tant que langage, vous pouvez d’ores et déjà utiliser une myriade de langages qui le compilent de manière fiable. Vous avez l’habitude de travailler avec Java ? Vous allez probablement apprécier Dart, de Google. Vous avez un style plus “fonctionnel” ? Pourquoi ne pas essayer ClojureScript qui est une implémentation de Clojure s’appuyant sur du JavaScript, qui est impressionnante, vraiment bien documentée et vraiment bien maintenue. Vous utilisez Ruby ? Vous vous sentirez comme à la maison avec CoffeeScript. Vous voyez ce que je veux dire[1].

Alors que d’autres constructeurs comme Blackberry fournissent eux aussi des moyens de développer des applications en HTML5 pour leurs systèmes, Mozilla va plus loin en encourageant la standardisation de la WebAPI par le W3C, garantissant ainsi que votre application fonctionnera sur n’importe quel appareil respectant le standard WebAPI.

À mon humble avis, cela rend les choses plus claires dans ce casse-tête qu’est devenu le développement pour appareils mobiles, pour lequel le développeur doit connaître plusieurs langages, architectures et APIs, sans oublier de payer des frais, dans certains cas, pour créer des applis. Cela ressemble à un grand pas en arrière de la philosophie actuelle de l’open web vers les années 90 infestées de verrous payants mais avec la bonne musique en moins.

Mozilla a fait ses preuves en tant que protecteur du web, et ses utilisateurs lui font confiance. Par le passé, l’entreprise a joué un rôle important dans l’initiation d’un mouvement pour de meilleurs standards web auquel se sont rattachés des navigateurs comme Chrome, contribuant à un web meilleur, plus rapide et plus accessible pour chacun. Nous devrions nous efforcer d’en faire de même pour ce qui est des environnements mobiles. Moins de remparts, plus de standards et d’ouverture.

Telle est la promesse faite par Firefox OS.

Crédit photo : Rob Hawkes (Creative Commons By-Sa)

Notes

[1] Après hein, ça ne vous fera pas de mal d’apprendre un peu de JS pour savoir ce qu’il y a sous le capot, parce qu’après tout, c’est un langage puissant qui le sera encore plus avec la sortie d’ES6.




Débat : 9 points (ou tabous ?) jamais (ou rarement) discutés dans le logiciel libre

Nous traduisons souvent Bruce Byfield, libre penseur du logiciel libre, sur le Framablog.

A-t-il raison d’affirmer qu’il est des sujets pour ainsi dire tabous dans la communauté et surtout que la situation a évolué, n’en déplaise à certains ?

Laëtitia Dulac - CC by

Neuf choses dont on ne discute jamais sur l’open source

9 Things That Are Never Admitted About Open Source

Bruce Byfield – 22 janvier 2013 – Datamation
(Traduction : Moosh, brandelune, Sky, ehsavoie, Astalaseven, petit bonhomme noir en haut à droite, mike, goofy, KoS, Mowee, arcady, maxlath, Astalaseven, mariek, VifArgent, Rudloff, VIfArgent, Penguin, peupleLa, Vilrax, lamessen + anonymous)

Quels sont les sujets tabous dans l‘open source de nos jours ? Certains peuvent se deviner mais d’autres pourraient bien vous surprendre.

On pourrait penser qu’un groupe de personnes intelligentes comme les membres de la communauté des logiciels libres et open source (NdT : FOSS pour Free and Open Source Software) seraient sans tabous. On pourrait s’attendre à ce qu’un tel groupe d’intellectuels juge qu’aucune idée n’est interdite ou gênante – mais ce serait une erreur.

Comme toute sous-culture, la communauté FOSS est cimentée par des croyances. Ces croyances contribuent à bâtir une identité commune : par conséquent, les remettre en cause revient à remettre en cause cette identité.

Certains de ces sujets tabous peuvent saper des évidences admises depuis vingt ans ou plus. D’autres sont nouveaux et contestent des vérités communément acceptées. Quand on les examine, on s’aperçoit que chacun d’entre eux peut être aussi menaçant que la déclaration de valeurs communes peut être rassurante.

Pourtant, même s’il est inconfortable d’interroger ces tabous, il est souvent nécessaire de le faire. Les croyances peuvent perdurer longtemps après le temps où elles s’appliquaient, ou après avoir dégénéré en semi-vérités. Il est utile de temps en temps de penser l’impensable, ne serait-ce que pour mettre ces croyances en phase avec la réalité.

Suivant cette logique, voici neuf observations sur l‘open source qui nécessitent selon moi un nouvel examen.

1. Ubuntu n’est plus le dernier grand espoir de l’open source

Quand Ubuntu est apparue il y a neuf ans, nombreux sont ceux qui l’ont considérée comme la distribution qui mènerait la communauté à dominer le monde. Débarquant de nulle part, Ubuntu s’est immédiatement concentrée sur le bureau comme aucune autre distribution avant elle. Des outils et des utilitaires furent ajoutés. De nombreux développeurs Debian trouvèrent un travail chez Canonical, la branche commerciale d’Ubuntu. Des développeurs virent leurs frais payés pour des conférences auxquelles ils n’auraient pas pu se rendre autrement.

Au fil du temps, une bonne partie de l’enthousiasme initial est retombée. Personne ne semble s’être intéressé à la demande de Mark Shuttleworth, le fondateur d’Ubuntu, à ce que les principaux projets coordonnent leurs cycles de livraison ; ils l’ont tout simplement ignorée. Mais on a vu des sourcils se froncer lorsqu’Ubuntu a commencé à développer sa propre interface plutôt que de contribuer à GNOME. Canonical a commencé à contrôler ce qui se passait dans Ubuntu, apparemment pas pour l’intérêt général mais surtout pour la recherche de profits. Nombreux, aussi, furent ceux qui n’apprécièrent pas l’interface d’Ubuntu, Unity, à sa sortie.

Pourtant, à écouter les employés de Canonical, ou les bénévoles Ubuntu, on aurait presque l’impression qu’il ne s’est rien passé pendant ces neuf dernières années. Lisez notamment le blog de Shuttleworth ou ses déclarations publiques : il se donne le rôle de figure de proue de la communauté et déclare que les « hurlements des idéologues » finiront par cesser devant son succès.

2. Le « cloud computing » sape les licences libres

Il y a sept ans, Tim O’Reilly affirmait que les licences libres étaient devenues obsolètes. C’était sa manière un peu dramatique de nous prévenir que les services en ligne mettent à mal les objectifs du logiciel libre. Comme le logiciel, le cloud computing offre aux utilisateurs l’usage gracieux des applications et du stockage, mais sans aucune garantie ou contrôle quant à la vie privée.

La Free Software Foundation (NdT : Fondation pour le Logiciel Libre) répondit à la popularité grandissante du cloud computing en dépoussiérant la GNU Affero General Public License, qui étend les idéaux du FOSS au cloud computing.

Après cela, pourtant, les inquiétudes à propos de la liberté logicielle au sein du cloud ont faibli. Identi.ca fut créé comme une réponse libre à Twitter, et MediaGoblin développé comme l’équivalent libre d’Instagram ou de Flickr, mais ce genre d’efforts est occulté par la compétition. On n’a pas mis l’accent sur l’importance des licences libres ou du respect de la vie privée dans le cloud.

Par conséquent, les avertissements de O’Reilly sont toujours aussi pertinents de nos jours.

3. Richard Stallman est devenu un atout contestable

Le fondateur de la Free Software Foundation et le moteur derrière la licence GNU GPL, Richard M. Stallman, est une des légendes des logiciels libres et open source. Pendant des années, il a été l’un des plus ardents défenseurs de la liberté du logiciel et la communauté n’existerait probablement pas sans lui.

Ce que ses supporters rechignent à admettre, c’est que la stratégie de Stallman a ses limites. Nombreux sont ceux qui disent que c’est un handicapé social, et que ses arguments se basent sur la sémantique — sur les mots choisis et comment ils influencent le débat.

Cette approche peut être éclairante. Par exemple, lorsque Stallman s’interroge sur l’analogie entre le partage de fichiers et les pillages perpétrés par les pirates, il révèle en fait le parti-pris que l’industrie du disque et du cinéma tente d’imposer.

Mais, malheureusement, c’est à peu près la seule stratégie de Stallman. Il dépasse rarement ce raisonnement qu’il utilise pour fustiger les gens, et il se répète même davantage que des personnes qui passent leur temps à faire des discours. Il est perçu de plus en plus, par une partie de la communauté, comme quelqu’un hors de propos voire même embarrassant. Comme quelqu’un qui fut efficace… mais ne l’est plus. Il semble que la communauté a du mal à admettre l’idée que Stallman a eu un impact certain pendant des années, mais qu’il est moins utile aujourd’hui. Soit il est défendu férocement pour son passé glorieux, soit il est attaqué comme un usurpateur parasite. Je crois que les affirmations concernant ce qu’il a accompli et son manque d’efficacité actuel sont vraies toutes les deux.

4. L’open source n’est pas une méritocratie

L’une des légendes que les développeurs de logiciels libres aiment à se raconter est que la communauté est une méritocratie. Votre statut dans la communauté est censément basé sur vos dernières contributions, que ce soit en code ou en temps.

L’idée d’une méritocratie est très attirante, en cela qu’elle forme l’identité du groupe et assure la motivation. Elle encourage les individus à travailler de longues heures et donne aux membres de la communauté un sentiment d’identification et de supériorité.

Dans sa forme la plus pure, comme par exemple au sein d’un petit projet où les contributeurs ont travaillé ensemble pendant de nombreuses années, la méritocratie peut exister.

Mais le plus souvent, d’autres règles s’appliquent. Dans de nombreux projets, ceux qui se chargent de la documentation ou bien les graphistes sont moins influents que les programmeurs. Bien souvent, vos relations peuvent influencer la validation de votre contribution au moins autant que la qualité de votre travail.

De même, la notoriété est plus susceptible d’influencer les décisions prises que le grade et les (surtout si elles sont récentes) contributions. Des personnes comme Mark Shuttleworth ou des sociétés comme Google peuvent acheter leur influence sur le cours des choses. Des projets communautaires peuvent voir leurs instances dirigeantes dominées par les sponsors privés, comme c’est de fait le cas avec Fedora. Bien que la méritocratie soit l’idéal, ce n’est presque jamais la seule pratique.

5. L’open source est gangrené par un sexisme systémique

Une autre tendance qui plombe l’idéal méritocratique est le sexisme (parfois sour la forme de la misogynie la plus imbécile) que l’on trouve dans quelques recoins de la communauté. Au cours des dernières années, les porte-parole du FOSS ont dénoncé ce sexisme et mis en place des règles officielles pour décourager quelques uns de ses pires aspects, comme le harcèlement pendant les conférences. Mais le problème demeure profondément ancré à d’autres niveaux.

Le nombre de femmes varie selon les projets, mais 15 à 20 pour cent peut être considéré comme un chiffre élevé pour un projet open source. Dans de nombreux cas, ce nombre est en dessous des cinq pour cent, même en comptabilisant les non-programmeurs.

De plus les femmes sont sous-représentées lors des conférences, à l’exception de celles où les femmes sont activement encouragées à faire part de leurs propositions (ces efforts entraînent, inévitablement, leur lot d’accusations quant à des traitements spéciaux et des quotas, quand bien même aucune preuve ne peut être avancée).

La plus grande évidence de sexisme se produit quotidiennement. Par exemple, Slashdot a récemment publié un entretien avec Rikki Ensley, membre de la communauté USENIX. Parmi les premiers commentaires, certains se référaient à une chanson populaire dont le refrain mentionne le prénom Rikki. D’autres discutent de son apparence et lui donnent des conseils pour avoir l’air plus « glamour ».

On assiste à des réactions du même ordre, et bien d’autres pires encore sur de nombreux sites dédiés au monde du libre ou sur IRC, dès qu’une femme apparaît, surtout s’il s’agit d’une nouvelle venue. Voilà qui dément les affirmations d’une communauté qui prétend ne s’intéresser qu’aux seules contributions, ou encore l’illusion que la sous-représentation des femmes serait simplement une question de choix individuels.

6. Microsoft n’est plus l’ennemi irréductible du logiciel libre

Il y a à peine plus d’une dizaine d’années, vous pouviez compter sur Microsoft pour traiter le monde du Logiciel Libre de « communiste » ou « anti-Américain », ou sur leurs intentions parfois divulguées dans la presse de vouloir détruire la communauté.

Une grande partie de la communauté s’accroche encore à ces souvenirs. Après tout, rien ne rassemble plus les gens qu’un ennemi commun, puissant et inépuisable.

Mais ce dont la communauté ne se rend pas compte, c’est que la réaction de Microsoft est devenue plus nuancée, et qu’elle varie d’un service à l’autre au sein de l’entreprise.

Nul doute que les dirigeants de Microsoft continuent de voir le logiciel libre comme un concurrent, bien que les dénonciations hautes en couleur aient cessé.

Cependant, Microsoft a pris conscience que, compte-tenu de la popularité du logiciel libre, les intérêts à court terme de l’entreprise seraient mieux servis si elle s’assurait que les outils libres (en particulier les langages de programmation les plus populaires) fonctionnent correctement avec ses propres produits. C’est d’ailleurs la mission principale du projet Microsoft Open Technologies. Récemment, Microsoft est même allé jusqu’à publier une courte déclaration faisant l’éloge de la dernière version de Samba, qui permet l’administration des serveurs Microsoft depuis Linux et les systèmes Unix (NdT : Voir aussi cette FAQ en français publiée par Microsoft).

Bien sûr, il ne faut pas non plus s’attendre à voir Microsoft devenir une entreprise open source ou faire des dons désintéressés d’argent ou de code à la communauté. Mais, si vous faites abstraction des vieux antagonismes, l’approche égoïste de Microsoft à l’égard du logiciel libre n’est pas très différente de nos jours de celle de Google, HP, ou n’importe quelle autre entreprise.

7. L’innovation des interfaces stagne

En 2012, nombreux furent ceux qui n’ont pas adopté GNOME 3 et Unity, les deux dernières interfaces graphiques majeures. Cet abandon fut largement lié à l’impression que GNOME et Ubuntu ignoraient les préoccupations des utilisateurs et qu’ils imposaient leur propre vision, sans concertation.

À court terme, cela a mené à la résurrection de GNOME 2 sous des formes variées.

En tant que prédécesseur de GNOME 3 et de Unity, GNOME 2 fut un choix évident. C’est une interface populaire qui n’impose que peu de restrictions aux utilisateurs.

Quoi qu’il en soit, cela risque d’être, à long terme, étouffant pour l’innovation. Non seulement parce que le temps passé à ressuciter GNOME 2 n’est pas mis à profit pour explorer de nouvelles voies, mais parce que cela semble être une réaction à l’idée même d’innovation.

Peu sont ceux, par exemple, qui sont prêts à reconnaître que GNOME 3 ou Unity ont des fonctionnalités intéressantes. Au contraire, les deux sont condamnés dans leur ensemble. Et les développements futurs, tels l’intention de GNOME de rendre la sécurisation et la confidentialité plus simples, n’ont pas reçu l’attention qu’ils méritaient.

Au final, au cours des prochaines années, l’innovation en sera probablement réduite à une série de changements ponctuels, avec peu d’efforts pour améliorer l’ergonomie dans son ensemble. Même les développeurs hésiteront à tenter quoi que ce soit de trop différent, afin d’éviter le rejet de leurs projets.

Je me dois d’applaudir le fait que les diverses résurrections de GNOME 2 marquent le triomphe des requêtes des utilisateurs. Mais le conservatisme qui semble accompagner ces aboutissements m’inquiète : j’ai bien peur que cette victoire n’engendre d’autres problèmes tout aussi importants.

8. L’open source est en train de devenir une monoculture

Ses partisans aiment à revendiquer que l’un des avantages du logiciel libre et open source, c’est d’encourager la diversité. À la différence de Windows, les logiciels libres sont supposés être plus accueillants pour les idées nouvelles et moins vulnérables aux virus, la plupart des catégories de logiciels incluant plusieurs applications.

La réalité est quelque peu différente. À la lecture d’une étude utilisateurs vous remarquerez un modèle plutôt constant : une application ou technologie recueille 50 à 65% des votes, et la suivante 15 à 30%.

Par exemple, parmi les distributions, Debian, Linux Mint et Ubuntu, qui utilisent toutes le format de packet en .DEB, recueillent 58% du choix des lecteurs 2012 du Linux Journal, que l’on peut comparer aux 16% recueillis par Fedora, openSUSE, et CentOS, qui utilisent quant à elles le format .RPM.

De même, Virtualbox atteint 56% dans la catégorie « Meilleure solution de virtualisation », et VMWare 18%. Dans la catégorie « Meilleure gestion de versions », Git recueille 56% et Subversion 18%. La catégorie la plus asymétrique est celle des « Suites bureautiques » dans laquelle LibreOffice recueille 73% et (sic) Google Docs 12%.

Il n’y avait que deux exceptions à cette configuration. La première était la catégorie « Meilleur environnement de bureau », dans laquelle la diversification des dernières années était illustrée par les scores de 26% pour KDE, 22% pour GNOME 3, 15% pour GNOME 2 et 12% pour Xfce. La deuxième catégorie était celle de « Meilleur navigateur web »dans laquelle Mozilla Firefox recueillait 50% et Chromium 40%.

De manière générale, les chiffres ne rendent pas compte d’un monopole, mais dans la plupart des catégories, la tendance est là. Au mieux, on pourrait dire que, si la motivation n’est pas le profit, le fait d’être moins populaire n’implique pas que l’application va disparaître. Mais si la concurrence est saine, comme tout le monde aime à le dire, il y a tout de même des raisons de s’inquiéter. Quand on y regarde de près, les logiciels libres sont loin d’être aussi diversifiés que ce que l’on croit.

9. Le logiciel libre est bloqué si près de ses objectifs

En 2004, les logiciels libres et open source en étaient au stade où ils couvraient la plupart des usages de base des utilisateurs : envoi de courriels, navigation sur internet et la plupart des activités productives sur ordinateur. En dehors des espoirs de disposer un jour d’un BIOS libre, il ne manquait plus que les pilotes pour les imprimantes 3D et les cartes WiFi pour atteindre l’utopie d’un système informatique entièrement libre et open source.

Neuf ans plus tard, de nombreux pilotes libres de carte WiFi et quelques pilotes libres de cartes graphiques sont disponibles – mais nous sommes loin du compte. Pourtant la Free Software Foundation ne mentionne que rarement ce qui reste à faire, et la Linux Foundation ne le fait pratiquement jamais, alors même qu’elle sponsorise l’OpenPrinting database, qui liste les imprimantes ayant des pilotes libres. Si l’on combinait les ressources des utilisateurs de Linux en entreprise, on pourrait atteindre ces objectifs en quelques mois, pourtant personne n’en fait une priorité.

Admettons que certaines entreprises se préoccupent de leur soi-disant propriété intellectuelle sur le matériel qu’elles fabriquent. Il est possible également que personne ne veuille courir le risque de fâcher leurs partenaires commerciaux en pratiquant la rétroingénierie. Pourtant, on a bien l’impression que l’état actuel de statu quo persiste parce que c’est déjà bien assez, et que trop peu de personnes ont à cœur d’atteindre des objectifs dont des milliers ont fait le travail de leur vie.

Des discussions, non des disputes

Certains ont peut-être déjà conscience de ces sujets tabous. Cependant, il est probable que chacun trouvera dans cette liste au moins un sujet pour se mettre en rogne.

Par ailleurs, mon intention n’est pas de mettre en place neuf aimants à trolls. Même si je le voulais, je n’en aurais pas le temps.

Ces lignes sont plutôt le résultat de mes efforts pour identifier en quoi des évidences largement admises dans la communauté devraient être remises en question. Je peux me tromper. Après tout, je parle de ce que j’ai pris pour habitude de penser, moi aussi. Mais au pire, cette liste est un bon début.

Si vous pensez qu’il y a d’autres sujets tabous à aborder et à reconsidérer au sein de la communauté des logiciels libres et open source, laissez un commentaire. Cela m’intéresse de voir ce que je pourrais avoir oublié.

Crédit photo : Laëtitia Dulac (Creative Commons By)




Apprenez de vos utilisateurs (Libres conseils 21/42)

21/42 ! Tiens, nous voilà déjà à mi-chemin de la traduction d’Open Advice.

Deux ou trois articles petits ou grands chaque jeudi, traduits en un temps record par une bande de furieux, ceux qui sont là depuis le début et ceux qui débarquent et demandent s’ils peuvent participer, ceux qui travaillent d’arrache-clavier et ceux qui en profitent pour déconner échanger des propos sur le chat du pad, ceux qui choisissent un pseudo et ceux qui restent anonymous, ceux qui négligent tranquillement l’orthographe et les grammar nazis qui rectifient, ceux qui traduisent avec Google translate et ceux qui se battraient pour une majuscule à Libre… on rencontre tout un peuple là, et jusqu’à présent tout se passe dans l’enthousiasme et la bonne humeur, l’échange et l’entraide devant un passage un peu ardu sur lequel on s’amuse à chinoiser…

Mais cette fois-ci c’est l’auteur de l’article lui-même qui nous a fait le plaisir de nous rejoindre pour contribuer à la traduction, ce qui est tout de même assez confortable. Merci Guillaume !

Malgré nos relectures croisées, nul doute que des coquilles auront échappé à notre vigilance et que nous trouverons des lecteurs pour les signaler, ce qui nous est précieux car la révision avant l’édition du framabook en sera d’autant facilitée.

D’ici là, en avant pour la deuxième moitié : chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : Nyx, Sphinx, peupleLà, Kalupa, Guillaume Paumier, Husi10, lenod, Sky, Julius22, Alpha, RavageJo, KoS, Sputnik, goofy, lamessen

Apprenez de vos utilisateurs

Guillaume Paumier

Guillaume Paumier est photographe et physicien, il habite à Toulouse. Wikipédien depuis longtemps, il travaille actuellement pour la Wikimedia Foundation, l’organisation à but non lucratif qui héberge Wikipédia. En tant que responsable de l’ergonomie multimédia, il a notamment étudié le comportement des utilisateurs afin de créer un nouveau système d’import de fichiers pour Wikimedia Commons, la médiathèque libre associée à Wikipédia.

Vous connaissez Wikipédia, l’encyclopédie libre et gratuite que tout le monde peut modifier ? Elle a été créée en 2001 et a récemment fêté son dixième anniversaire. Bien qu’elle soit l’un des dix sites les plus visités au monde, son interface reste très « 1.0 » quand on la compare aux possibilités qu’offrent les technologies web modernes. Certains peuvent trouver ça bien : Wikipédia est un « truc sérieux » et les utilisateurs n’ont pas à être distraits par des « paillettes » dans l’interface. Pourtant, si Wikipédia a eu du mal à recruter de nouveaux contributeurs ces dernières années, c’est en partie à cause de son interface que certains considèrent comme archaïque. Ceci explique peut-être pourquoi les enquêtes sur les participants à Wikipédia ont montré à maintes reprises qu’il s’agit principalement d’une population d’hommes jeunes, attirés par la technologie, la plupart ayant une formation en informatique et en ingénierie. En dehors du fait que la connaissance libre et les licences libres sont issues du terreau fertile du logiciel libre et open source, l’interface compliquée a découragé beaucoup de contributeurs éventuels.

En 2011, alors que la majorité des plates-formes de publication collaboratives en ligne (comme WordPress, Etherpad et Google Documents) offrent un éditeur graphique, même rudimentaire, Wikipédia utilise toujours, par défaut, un ancien éditeur de texte wiki qui utilise des guillemets (“”) et des crochets ([[]]) pour la mise en forme. Des efforts sont en cours afin de passer à un éditeur graphique par défaut en 2012, mais ce n’est pas un défi facile à relever.

Mais laissons l’éditeur de côté un moment. L’interface de Wikipédia demeure assez compliquée. Et de nombreuses fonctionnalités utiles sont difficiles à découvrir. Savez-vous que Wikipédia possède un système de contrôle de versions intégré ? Et que vous pouvez voir toutes les anciennes versions d’une page ? Savez-vous que vous pouvez voir la liste de toutes les modifications effectuées par un contributeur ? Savez-vous que vous pouvez créer un lien vers une version donnée d’une page ? Savez-vous que vous pouvez exporter une page en PDF ? Savez-vous que vous pouvez créer un vrai livre personnalisé à partir du contenu de Wikipédia ? Et que vous pouvez le faire livrer chez vous ?

Le modèle d’implémentation

La plupart des lecteurs de Wikipédia y arrivent via des moteurs de recherche. Les statistiques montrent qu’ils passent peu de temps sur Wikipédia une fois qu’ils ont trouvé l’information qu’ils cherchaient. Un petit nombre seulement s’attarde et explore les outils que propose l’interface. Par exemple, on critique régulièrement Wikipédia sur sa qualité et sur sa fiabilité. Nombre de ces outils rarement explorés et presque cachés pourraient s’avérer bien utiles aux lecteurs pour les aider à vérifier la fiabilité de l’information, telles que les « pages de discussion » qui témoignent des discussions (passées et en cours) entre les différents contributeurs de chaque article ayant abouti à son contenu actuel.

Wikipédia et ses projets frères (tels que Wikisource et Wikimedia Commons) sont propulsés par le moteur de wiki MediaWiki — et sont soutenus par la Wikimedia Foundation ; rien que ces noms, dans leur confusion, sont un péché contre l’ergonomie. Pendant longtemps, le développement de MediaWiki a été conduit par des développeurs de logiciels. La communauté MediaWiki est forte de nombreux développeurs ; à vrai dire, la communauté est presque exclusivement composée de développeurs. Ce n’est que récemment que des designers ont rejoint la communauté, et ils ont été recrutés par la Wikimedia Foundation pour ce rôle. Il n’y a quasiment aucun designer bénévole dans la communauté. De ce fait, l’application a été construite et « maquettée » exclusivement par des développeurs. Par conséquent, la forme de l’interface a naturellement suivi de très près le « modèle d’implémentation », c’est-à-dire la manière dont le logiciel est implémenté dans le code et les structures de données. Le modèle d’implémentation ne correspond que rarement au « modèle utilisateur », c’est-à-dire à la manière dont l’utilisateur imagine que le logiciel fonctionne.

Il serait injuste de dire que les développeurs ne se soucient pas des utilisateurs. Quand on crée un logiciel, le but — outre le plaisir d’apprendre des choses, d’écrire du code et de résoudre des problèmes — c’est de le publier afin qu’il puisse être utilisé. Ceci est particulièrement vrai dans le monde du logiciel libre et open source, où la plupart des développeurs donnent bénévolement de leur temps et de leurs connaissances. On pourrait avancer que les développeurs sont, de fait, des utilisateurs de leurs propres produits, notamment dans le monde du logiciel libre et open source. Après tout, ils les ont créés ou ont rejoint leurs équipes pour une bonne raison, et c’est rarement l’argent. Par conséquent, les développeurs de ce type de logiciels devraient être dans une position idéale pour savoir ce que veulent leurs utilisateurs.

Mais soyons honnêtes : si vous êtes en train de lire ceci, c’est que vous n’êtes pas votre utilisateur lambda.

Le point de vue du développeur

Si vous êtes développeur, il vous est particulièrement difficile de vous mettre à la place de l’utilisateur. Tout d’abord, votre connaissance du code et de l’implémentation du logiciel vous force à observer ses fonctionnalités et son interface à travers un prisme très particulier. Vous connaissez chacune des fonctionnalités de l’application que vous avez créée. Vous savez où trouver chaque menu. Si quelque chose paraît légèrement bizarre dans l’interface, il est possible que vous l’ignoriez sans le vouloir, parce que vous savez inconsciemment que c’est lié à la façon dont la fonctionnalité est implémentée.

Imaginons que vous soyez en train de créer une application qui enregistre des données sous forme de tableau (par exemple, dans une base de données). Quand vous devrez ensuite afficher ces données pour les montrer à l’utilisateur, il est très probable que vous les représentiez comme un tableau, car c’est la façon dont vous avez implémenté leur stockage. Il vous paraîtra logique d’afficher les données dans un format qui est cohérent avec le format de stockage. Vous aurez probablement le même réflexe pour tout autre type de structure de données séquentielles : vous aurez tendance à l’afficher sous forme de séquence dans l’interface, peut-être comme une liste. Et pourtant, un autre format d’affichage aurait peut-être été plus pertinent et facile d’utilisation pour les utilisateurs, par exemple sous forme d’une série de phrases, d’un graphique ou d’une autre représentation visuelle.

Un autre défi est votre niveau d’expertise. Comme vous souhaitez que votre application soit extraordinaire, vous allez probablement vous documenter sur le sujet pour la concevoir. En fin de compte, vous n’allez pas seulement connaître votre application sur le bout des doigts, vous allez également devenir un expert dans le domaine lui-même. Un grand nombre de vos utilisateurs n’auront pas ce niveau d’expertise — ou n’en auront pas besoin. Ils pourraient être perdus par le niveau de détail de certaines fonctionnalités ou ne pas être familiers avec des termes inconnus des profanes.

Alors, que pouvez-vous faire pour arranger cela ?

Observez les utilisateurs. Vraiment

Observer les utilisateurs à l’œuvre avec votre application est une expérience réellement révélatrice.

Bon, pour observer comment les gens utilisent votre application, vous pouvez faire appel à une société de conseil en ergonomie ; cette société va alors recruter des volontaires avec des profils différents au sein d’un vivier de plusieurs milliers de testeurs, elle va mettre au point une grille d’entretien, louer une salle dédiée aux tests d’ergonomie qui comprendra un dispositif pour enregistrer ce qui se passe sur l’écran et une caméra pointée vers le testeur, et vous serez derrière une vitre sans tain, dans une salle d’observation, à vous taper la tête contre les murs et à jurer à chaque fois que l’utilisateur fait quelque chose qui, selon vous, n’a aucun sens. Si vous avez les moyens de le faire, alors n’hésitez pas, foncez. Ce que vous y apprendrez vous permettra de complètement changer votre point de vue. Si vous n’avez pas les moyens de recourir à une procédure de test professionnelle, tout n’est pas perdu ; vous allez juste devoir le faire par vous-même. Asseyez-vous derrière un utilisateur pendant qu’il vous montre comment il effectue ses tâches et les intègre à son mode de travail. Soyez un observateur silencieux : votre but est d’observer et de noter tout ce qui se passe. Beaucoup de choses vont vous surprendre. Une fois que l’utilisateur a terminé, vous pouvez relire vos notes et lui poser des questions afin de mieux comprendre comment il fonctionne.

Pour vous aider à conduire ces tests vous-même, il existe d’excellents ouvrages comme Don’t Make Me Think: A Common Sense Approach to Web Usability [NdT: Traduit en français : Je ne veux pas chercher: Optimisez la navigation de vos sites et menez vos internautes à bon port], écrit par Steve Krug, About Face 3: The Essentials of Interaction Design, d’Alan Cooper, Robert Reimann et David Cronin, et le projet OpenUsability. Être observé peut être un peu intimidant pour les utilisateurs, mais je parie qu’ils seront nombreux à se porter volontaires pour vous aider à améliorer votre application. Les utilisateurs qui ne peuvent pas contribuer au code sont généralement heureux de trouver d’autres façons de contribuer au logiciel libre : vous montrer comment ils utilisent le logiciel est une manière simple de le faire. Les utilisateurs sont reconnaissants du temps que vous avez donné pour développer le logiciel et veulent vous rendre la pareille.

Vous devrez garder un esprit critique et ne pas forcément accepter toutes les modifications demandées par vos utilisateurs. Écoutez attentivement leurs histoires : elles vous donneront l’occasion d’identifier des problèmes. Mais ce n’est pas parce qu’un utilisateur réclame une fonctionnalité qu’il en a absolument besoin ; peut-être que le meilleur moyen de résoudre le problème sous-jacent est de mettre en place une fonctionnalité complètement différente. Gardez du recul par rapport aux commentaires de vos utilisateurs. Mais cela, vous le saviez probablement déjà.

Et au passage, ne faites pas non plus appel à votre famille.

Je ne dis pas ça méchamment, je suis sûr que vos parents, frères et sœurs sont des gens très bien. Mais si vous créez une application comptable et que votre sœur n’a jamais tenu la moindre comptabilité, elle sera sans doute perdue. Vous perdrez plus de temps à lui expliquer ce qu’est la comptabilité en partie double qu’à tester votre logiciel. Par contre, votre mère, qui s’est acheté un appareil photo numérique l’année dernière, pourrait être un cobaye idéal si vous travaillez sur une application de gestion de photos numériques ou d’envoi sur un site de partage en ligne populaire. Pour votre application de comptabilité, il vaut mieux demander à l’un de vos collègues ou amis qui a déjà quelques notions de comptabilité.

Variez vos cobayes

Pour des raisons qui resteront éternellement mystérieuses, les gens trouveront toujours d’innombrables façons d’utiliser et de maltraiter votre application. Ils trouveront des manières de la casser que vous n’auriez même pas imaginées dans vos pires cauchemars. Certains mettront en place des processus et des méthodes de travail avec votre application qui n’ont absolument aucun sens à vos yeux. Et, de désespoir, vous vous cognerez la tête contre les murs. D’autres utiliseront votre application avec tellement d’intelligence que vous vous en sentirez idiot. Essayez de rencontrer des gens qui utilisent votre application avec des objectifs différents.

Les utilisateurs sont de drôles d’oiseaux. Mais ils sont de votre côté. Apprenez d’eux.

Si vous ne retenez rien d’autre…

… alors retenez ceci :

  • Vous serez tenté de modeler l’apparence et le comportement de votre interface sur la façon dont le logiciel fonctionne en coulisses. Vos utilisateurs peuvent vous aider à éviter ce piège.
  • Les utilisateurs sont des oiseaux capricieux. Ils vont casser, maltraiter et optimiser votre application à un point que vous ne pouvez pas même pas imaginer.
  • Apprenez de vos utilisateurs. Améliorez votre application en fonction de ce que vous avez appris. Vous avez tout à y gagner.



Grandir avec son projet (Libres conseils 20/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : peupleLà, SaSha_01, lerouge, Kalupa, lenod, michel, KoS, michel, goofy, HanX, Asta, lamessenJulius22

Mon projet m’a appris à grandir

Runa Bhattacharjee

Depuis 10 ans, Runa Bhattacharjee a traduit et travaillé à la localisation(1) de nombreux projets open source — des interfaces de bureau aux outils de systèmes d’exploitation en passant par beaucoup de choses entre les deux. Elle croit fermement que les dépôts de codes en amont sont les meilleurs endroits pour soumettre toutes les modifications possibles. Elle gère également un portefeuille professionnel spécialisé dans la localisation chez RedHat. Runa traduit et maintient des traductions en Bengali (version indienne) mais est toujours heureuse d’aider quiconque débute dans la localisation.

Introduction

Carburer tard dans la nuit est l’une des formes de rébellion préférée des jeunes partout dans le monde. Que ce soit pour lire un livre avec une lampe de poche sous les couvertures, regarder les rediffusions TV ou (entre autres choses) traîner sur un canal IRC et s’acharner sur un problème agaçant dans son projet open source favori.

Comment tout a commencé

Voici comment tout a commencé pour moi. Permettez-moi d’abord d’écrire quelques lignes sur ma personne. Lorsque j’ai été présentée au groupe d’utilisateurs de Linux de ma ville, je partageais ma vie entre des emplois et mes études de master. Très vite, j’étais devenue contributrice sur quelques projets de localisation et j’avais commencé à traduire des interfaces de bureau (principalement). Nous utilisions des éditeurs de texte personnalisés avec des systèmes intégrés pour l’écriture et les polices. Les moteurs de rendu n’étaient pas assez matures pour afficher le scénario sans erreur sur les interfaces. Mais, malgré tout, nous continuions à traduire. Je me concentrais sur la méthode de travail que j’avais créée pour mon usage. Je récupérais le contenu à traduire des personnes qui savaient comment les choses fonctionnaient, je le traduisais du mieux que je pouvais, j’ajoutais des commentaires pour aider les réviseurs à comprendre comment j’avais appréhendé le texte, je renseignais les informations requises pour les copyrights et les crédits, puis je renvoyais tout ça aux coordinateurs.

Comment je faisais

C’était avant tout une manière simple de faire les choses. Mais, surtout, c’était ma manière à moi de les faire. Je prenais le temps de planifier mon travail sur les traductions. Celles-ci étaient ensuite révisées avant de m’être retournées pour modification. De nouveau, je planifiais quand je pourrais les reprendre en fonction de mon temps libre disponible entre les études et le travail. Lorsque je me mettais finalement au boulot, je m’asseyais pour neuf à dix heures d’un coup, en général jusqu’à l’heure où blanchit la campagne, ressentant alors un grand sentiment d’accomplissement, jusqu’à la fois suivante.

Ce qui comptait

Ce que je ne savais pas, c’est que je jouais un rôle crucial sur un plan plus global. À savoir, la planification des releases(2). Donc, quand j’achevais mes modestes contributions et les envoyais aux autres, je ne prenais pas en compte leur possible inutilité du fait qu’elles arrivaient trop tard pour la version en cours et trop tôt pour la suivante (qui inclurait forcément de nombreux changements qui obligeraient à se remettre au travail). Au-delà de ça, je n’avais aucune idée de l’importance que ça prenait dans le processus de release : intégration, création de paquetages, tests de l’interface, suivi et résolution des bogues.

Comment cela m’a fait grandir

Tout cela a changé radicalement quand je me suis tournée vers un rôle plus professionnel. Subitement, je faisais la même chose mais d’une manière plus structurée. J’ai appris que faire cavalier seul comme j’en avais pris l’habitude n’était pas adapté quand on devait jongler avec deux ou trois versions planifiées. Il fallait être méticuleusement synchronisé avec les feuilles de route des projets. En travaillant sur une traduction d’interface de bureau, je devais aussi vérifier que le calendrier de traduction concordait avec celui du projet principal.

Les travaux devaient idéalement commencer immédiatement après le gel de tous les messages d’origine de l’interface. Les traducteurs pouvaient alors travailler librement jusqu’à l’échéance de la période de traduction, après quoi ils pouvaient marquer la traduction comme stable dans le dépôt principal et, finalement, les paquetages pouvaient être générés. De plus, quelques distributions de systèmes d’exploitation se synchronisaient sur ce calendrier. Les traducteurs avaient donc la responsabilité supplémentaire de s’assurer que les pré-versions des systèmes d’exploitation embarquant ce bureau seraient un minimum testées afin de s’assurer que les traductions de l’interface avaient du sens et ne contenaient pas d’erreur.

Ce que j’aurais dû savoir

La transition ne fut pas aisée. Je fus soudain inondée par un flot d’informations que je devais gérer et par des tâches supplémentaires que je devais réaliser. Ce qui était au départ un passe-temps et plus important encore un anti-stress est devenu tout à coup une affaire sérieuse. En y repensant, je peux dire que cela m’a probablement aidée à comprendre le processus dans son intégralité étant donné que j’ai dû tout apprendre depuis le début. Ainsi armée de cette connaissance, je peux analyser des situations avec une meilleure compréhension de toutes leurs dimensions. Au moment où j’ai commencé à travailler sur les projets open source qui m’intéressaient, il y avait beaucoup moins de professionnels qui travaillaient à plein temps dans ce domaine. La plupart des contributeurs bénévoles travaillaient ailleurs la journée et voyaient ces projets comme un moyen d’alimenter les idées créatives qui s’étiolaient dans leurs tâches quotidiennes. Donc, beaucoup de nouveaux arrivants n’étaient jamais guidés vers une manière plus professionnelle d’organiser leurs projets. Ils ont grandi pour devenir merveilleusement doués dans ce qu’ils faisaient et ont finalement compris comment ils aimeraient équilibrer leur travail avec le reste de leurs activités.

Conclusion

Aujourd’hui, j’encadre les nouveaux arrivants et l’une des premières choses que je leur fais comprendre est comment et dans quelle partie du projet leur travail aura un impact. Élaborer un modèle de travail personnel est essentiel car cela permet de se construire un environnement où il est agréable de travailler. Cependant, avoir conscience de la structure qui est affectée par le travail inculque la discipline nécessaire pour pouvoir tenir bon face aux caprices.

(1) La localisation englobe tout le processus d’adaptation d’un produit logiciel ou documentaire à une région donnée. Cela comprend la traduction dans la langue de la région mais aussi l’adaptation aux normes, à la culture et aux besoins spécifiques de cette région du monde.

(2) Il s’agit de la publication d’un logiciel, sa mise à la disposition du public.




Non, je ne vais pas télécharger ton application mobile de merde !

C’était mieux avant ?

Tom Morris souhaite juste lire un article de presse. Sauf que la procédure pour y arriver n’est pas la même selon qu’il se trouve sur bon vieil ordinateur ou sur son clinquant smartphone (ici un iPhone).

Alors Tom Morris en a marre et nous le dit sur son blog dans un style qui ne fait pas dans la dentelle !

Daniel Hennemand - CC by

Non, je ne vais pas télécharger ton appli de merde

No, I’m not going to download your bullshit app

Tom Morris – 2 février 2013 – Blog personnel
(Traduction : Pouhiou, ehsavoie, Lapinosor + anonymes)

Comment lisions-nous les informations à l’époque du Web :

  1. Aller sur le site du journal.
  2. Cliquer sur l’article.
  3. Lire.

Voici comment nous lisons les informations à l’ère des saloperies d’applications iPhones inutiles :

  1. Aller sur le site web.
  2. Être informé que vous n’êtes pas autorisé à lire le site web.
  3. Être redirigé vers un App Store.
  4. Télécharger l’application.
  5. Attendre tandis qu’un fichier de plusieurs megaoctets se télécharge sur votre capricieuse et onéreuse connexion 3G.
  6. Ouvrir l’application.
  7. Se familiariser avec une interface dont les touches sont d’une intuitivité obscure qui ne nous a pas été dévoilée et d’une utilisation subtilement différente des autres applications similaires.
  8. Lutter contre l’indicateur d’état mal implémenté d’une roue dentée de chargement (sur iOS) ou une barre de progression clignotante (sur Android) parce que vous avez eu l’audace d’utiliser votre appareil mobile sur une connexion lente ou incertaine.
  9. Tenter de trouver l’article que vous souhaitiez lire dans une mise en page et une architecture informationnelle qui sont totalement différentes de la mise en page et de l’architecture informationnelle du site web auquel vous vous êtes habitué, parce qu’un enfoiré a décidé que lire l’équivalent électronique d’un journal doit être une « rupture technologique » (car il a lu bien trop de Seth Godin[1] et autres foutaises).
  10. Réaliser que l’application ne vous montre pas la même chose en mode paysage ou portrait. À vous les joies de passer pour un gros obsédé dans le métro en tournant votre iPad dans tous les sens pour mieux zoomer sur la pin-up de la page 3.
  11. Ne pas être capable de partager avec vos amis parce que ce n est pas une page web avec une URI. Parce que pourquoi avoir besoin d’URI quand vous avez de beaux et brillants boutons sur votre téléphone?
  12. Perdre du temps pour télécharger les fichiers binaires à la prochaine mise a jour (automatique) de l’application sur l’App Store, afin que vous ayez cette « nouvelle fonctionnalité », même s’il n’y a aucune putain de fonctionnalité qui vous intéresse, si ce n’est de pouvoir (enfin) lire ces putains d’articles.
  13. Si vous utilisez Android, installez d’abord un logiciel anti pub au cas où l’application s’installerait avec quelques délicieuses pubs qui s’introduisent dans vos données personnelles.
  14. Abandonner, aller au kiosque le plus proche, acheter la version papier, balancer son smartphone depuis la falaise la plus proche et démarrer une campagne de dénigrement contre tous les idiots qui pensent que mettre l’info dans une application mobile est une bonne idée.

Dans la guerre « Web contre Applications mobiles » (NdT : web vs. apps), je pense que vous pouvez aisément deviner de quel côté je suis.

Je ne voudrais pas télécharger une application de la BBC ou de la NPR (National Public Radio) pour mon ordinateur. Pourquoi en voudrais-je une sur mon téléphone ? Dois-je acheter un nouveau poste de radio à chaque fois que je veux écouter une nouvelle station ? Non. La fonctionnalité est la même, la seule chose qui diffère, c’est le contenu.

Les applications mobiles doivent fournir une fonctionnalité réelle, et pas seulement des bouts de contenu encapsulés dans des fichiers binaires.

Crédit photo : Daniel Hennemand (Creative Commons By)

Notes

[1] Seth Godin est un entrepreneur américain, ancien responsable du marketing direct de Yahoo, ainsi qu’un auteur et conférencier à succès sur des problématiques du marketing. Il a notamment popularisé le thème du permission marketing.




Protéger le secteur du logiciel des brevets, par Richard Stallman

En novembre dernier, Richard Stallman faisait paraître dans le magazine Wired un article important sur l’épineuse et dangereuse question des brevets logiciels (ou plutôt « brevets sur des idées informatiques » comme nous le verrons ci-après).

Un article que nous nous sommes empressés de traduire via notre circuit, désormais classique, compte Twitter + Framapad, et qui a été relu et corrigé par la liste « trad-gnu » de l’April.

OpenSourceWay - CC by-sa

Protéger le secteur du logiciel des brevets

Giving the Software Field Protection from Patents

Richard Stallman – version du 02 février 2013 – Gnu.org (CC BY-ND)
(Traduction Framalang : satbadkd, Thérèse, DarthMickey, geecko, Marc, igor, EEva, greygjhart)

Une première version de cet article a été publiée sur Wired en novembre 2012.

Les brevets menacent chaque concepteur de logiciel, et les guerres de brevet que nous avons longtemps craintes ont éclaté. Les développeurs et les utilisateurs – soit, dans notre société, la plupart des gens – ont besoin de logiciels libres de tout brevet.

Les brevets qui nous menacent sont souvent appelés « brevets logiciels », mais ce terme est trompeur. Ces brevets ne concernent aucun programme en particulier. En fait, chaque brevet décrit une idée applicable en pratique, et affirme que quiconque utilise cette idée peut être poursuivi en justice. Il est donc plus clair de les appeler « brevets sur des idées informatiques », ou « brevets sur des algorithmes ».

Le système de brevets américain ne différencie pas les « brevets logiciels » des autres. Seuls les développeurs font la distinction entre les brevets qui nous menacent – ceux qui concernent des idées pouvant être implémentées dans des logiciels – et les autres. Par exemple : si l’idée brevetée est la forme d’une structure physique ou une réaction chimique, aucun programme ne peut implémenter cette idée ; ce brevet ne menace pas le secteur du logiciel. Si par contre l’idée qui est brevetée est un algorithme, alors le canon de ce brevet est braqué sur les développeurs et les utilisateurs.

Cela ne veut pas dire que les brevets couvrant des algorithmes concernent seulement les logiciels. Ces idées peuvent être aussi implémentées dans du matériel… et beaucoup d’entre elles l’ont été. Chaque brevet couvre typiquement les implémentations matérielles et logicielles de l’idée.

Le problème particulier du logiciel

Toujours est-il que c’est dans le domaine du logiciel que les brevets sur des algorithmes posent un problème particulier. Il est facile de combiner des milliers d’idées dans un seul programme. Si 10% de ces idées sont brevetées, cela signifie que des centaines de brevets le menacent.

Quand Dan Ravicher, de la Public Patent Foundation (Fondation publique des brevets) a étudié en 2004 un programme de taille importante (Linux, qui est le noyau du système d’exploitation GNU/Linux), il a trouvé 283 brevets américains qui semblaient couvrir des algorithmes implémentés dans son code source. Cette année-là, on estimait la part de Linux dans le système GNU/Linux complet à 0,25%. En multipliant 300 par 400, on peut estimer que le nombre de brevets qui menacent le système dans son ensemble est de l’ordre de 100 000.

Si la moitié de ces brevets était supprimée pour cause de « mauvaise qualité » – c’est-à-dire pour cause de ratés du système de brevets – cela ne changerait pas grand chose. Que ce soit 100 000 ou 50 000 brevets, la catastrophe est la même. C’est pourquoi c’est une erreur de limiter nos critiques des brevets logiciels aux seuls patent trolls ou aux brevets de « mauvaise qualité ». En ce sens Apple, qui n’est pas un « troll » selon la définition habituelle, est actuellement l’entreprise la plus dangereuse quand elle se sert de ses brevets pour attaquer les autres. Je ne sais pas si les brevets d’Apple sont de « bonne qualité », mais plus la « qualité » du brevet est élevée, plus la menace est grande.

Nous devons corriger l’ensemble du problème, pas seulement une partie.

Pour corriger le problème sur le plan législatif, on suggère habituellement de changer les critères d’octroi des brevets – par exemple, d’interdire la délivrance de brevets sur les pratiques algorithmiques et les systèmes nécessaires à leur mise en œuvre. Mais cette approche a deux inconvénients.

Premièrement, les avocats reformulent les brevets de manière astucieuse pour qu’ils correspondent à toute règle applicable ; ils transforment toute tentative de limiter un brevet sur le fond en une simple exigence de forme. Par exemple, de nombreux brevets américains sur des algorithmes décrivent un système qui comprend une unité de traitement arithmétique, un séquenceur d’instruction, une mémoire ainsi que des contrôles pour mener à bien un calcul précis. C’est une manière assez particulière de décrire un programme tournant sur un ordinateur pour effectuer un certain calcul ; elle a été élaborée pour que la demande de brevet se conforme aux critères que, pendant quelques temps, l’on a cru être ceux du système américain de brevets.

Deuxièmement, les États-Unis ont déjà plusieurs milliers de brevets sur des algorithmes, et changer les critères pour empêcher d’en créer d’autres ne permettrait pas de se débarrasser de ceux qui existent. Il faudrait attendre pratiquement 20 ans avant que le problème ne soit entièrement résolu du fait de l’expiration des brevets. Et abolir les brevets existants par la loi est probablement anticonstitutionnel (de manière assez perverse, la Cour suprême a insisté pour que le Congrès puisse étendre les privilèges privés au détriment des droits du public mais ne puisse pas aller dans l’autre direction).

Une approche différente : limiter l’effet des brevets, pas la brevetabilité

Ma proposition est de changer l‘effet des brevets. Il faut inscrire dans la loi que développer, distribuer ou exécuter un programme sur des systèmes informatiques polyvalents ne constitue pas une violation de brevet. Cette approche a plusieurs avantages :

  • elle n’impose pas de classer les brevets selon qu’ils sont logiciels ou non ;
  • elle apporte aux développeurs ainsi qu’aux utilisateurs une protection contre les brevets sur des algorithmes, existants ou futurs ;
  • les avocats spécialistes des brevets ne peuvent plus trouver d’échappatoire en changeant la formulation de leurs demandes.

Cette approche n’invalide pas entièrement les brevets existants sur des algorithmes, parce qu’ils continueront à s’appliquer aux implémentations utilisant du matériel dédié. C’est un avantage dans le sens que cela supprime un argument mettant en question la validité de cette proposition du point de vue législatif. Les États-Unis ont légiféré il y a quelques années afin d’immuniser les chirurgiens contre les procès en contrefaçon de brevet, de sorte que même si des procédures chirurgicales sont brevetées, les chirurgiens sont protégés. Cela fournit un précédent pour ce type de solution.

Les développeurs et les utilisateurs de logiciels ont besoin de protection contre les brevets. Cette proposition est la seule solution législative qui apporte une protection totale à tous. Nous pourrions ensuite retourner à notre monde de concurrence ou de coopération… sans craindre qu’un inconnu ne vienne balayer notre travail.

Voir également : Une réforme des brevets n’est pas suffisante

Crédit photo : OpenSourceWay (Creative Commons By-Sa)