XXP

mai 2016

lun. mar. mer. jeu. ven. sam. dim.
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« Une API est une UI | Accueil | Une API est une UI »

22 mai 2016

Une API est une UI

Le titre peut sembler bizarre tant le terme "UI" – User Interface – est associé aux interfaces graphiques. Pourtant une API est bien une interface utilisateur : les développeurs sont des utilisateurs (un peu spéciaux) qui interagissent avec des interfaces (un peu spéciales), typiquement un fichier de texte édité dans un environnement optimisé pour cet usage. Les développeurs jugent une API, pratique ou calamiteuse, bien pensée ou tortueuse, tout comme nous jugeons la qualité, l'ergonomie, le côté "évident" d'une interface graphique.

Une API est une UI, et ça n'est pas du détail. Bien au contraire, c'est un point critique à intégrer à toute stratégie de "platformisation" d'un business.

Investir dans la qualité des interfaces

Les avantages d'interfaces graphiques (GUI) de qualité sont bien compris. Les clients-utilisateurs sont satisfaits et fidélisés, l'image de la marque est renforcée, et au final un bon site Web ou une App intuitive deviennent des avantages compétitifs. C'est pourquoi les éditeurs prennent soin d'investir des ressources en amont de la conception du logiciel. C'est le domaine des Web et App designers, experts touche-à-tout à la croisée de l'ergonomie, du look & feel et de la technique. Le nombre de sociétés spécialisées et de livres de référence donne une idée de l'activité autour de cet aspect crucial du software.

Donc pas de doute, les GUI sont conçues avec soin. Dans le cas contraire, les utilisateurs vont voir la concurrence.

Ce soin est encore plus crucial pour les APIs, pour deux raisons. D'abord, elles sont beaucoup moins flexibles que les GUIs, les erreurs ne pardonnent pas. Une interface graphique peut toujours être modifiée, les utilisateurs peuvent s'y adapter. Certes, il peut y avoir quelques grincements de dents si les modifications perturbent trop l'usage habituel d'une App ou d'un site Web – mais ils peuvent s'y adapter. Pour une API, les développeurs "clients" peuvent eux aussi s'adapter. Mais le code déjà livré, fortement couplé à une version précédente, va lui simplement planter. A la différence d'une GUI, quand une API est livrée, c'est pour toujours.

C'est le sujet de la rétro-compatibilité, qui du coup devient parfois le seul moteur de la conception d'API. Malheureusement les APIs conçues avec cet unique objectif sont parmi les plus complexes et les moins intuitives – c'est le mythe de l'API tellement puissante, flexible et générique qu'elle ne demandera jamais de mise à jour... sans doute la pire des APIs du point de vue des développeurs, et un sujet qui mériterait un article à lui tout seul.

Bichonner les développeurs

Comme pour une GUI, l'expérience utilisateur (la user experience des anglo-saxons) devrait toujours être le centre de la conception d'une API. Je suis convaincu qu'une API agréable, facile à comprendre et à utiliser est un avantage compétitif sur le long terme, à l'heure de la compétition féroce dans le domaine des plateformes, où l'on crée des services par assemblage d'autres services définis par leurs interfaces de programmation.

Les développeurs et décideurs techniques, dans un monde "dévoré par le software", sont habilités à choisir ou préconiser : ils décident, directement ou indirectement, maintenant ou un peu plus tard dans leur carrière, quelle API ou plateforme consommer, notamment en fonction de la facilité avec laquelle ils peuvent appréhender une API, mettre en place un prototype et faire une démo, évidement avec des délais serrés – autre raison de soigner la conception des APIs.

En pratique, ce qui marche pour le design d'une GUI doit s'appliquer à une API, toutes deux interfaces homme-machine, la deuxième plus exigeante que la première. Par exemple : avoir une équipe dédiée à la conception indépendamment du codage, s'attacher à identifier les cas d'utilisation visés, de préférence en ignorant les détails du système technique existant, et réunir de vrais feedbacks clients/développeurs lors d'une phase beta.

 

TrackBack

URL TrackBack de cette note:
http://www.typepad.com/services/trackback/6a00d8341c871f53ef01b8d1ea8ce5970c

Listed below are links to weblogs that reference Une API est une UI:

Commentaires

Eh bien, voilà une question qui n'est pas souvent mise sur le tapis. Et vous avez totalement raison. Les développeurs se contentent d'utiliser les API performants sans penser à l'UI de ces API. Alors que ce sont des utilisateurs. Les éditeurs devraient y penser et les développeurs devraient être un peu plus exigeant aussi.

L'utilisation des commentaires est désactivée pour cette note.