Le mouvement du “Local First” a émergé des États-Unis avec une vision innovante pour le développement web, en particulier pour les Progressive Web Apps (PWA).
Cette approche consiste à développer les applications en utilisant d’abord les données localement et en les partageant aux autres utilisateurs via des mécanismes et protocoles de synchronisation. Elle repose sur 7 (sept) principes fondamentaux qui visent à transformer la manière dont nous concevons et utilisons les applications en ligne. Voici ces 7 principes, tels qu’énoncés par les chercheurs de Ink and Switch dans leur publication fondatrice (*).
Principe n°1 : Pas de “Spinners”
La plupart des outils physiques réagissent instantanément à vos actions. Imaginez un outil qui réagisse avec un temps de retard, par exemple un crayon qui dessine avec 1 seconde de retard ou un marteau qui enfonce un clou 1 minute plus tard, ce ne serait pas une expérience très agréable. C’est précisément ce que le premier principe du “Local First” cherche à éviter. L’expérience utilisateur doit être instantanée, sans délais d’attente. Les applications doivent être réactives, même lorsque la connectivité réseau fait défaut. Ce principe repose sur le fait que la réactivité ne doit pas dépendre des réseaux ou du cloud, car ces éléments sont en dehors de notre contrôle et sujets à des retards et des pannes.
Principe n°2 : Votre Travail est Disponible Partout
La deuxième pierre angulaire du “Local First” est l’accessibilité des données sur tous les terminaux de l’utilisateur. Pour ce faire, il s’appuie sur un protocole de synchronisation efficace. Ainsi, vos données personnelles demeurent cohérentes et accessibles, que vous travailliez sur un ordinateur de bureau, une tablette ou un smartphone. La synchronisation peut s’effectuer sans avoir besoin d’une connexion Internet, par Bluetooth ou Wi-Fi.
Principe n°3 : L’Internet est Optionnel
L’Internet est un outil puissant, mais il ne devrait pas être une contrainte. Le troisième principe du “Local First” souligne qu’il est tout à fait possible de travailler hors ligne. De nombreuses situations justifient cette pratique, notamment les voyages, les zones rurales ou les endroits mal couverts par le réseau. De plus, cela permet d’économiser de l’énergie en évitant les connexions mobiles. La synchronisation peut être différée jusqu’à ce que vous soyez dans une zone Wi-Fi ou Bluetooth.
Principe n°4 : Collaborer
La collaboration est au cœur du “Local First”. Des conflits dans Dropbox aux merge requests de Github et aux suggestions de Google Docs, les workflows collaboratifs sont variés et résolvent souvent les conflits de manière naturelle et intuitive pour les utilisateurs. Le “Local First” vise à faciliter la collaboration entre collègues et pairs, quel que soit le domaine d’application.
Principe n°5 : Viser le Long Terme
L’un des engagements les plus importants du “Local First” est la pérennité des données. Vos informations doivent demeurer accessibles dans la durée, sauf si vous choisissez de les supprimer vous-même. Vous ne devriez jamais dépendre exclusivement d’un fournisseur de services ou de la résilience d’un datacenter sur lequel vous n’avez aucun contrôle. Réfléchissez aux conséquences pour vos emails stockés sur GMail ou vos projets hébergés sur Github.
Principe n°6 : Sécurité par Défaut
La tolérance aux pannes, qu’elles soient liées au réseau ou aux serveurs, doit être intrinsèque au “Local First”. L’encryption de bout en bout garantit la sécurité et la protection des données personnelles, même lorsqu’elles transitent par des serveurs tiers pour la synchronisation.
Principe n°7 : Le Contrôle par l’Utilisateur
Enfin, le septième principe réaffirme que le contrôle doit rester entre les mains de l’utilisateur. Vous décidez quand, avec qui et comment partager vos données. Les autorisations, telles que celles définies dans UMA 2.0, montrent la complexité de garantir ce contrôle dans un système centralisé traditionnel.
En résumé, le “Local First” révolutionne la manière dont nous concevons les applications web, en plaçant la réactivité, la disponibilité, la collaboration, la pérennité, la sécurité et le contrôle entre les mains des utilisateurs. Cette approche met en lumière l’importance de la résilience et de la responsabilité des données dans un monde numérique en constante évolution.
Le 8ème principe : l’Éco-conception
L’éco-conception est une approche du développement logiciel visant à minimiser l’impact environnemental d’une application ou d’un service informatique tout au long de son cycle de vie. Dans le contexte du “Local First”, cet aspect de l’éco-conception prend une signification particulière.
Économie Énergétique en Évitant les Réseaux à Haute Consommation : Lorsqu’un logiciel “Local First” est conçu, l’une des priorités est de minimiser la dépendance à l’Internet. Or, l’une des principales sources de consommation d’énergie dans le numérique est l’utilisation des réseaux et des data centres. En particulier, l’utilisation intensive des réseaux de données à haute consommation énergétique, tels que les réseaux mobiles, peut avoir un impact significatif sur l’environnement. Les antennes de télécommunication nécessitent une quantité considérable d’énergie pour fonctionner, et la transmission de données à travers ces réseaux génère également des émissions de gaz à effet de serre.
Avantages de l’Économie Énergétique : En suivant ce principe d’éco-conception, un logiciel “Local First” peut contribuer de manière significative à la réduction de la consommation d’énergie liée aux technologies de l’information. L’utilisation de données stockées localement et la synchronisation différée lorsqu’une connexion Wi-Fi ou Bluetooth est disponible permettent de réduire la dépendance aux réseaux mobiles gourmands en énergie. L’économie énergétique peut être particulièrement pertinente dans des cas d’utilisation spécifiques. Par exemple, dans les zones où l’approvisionnement en énergie est limité (comme un chantier de construction), chaque économie d’énergie compte. De même, lors des voyages, où les appareils mobiles sont souvent alimentés par des batteries, réduire la consommation d’énergie peut prolonger l’autonomie de la batterie et réduire la nécessité de recharger fréquemment.
Le Lissage du Trafic pour une Meilleure Maîtrise des Ressources : Ces dernières années, on a vu naître des disciplines comme le FinOps et le GreenOps, qui montrent l’importance d’être capable d’utiliser la puissance du Cloud de manière raisonnée. La synchronisation ouvre une porte à de nouvelles techniques d’optimisation liées à une meilleure maîtrise du provisionnement des serveurs. En particulier, différer la synchronisation aux heures creuses et mettre en place des politiques de quotas pourront permettre d’éviter un surdimensionnement des infrastructures pour mieux absorber les pics de trafic.
La Maîtrise du Cycle de la Donnée : Les conceptions centralisées classiques ont tendance à accumuler les données dans d’énormes systèmes d’information et des bases de données extrêmement puissantes, mais où le cycle des données peut s’avérer complexe et difficile à maîtriser. En particulier, le partitionnement des données en fonction de la notion de propriété et de rôles devient rapidement un problème difficile. L’utilisation de transactions et de verrous est reconnue comme pouvant être énergivore. De plus, la perte de contrôle de l’utilisateur peut mener à une perte d’un partitionnement naturel de la donnée, ce qui induit des difficultés à distinguer les données “vivantes” des données “mortes”. Cette perte de visibilité se traduit souvent par une difficulté à mettre en place des archivages adaptés, alors que l’archivage sur support à basse consommation peut s’avérer très efficace pour lutter contre une dérive de la consommation énergétique des Systèmes d’Information.
Conclusion
En conclusion, le 8ème principe “oublié” de l’éco-conception dans le contexte du “Local First” met en avant la nécessité de concevoir des logiciels qui minimisent leur impact environnemental en réduisant la consommation d’énergie, notamment en évitant l’utilisation de réseaux à haute consommation lorsque cela est possible. L’évolution des techniques de synchronisation et des outils tels que les structures de données collaboratives sans verrous (comme les CRDT) permettent d’envisager une démocratisation des architectures Local First dans les années à venir (voir le projet Daquota.io). Cette génération d’applications éco-conçues via le Local First contribuera à la durabilité et à la responsabilité environnementale des applications informatiques, tout en offrant des avantages tangibles pour l’environnement et les utilisateurs.
(*) Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. Local-first software: you own your data, in spite of the cloud. 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), October 2019, pages 154–178. doi:10.1145/3359591.3359737