Nicolas Friedli

Travailler avec un budget de performance

Il est facile et rapide d’évaluer la performance d’un site web avec Lighthouse, Web Page Test ou PageSpeed Insights. Toutefois, le travail sur un vrai budget de performance permet des négociations en amont. Puis une analyse à la mise en production. Enfin un suivi dans la durée.

Cette page est une ébauche. Elle sera retravaillée en même temps que le budget lui-même.

Qu’est-ce qu’un budget de perfomance?

Un budget de performance, ce sont les «coûts» acceptés pour l’affichage d’une page web. Par coûts, on entend:

Du côté des «actifs», on a:

Il s’agit donc de trouver une équilibre pour bien dépenser ce qui est accordé.

Exemple pratique

Le lancement de l’analyse par Lighthouse (npm doit être installé avant):

npx lighthouse https://nicolasfriedli.ch \
    --budget-path=budget.json \
    --view \
    --only-categories=performance

En utilisant un budget détaille dans un fichier JSON:

[
    {
        "timings": [
            {
                "metric": "total-blocking-time",
                "budget": 0
            },
            {
                "metric": "largest-contentful-paint",
                "budget": 1000
            },
            {
                "metric": "speed-index",
                "budget": 1000
            },
            {
                "metric": "cumulative-layout-shift",
                "budget": 0
            }
        ],
        "resourceSizes": [
            {
                "resourceType": "total",
                "budget": 500
            },
            {
                "resourceType": "document",
                "budget": 100
            },
            {
                "resourceType": "script",
                "budget": 0
            },
            {
                "resourceType": "font",
                "budget": 200
            },
            {
                "resourceType": "image",
                "budget": 400
            },
            {
                "resourceType": "third-party",
                "budget": 0
            },
            {
                "resourceType": "stylesheet",
                "budget": 50
            }
        ]
    }
]

Dans cet exemple précis, on souhaite:

Dans le détail

L’intérêt interne d’un budget de perfomance

Comme pour tout budget, derrière les nombres se cachent des considérations politiques. L’élaboration d’un budget demande des négociation. Dans le cas de la performance web, il faudra discuter entre les services:

Pour établir le budget, il faut donc parler et trouver des compromis. Et surtout trouver un ensemble de données crédibles. Il ne sert à rien de proposer une planification trop optimiste, dont on sait qu’elle ne sera pas tenue. Il ne sert à rien non plus de s’accorder des valeurs démesurées uniquement pour la satisfaction de les respecter.

Dans la durée, un fichier établi par consensus permet à la fois une évaluation régulière d’un nombre important de pages du corpus que constitue le site. Et surtout de ne pas se battre à chaque demande plus ou moins loufoque d’un des services de l’organisation.

La négociation avec un prestataire externe

Dans un travail avec une agence web, l’idée même de travailler avec un budget de performance annonce la couleur. Elle permet de se poser rapidement les bonnes questions:

Dans la relation entre mandant et mandataire, l’utilisations de métriques permet la clarté:

Ces derniers mois, j’ai vu plusieurs sites insitutionnels entrer en production alors qu’ils ne sont pas au point. Avec un budget de performance, il était possible de refuser la livraison, de demander des améliorations tangibles ou d’exiger un rabais.