Les mises à jour logicielles : automatiques ou pas ?

Les mises à jour logicielles doivent-elles être effectuées automatiquement ou pas ? Faut-il laisser le choix aux utilisateurs ou leur forcer la main ? Une mise à jour est-elle avantageuse ou dangereuse pour l’utilisateur ? La réponse à toutes ces questions varie selon le type de logiciel, la cible d’utilisateurs, la fréquence des mises à jour, l’attrait des nouveautés, la facturation ou non des mises à jour… Mais cette question, aussi simple soit-elle, a un impact énorme sur les coûts de maintenance de ce logiciel. Il est donc impératif de se poser la question dans sa stratégie de développement. Analyse.

Les avantages et les inconvénients

De prime abord, les avantages et les inconvénients d’une mise à jour automatique sont évidents. Du côté des avantages, on bénéficie au plus tôt des améliorations du logiciel, nouvelles fonctionnalités, corrections de bugs, sans se poser de question. Du côté des inconvénients, il y a un risque que l’application ou le document sur lequel s’appuie ce logiciel ne fonctionne plus.

Du point de vue des DSI

Principe de précaution oblige, et la France est championne dans ce domaine, l’ensemble des directions de services informatiques (DSI) des grosses sociétés préfèrent bloquer les mises à jour et tester explicitement les nouvelles versions avant de les déployer dans leur parc. Mais ces tests sont longs et coûteux à réaliser, d’autant plus qu’ils aboutissent quasi systématiquement à une incompatibilité logicielle, ce qui renforce la légitimité de l’application du fameux principe de précaution. La raison de cette incompatibilité n’est généralement pas la mise à jour du logiciel en lui-même, mais la nécessité de mettre à jour l’ensemble des applications qui s’appuient sur ce logiciel et qui ont été développés d’une telle manière qu’ils ne sont pas compatibles avec la nouvelle version. Le coût de ces mises à jour étant important, il est préférable de ne pas mettre à jour.

On en arrive au point extrême où les DSI refusent toutes les mises à jour logicielles et se retrouvent à fonctionner avec des logiciels d’un autre âge. Pour exemple, je ne prendrais que Internet Explorer 6 et Windows XP, qui, bien que sortis il y a plus de dix ans, soit trois générations en informatique, continuent à dominer le parc des grosses sociétés.

Cet immobilisme a un coût énorme qui peut rapidement devenir plus important que le coût induit par des mises à jour régulières. Windows XP a dépassé depuis plusieurs années sa date de fin de vie. Mais, sous la pression des DSI, Microsoft a été contraint de prolonger la maintenance et à vendre des licences de cette version. Cela a un coût non négligeable : maintien des équipes de maintenance, hotline… Microsoft l’a accepté de bon gré car Windows Vista, la version qui le remplaçait, n’était pas vraiment une réussite. Mais maintenant que Windows 7 est sorti, cet argument n’est plus valable et les DSI qui refusent toujours de se mettre à jour se retrouveront avec une version de système non maintenu.

C’est d’ailleurs le cas d’Internet Explorer 6 qui n’est dorénavant plus maintenu. Microsoft a là encore dépensé des sommes énormes de communication afin d’inciter les DSI à migrer vers une version plus récente. Un site Internet est même dédié à cette migration.

Les développeurs de sites Internet vous le diront tous : rendre un site Internet compatible avec Internet Explorer, c’est déjà compliqué. Mais le rendre compatible avec toutes ses versions, de la 6 à la 9, cela devient mission impossible. Les coûts de développement de sites Internet pour rendre compatible le site avec les différentes versions d’Internet Explorer peuvent représenter jusqu’à 50 % du coût de développement total dans le cas où le JavaScript est largement utilisé. Cet effort financier, plus personne ne veut le faire. Tout le monde a abandonné le support de la version 6. La version 7 est aujourd’hui sur la sellette. Tant pis pour ceux qui utilisent encore ces versions obsolètes. Même sans Internet Explorer 6, les coûts de compatibilité des différentes versions d’Internet Explorer reste à 30 ou 40 % du coût total du développement. C’est encore non négligeable.

Vous noterez qu’en matière de navigateur, on ne se soucie que des versions d’Internet Explorer, pas celle des autres navigateurs qui pourtant représentent aujourd’hui 60 % du parc informatique. Cela est dû au fait que Microsoft a toujours développé des versions irrespectueuses des normes et incompatibles entre elles d’une version à l’autre et que les adaptations à réaliser sont en conséquence plus importantes. Les autres navigateurs, bien plus respectueux des normes, n’ont pas ces problèmes d’incompatibilités et sont donc plus enclins à fonctionner naturellement avec du code propre. De plus, les mises à jour de ces logiciels sont effectuées plus régulièrement par les DSI, du moins s’ils sont autorisés, ce qui n’est pas toujours le cas.

Du point de vue des utilisateurs

Il y a deux types d’utilisateurs : les technophiles et les autres. Pour les technophiles, il n’y a pas de soucis à se faire. Ils seront les premiers à mettre à jour leurs logiciels. Pour les autres, c’est plus compliqué car leur niveau de compétence en informatique n’est pas toujours à la hauteur. On leur a tellement expliqué qu’il y avait des virus sur Internet et qu’il ne fallait jamais cliquer oui dans une boite de dialogue qu’ils ne connaissent pas, qu’ils cliquent systématiquement NON quand la question « Voulez-vous mettre à jour votre logiciel ? » est posée.

C’est ainsi que ces utilisateurs, au même titre que les DSI, se retrouvent avec des logiciels obsolètes. Mais, la plupart du temps, ce n’est pas un choix volontaire. Ils ne savent pas ce que pourrait bien leur apporter une mise à jour. Ils n’en comprennent même pas le concept. À ces gens là, poser la question est inutile. Il faut prendre la décision à leur place et mettre à jour automatiquement sans le leur demander.

C’est le choix qu’a fait Google avec Chrome qui est mis à jour automatiquement toutes les six semaines au nez et à la barbe de ses utilisateurs. Aujourd’hui, nous en sommes à la version 14. Dans un an, ce sera la version 24. Toutes les six semaines, c’est le numéro de version majeur qui est incrémenté. Un signal fort pour indiquer que la version n’est pas importante vu que le logiciel est mis à jour automatiquement. Toujours à jour, donc toujours plus rapide, avec tous les bugs connus corrigés et toutes les évolutions immédiatement disponibles. Un bonheur pour les développeurs de sites qui pourront, sans se poser de questions, utiliser les dernières évolutions disponibles sur leur site. À mettre en comparaison avec les nouveautés d’Internet Explorer qui ne pouvaient être utilisées que trois ans après leur sortie afin de s’assurer qu’une partie suffisamment importante du parc ait effectué sa migration. D’un côté, trois ans d’attente, de l’autre quelques semaines. À vous de juger.

Embourbé à l’occasion de la sortie de sa version 4 qui est arrivée avec plusieurs mois de retard, Firefox a pris le parti de Chrome : trois mises à jour majeures et automatiques par an. La version actuelle est la 5. La version 6 est prête à être publiée. Mais si l’on suit la presse, c’est la version 7, en cours de développement, qui est à l’honneur (avec sa gestion de mémoire optimisée). Dans un an, nous en serons à la version 11.

Même Microsoft, dont le rythme des mises à jour majeures est plutôt de l’ordre de trois ans, soit une version par génération, a décidé d’accélérer son rythme. Internet Explorer 9 à peine sorti, c’est Internet Explorer 10 en version alpha qui était disponible. Le rythme des mises à jour sera dorénavant d’une fois par an. Dans un an, la version 11 sera donc disponible en alpha.

En matière d’Internet et d’utilisateurs non avertis, les mises à jour automatiques sont donc essentielles !

Du coté du SaaS

Le SaaS, ou Software as a Service, consiste à utiliser un logiciel en ligne, sans avoir à l’installer sur son poste. L’avantage d’une telle solution est qu’il est disponible où que l’on soit, y compris si l’on n’est pas en possession de son propre ordinateur. L’autre avantage est qu’il n’est pas nécessaire de s’occuper de sa maintenance. La société qui se charge de son hébergement le fait pour nous.

Là, pas de questions à se poser. La mise à jour est automatique et incluse dans l’offre. Et cela ne dérange personne. Au contraire, lentement mais surement, le SaaS se développe au détriment des solutions hébergées chez soi, car les coûts de maintenance s’en trouvent largement réduits.

Car, il ne faut pas l’oublier, s’offrir le luxe de ne pas se mettre à jour un logiciel automatiquement, c’est aussi accepter un coût de maintenance de la version ancienne bien plus important !

Du point de vue des développeurs

On pourrait penser que les développeurs étant des technophiles en puissance seraient toujours à jour. Il n’en est rien. Afin d’assurer une homogénéité du parc de serveurs, ceux-ci seront tous installés avec la même version. Le système qui a le plus la cote est Red Hat Entreprise Linux (RHEL). Les services qui y seront installés le seront dans des versions qui ont été testées explicitement pour être compatibles entre elles. Même en contractant avec les hébergeurs les plus chers, on ne bénéficiera pas des dernières versions des services mais celles proposées par une version stable de RHEL.

Prenons comme exemple Java. Ce langage qui a plus de quinze ans est considéré comme mature. Et il est vrai qu’il l’est. Si vous regardez le détail des dernières versions du cœur de Java, vous ne verrez pas particulièrement de nouveautés. Cela n’empêche pas Java d’être régulièrement mis à jour car les nouvelles versions améliorent la stabilité de Java en corrigeant les bugs les plus pointus. Certes, la plupart du temps, ces corrections ne vous concernent pas car trop pointues. Mais si par malchance vous tombez dessus et que votre hébergeur refuse de se mettre à jour pour prendre en compte ce correctif, vous serez contraint de faire ce que l’on appelle un downgrade, soit en développant la fonctionnalité autrement, soit en intégrant dans votre logiciel une librairie publique dans une version plus ancienne. Bien entendu, ce downgrade a un coût et crée un risque de pérennité dans votre logiciel. À l’occasion de la mise à jour globale du système, qui aura bien lieu un jour, ce downgrade explicite risquera de ne plus fonctionner.

Prenons comme second exemple PHP. Aujourd’hui, coexistent trois versions majeures de PHP :

  • La version 4 encore largement disponible pour faire fonctionner les vieux développements,
  • La version 5 qui apporte une vraie gestion orientée objet,
  • La version 5.3 qui apporte tout ce que les langages objet utilisent, avec notamment les espaces de noms.

En fait, cette version 5.3, bien que récente, n’est pas la plus récente. De nombreuses mises à jour, prétendument mineures, ont apporté de nouvelles évolutions sur la partie objet du langage qui est en pleine mutation.

Si vous recherchez un hébergeur pour votre site en PHP, vous ne trouverez aucune difficulté à trouver un hébergeur en PHP 4. La quasi-totalité propose aujourd’hui une compatibilité avec PHP 5. Mais quand on commence à rechercher un hébergeur pour la version 5.3, cela devient plus compliqué. Et si l’on veut la toute dernière version de PHP 5.3, c’est mission impossible.

Symfony est un framework de développement MVC très réputé dans le monde PHP. La version 2 du framework a été entièrement réécrite et modernisée en s’appuyant sur les toutes dernières technologies de PHP. Le pré-requis pour son bon fonctionnement est la version 5.3.2, soit quasiment la toute dernière version de PHP puisque la dernière est aujourd’hui 5.3.6. Utiliser Symfony 2 qui est pourtant la quintessence du développement PHP devient donc périlleux, voir impossible, à cause des mises à jour qui ne sont pas faites automatiquement.

Du point de vue de l’éditeur de logiciels

L’éditeur de logiciels a un bien mauvais métier, car il doit créer un logiciel qui sera utilisé de manière différente par un grand nombre d’utilisateurs tout aussi différents. Ces utilisateurs utiliseront le logiciel dans des environnements plus ou moins à jour, et l’éditeur doit s’assurer que toutes ses versions sont compatibles avec toutes les versions et configurations de systèmes possibles et imaginables. Mission impossible ? En plus de tout cela, il ne peut pas forcément proposer une mise à jour automatique de son logiciel car la mise à jour est souvent payante : c’est le cœur de son business. Il doit donc assurer le bon fonctionnement de son logiciel, même si son utilisateur ne veut pas payer pour sa mise à jour.

Tout ceci a un coût qui peut représenter jusqu’à 80 % du coût de développement de son logiciel. Il doit tout d’abord s’équiper d’une cellule de tests qui possèdera l’ensemble des configurations possibles et imaginables de ses clients et, à chaque nouvelle mise à jour, s’assurer que toutes les versions fonctionnent encore dans toutes les configurations. Il doit ensuite s’assurer que son service client est équipé des bonnes configurations pour tenter de reproduire les problèmes cités par ses clients.

L’éditeur va donc distinguer deux types de mises à jour :

  • Les mises à jour majeures qui apportent de nouvelles fonctionnalités et à ce titre sont soumises à facturation,
  • Les mises à jour mineures ou de sécurité qui apportent des correctifs qu’il est moins coûteux de proposer gratuitement plutôt que de maintenir de vieilles versions.

Dans le premier cas, la mise à jour ne sera jamais automatique puisque payante. Dans le second cas, il est préférable pour lui qu’elle le soit.

Compatibilité ascendante ?

L’autre difficulté que va rencontrer l’éditeur de logiciels, c’est la problématique de compatibilité ascendante. L’ancienne et la nouvelle version doivent pouvoir fonctionner avec les mêmes données. La compatibilité ascendante doit être prévue très en amont du projet.

Prenons l’exemple de Microsoft Word qui gère plus ou moins bien cette problématique. À partir de n’importe quelle version, il est possible d’ouvrir un document édité à partir d’une autre version, même plus récente. Il existe pourtant deux grandes familles de documents Word : les « doc » et les « docx ». Sans rentrer dans le détail de ces formats, ce sont bien des formats très différents, le premier pour les anciennes versions et le second pour les plus récentes. Bien qu’il soit possible d’ouvrir et de convertir ces documents à partir de n’importe quelle version du logiciel, il est nécessaire de télécharger et d’installer un plugin pour lire les fichiers récents avec les anciennes versions. Il est évident que Microsoft ne pouvait pas anticiper l’arrivée du format « docx » lorsqu’il a conçu les premières versions de Word, mais il aurait pu prévoir une fonctionnalité qui se serait mise à jour automatiquement une fois le signal reçu qu’un nouveau format existe. Cette fonctionnalité aurait alors téléchargé le plugin automatiquement et lu le nouveau format de manière transparente pour l’utilisateur dans l’ancienne version. Dans ce cas, la mise à jour automatique vers la nouvelle version n’est pas possible car cette mise à jour est payante.

Comme cette anticipation n’a pas eu lieu, il y a aujourd’hui deux types d’utilisateurs de Word : ceux de l’ancienne version et ceux des nouvelles versions. La plupart d’entre eux ne connaissent même pas l’existence de ce plugin et ont les pires difficultés à s’échanger les documents. Au niveau d’un DSI, cela se traduit par l’obligation d’utiliser une et une seule version de Word pour tous et de ne jamais se mettre à jour.

Il est vrai qu’avec les produits Microsoft, un autre problème s’ajoute à celui-là : d’une version à l’autre, les mises en page sont perdues et les scripts ne sont jamais compatibles. Cela n’aide pas.

Compatibilité ascendante des services

Autre cas de problématique de compatibilité ascendante, les applications qui se connectent à des services sur Internet. Ces services peuvent évoluer pour apporter de nouvelles fonctionnalités. Cela fonctionne à partir du moment où ces nouvelles fonctionnalités ne changent pas les signatures des fonctionnalités existantes. Mais si par malheur elles doivent évoluer, cela se complique.

Pour résoudre ce problème, il n’y a que deux solutions :

  • Imposer la mise à jour du logiciel ou faire une mise à jour automatique lorsque la signature change, l’ancienne version devient ainsi immédiatement obsolète,
  • Supporter les deux signatures avec un module de compatibilité qu’il faudra maintenir. Mais à terme, ce ne sont pas deux signatures qu’il faudra maintenir mais une infinité.

Cela coûte moins cher d’imposer la mise à jour automatique pour tous que de devoir maintenir deux ou n signatures d’un même service. Si vous optez pour cette solution, vous devez toutefois pouvoir la déclencher. Pour cela, vous devez prévoir dans votre service une API pour détecter la compatibilité des versions et déclencher la mise à jour dès qu’il y a incompatibilité.

Du côté des antivirus

Avec les antivirus, la mise à jour de la base de données antivirale est automatique et quotidienne. Cela ne dérange personne. Au contraire. Imaginez que vous deviez vous occuper de la mise à jour manuellement chaque jour ?

Du côté des mobiles et des tablettes

Les mobiles dans un premier temps et les tablettes maintenant ont révolutionné l’informatique. Jusque-là, quand on pratiquait l’informatique, on utilisait un nombre de logiciels limité aux doigts des mains et parfois même d’une seule main : Word, Excel, Internet Explorer, plus le logiciel phare pour faire son travail, guère plus. Avec un nombre de logiciels aussi réduit, se poser la question des mises à jour automatiques est une perte de temps. D’autant plus que ces mises à jour n’avaient lieu que tous les deux ou trois ans, hormis les mises à jour dites de sécurité qui pouvaient arriver tout au plus une fois par mois.

Avec les mobiles et les tablettes, c’est tout autre chose. Nouveaux systèmes d’exploitation (iOs, Android…), nouveaux usages mais surtout nouveaux logiciels. Ce sont par dizaines que les logiciels sont téléchargés et installés par chaque utilisateur, merci aux App Stores et autres Markets. Les applications sont gratuites ou payantes, utiles ou inutiles, mais très nombreuses. Il n’est pas rare de voir des utilisateurs passer le cap des cent applications installées. Normal, des centaines de milliers sont disponibles !

Les mises à jour manuelles deviennent alors un enfer. Car chaque application a son propre cycle de vie et ses propres règles de mise à jour. Ce qui fait, avec la quantité des applications, que l’on est notifié quotidiennement de mises à jour à faire, chaque jour pour une ou plusieurs applications différentes. Ce qui pourrait être interprété comme une liberté devient alors un enfer.

Évidemment, l’utilisateur est incapable de juger de la pertinence de telle ou telle mise à jour. Autant les mettre toutes à jour automatiquement sans le lui demander.

Toutes, sauf dans un cas bien particulier qui s’applique à l’Android Market où les applications sont contrôlées a posteriori et pas a priori comme ce qui se fait chez Apple. Pour fonctionner correctement, chaque application a besoin de droits d’accès. Elle peut par exemple nécessiter d’accéder à Internet ou aux contacts, voire les modifier. Prenons par exemple une application de blagues. Chaque jour, elle vous permet de rigoler en découvrant de nouvelles blagues. Cela vous distrait. Un jour, une mise à jour vous est proposée nécessitant l’accès en lecture et en modification de vos contacts ainsi que l’envoi de mails sous votre identité. Vous n’en voyez pas l’intérêt mais comme vous avez opté pour la mise à jour automatique, cette application devient alors propriétaire de votre carnet d’adresse et peut envoyer, en votre nom, des mails à chacun de vos contacts pour leur vendre on ne sait quoi. La mise à jour automatique peut être néfaste pour les applications qui ne sont pas dignes de confiance. Avec Android, même si vous avez opté pour la mise à jour automatique, celle-ci est manuelle lorsqu’il y a changement de droits. Mais quel utilisateur averti va comprendre le risque qu’il encourt à accepter cette mise à jour ?

La rupture technologique

Pour les plus protecteurs qui refusent toute mise à jour, on arrive alors à la rupture technologique. Les logiciels utilisés sont tellement anciens qu’ils ne sont plus maintenus depuis fort longtemps et il devient impossible d’acheter un nouveau matériel capable de supporter ce logiciel.

Récemment, un ami me signalait qu’il ne voulait pas passer à Windows 7 car ce dernier ne supportait pas son application préférée qui tournait en huit bits. Certes, cette application devait faire fureur il y a vingt ans. Mais à quoi peut-elle encore servir aujourd’hui ?

Passé un certain seuil, devoir se mettre un jour devient très complexe car ce n’est plus un logiciel qui doit être mis à jour, mais l’ensemble des logiciels et l’ensemble du matériel. La petite application en huit bits a été remplacée par une autre. En mieux ou en moins bien, c’est subjectif, mais différente, c’est certain !

Migrer une infrastructure d’entreprise complète est d’un tout autre coût que d’avoir réalisé progressivement cette mise à jour au fur et à mesure des évolutions.

Quand les mises à jour automatiques doivent être proscrites ?

J’espère que l’ensemble des exemples cités vous auront convaincus qu’il est préférable d’opter pour les mises à jour automatiques. C’est à la fois un gain de temps et de productivité car on bénéficie au plus tôt du meilleur de ce qui se fait en informatique. À l’inverse, s’offrir le luxe de choisir quand faire ses mises à jour entraîne un coût financier non négligeable, pas forcément pour soi, mais qui peut atteindre jusqu’à 80 % des coûts d’évolution du logiciel. Tout cela pour un bénéfice qui reste à prouver.

Pour l’utilisateur lambda, il n’y a aucun doute que les mises à jour automatiques lui sont profitables. D’ailleurs, c’est dans ce sens que le marché va : les navigateurs, les applications mobiles et tablettes sont dorénavant mises à jour automatiquement.

Il existe toutefois un cas, je n’en vois qu’un seul, où la mise à jour automatique doit être proscrite. Pour assurer le bon fonctionnement d’un système complexe qui utilise plusieurs sous-systèmes composés chacun d’eux de logiciels différents, il est nécessaire, avant d’effectuer la mise à jour, de s’assurer que les nouvelles versions fonctionnent entre elles. Il faut donc se doter d’un environnement de test où les nouvelles versions peuvent être testées avant d’être mises à jour.

Dans ce cas, pas de mise à jour automatique. Cela ne veut pas pour autant dire qu’il ne faut pas se mettre à jour régulièrement. Il faut seulement s’assurer du bon fonctionnement des versions avant de faire la mise à jour.

Carton rouge pour une certaine mise à jour automatique bien connue

Il serait dommage de terminer cette analyse d’expert sans donner un carton rouge à Microsoft pour ses mises à jour automatiques. Windows est l’un des rares systèmes où il est encore nécessaire de redémarrer pour appliquer certaines mises à jour (cela arrive également avec Mac OS X). Son système de mise à jour automatique est programmé par défaut à 3 heures du matin. Il arrive qu’une fois la mise à jour faite, il soit nécessaire de rebooter pour les appliquer. Cette nécessité est notifiée à l’utilisateur qui a dix minutes pour refuser. À défaut de réponse, le système est redémarré automatiquement. Mais à 3 heures du matin, rare sont les utilisateurs qui sont encore devant leurs écrans. Ce n’est pas pour autant que l’ordinateur ne fait rien. Certains logiciels font de longs traitements qui nécessitent toute une nuit pour être exécutés. Ainsi, au réveil, l’utilisateur voit son ordinateur rebooter et son traitement échouer. Merci Microsoft ! D’accord pour les mises à jour automatiques, mais à condition que cela n’arrête pas le fonctionnement des applications en cours d’exécution !

Franck Beulé
Chef de projet Agile, expert des technologies de l’Internet et en ergonomie du Web

Mots clés : , , , , , , , , , , , , , , , , , , , ,

Ajoutez un commentaire