{"id":102,"date":"2024-03-10T22:59:06","date_gmt":"2024-03-10T21:59:06","guid":{"rendered":"https:\/\/zoominandout.fr\/?p=102"},"modified":"2024-03-10T23:44:08","modified_gmt":"2024-03-10T22:44:08","slug":"que-vaut-une-application","status":"publish","type":"post","link":"https:\/\/zoominandout.fr\/index.php\/2024\/03\/10\/que-vaut-une-application\/","title":{"rendered":"Que vaut une application ?"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Une chose n&rsquo;a pas une valeur parce qu&rsquo;elle co\u00fbte, comme on le suppose, mais elle co\u00fbte parce qu&rsquo;elle a une valeur.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<cite>Daniel Webster, Discours de 1826<\/cite><\/blockquote>\n\n\n\n<p>R\u00e9aliser et op\u00e9rer une application dans le syst\u00e8me d&rsquo;information implique d&rsquo;allouer des moyens \u00e9conomiques et des \u00e9quipes. En revanche, il est plus difficile de comprendre, voire de mesurer la valeur qu&rsquo;apporte cette application. Et pour r\u00e9pondre \u00e0 cette  probl\u00e9matique, une autre question peut \u00eatre pos\u00e9e : d&rsquo;o\u00f9 vient la valeur de l&rsquo;application ? De l\u00e0, une approche peut \u00eatre pos\u00e9e pour soit optimiser l&rsquo;allocation de moyen pour maximiser la production de valeur (efficience), soit acc\u00e9l\u00e9rer le flux de valeur \u00e0 moyen constant (v\u00e9locit\u00e9) (en fonction de la conjoncture !)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valeur \u00e9conomique<\/h2>\n\n\n\n<p>L&rsquo;application n&rsquo;a pas de valeur en soi. C&rsquo;est son int\u00e9gration dans le syst\u00e8me d&rsquo;information et dans les processus m\u00e9tier qui permet \u00e0 l&rsquo;organisation d&rsquo;op\u00e9rer efficacement et de r\u00e9aliser sa mission, qu&rsquo;elle soit \u00e9conomique ou associative. Comment \u00e9valuer sa quote-part dans la \u00ab\u00a0valeur ajout\u00e9e\u00a0\u00bb de l&rsquo;organisation ?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"540\" src=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/La-valeur-dune-application.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/La-valeur-dune-application.png 920w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/La-valeur-dune-application-300x176.png 300w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/La-valeur-dune-application-768x451.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">L&rsquo;application, vue comme un chainon dans la chaine de valeur<\/figcaption><\/figure>\n\n\n\n<p>L&rsquo;application peut contribuer aux processus d&rsquo;entreprise en r\u00e9alisant une activit\u00e9, en renfor\u00e7ant l&rsquo;int\u00e9grit\u00e9 du processus ou en donnant des indications pour am\u00e9liorer le processus. On peut sch\u00e9matiquement lister ces r\u00f4les : <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Capteur : Capter une donn\u00e9e<\/li>\n\n\n\n<li>Transformateur : Transformer une donn\u00e9e ou la combiner avec une autre donn\u00e9e<\/li>\n\n\n\n<li>Diffuseur : Exposer une donn\u00e9e<\/li>\n\n\n\n<li>Interface : R\u00e9aliser une interaction avec un acteur humain (client, collaborateur\u2026)<\/li>\n\n\n\n<li>Ambassadeur : R\u00e9aliser une interaction avec une autre organisation ou entit\u00e9, dans l&rsquo;\u00e9cosyst\u00e8me de l&rsquo;organisation.<\/li>\n\n\n\n<li>Orchestrateur : Tenir l&rsquo;avancement d&rsquo;un processus et renforcer sa coh\u00e9rence<\/li>\n\n\n\n<li>Pilote : Consolider des indicateurs dans le pass\u00e9 ou des estimateurs dans le futur pour aider au pilotage du processus et \u00e0 son am\u00e9lioration. <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"294\" src=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/role-informationnel-application-300x294.png\" alt=\"\" class=\"wp-image-238\" srcset=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/role-informationnel-application-300x294.png 300w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/role-informationnel-application-768x753.png 768w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/role-informationnel-application.png 956w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><figcaption class=\"wp-element-caption\">Les r\u00f4les informationnels de l&rsquo;application <\/figcaption><\/figure>\n\n\n\n<p>Le processus a une importance (ou criticit\u00e9) dans l&rsquo;organisation qui est \u00e9valuable. En revanche, il est plus compliqu\u00e9 de lui donner une valeur \u00e9conomique : les processus op\u00e9rationnels sont li\u00e9s \u00e0 du <em>cashflow <\/em>tandis que d&rsquo;autres ne le sont pas directement tout en \u00e9tant n\u00e9cessaires au bon fonctionnement (fonction support et pilote). Les d\u00e9marches visant \u00e0 faire ruisseler la valeur \u00e9conomique dans les \u00e9quipes (<em>showback <\/em>et <em>chargeback<\/em>) sont m\u00e9ritantes, mais restent complexes et subjectives. <\/p>\n\n\n\n<p>\u00c9valuer la valeur de l&rsquo;application comme contribution \u00e0 l&rsquo;organisation est une approche certes fond\u00e9e, mais difficile \u00e0 faire. S&rsquo;il est possible de rattacher une application \u00e0 un ou plusieurs processus, comment d&rsquo;une part d\u00e9finir la quote-part de l&rsquo;application dans le processus et valoriser le processus lui-m\u00eame ?<br><br>En revanche, il est possible de d\u00e9finir des indicateurs cl\u00e9s de performance (ou <em>Key Performance Indicator<\/em>, KPI) sur les processus et mettre le co\u00fbt de possession de l&rsquo;application (ou Total Cost of Ownership, TCO) au regard des KPI. Le ratio du TCO sur le KPI (ou une somme pond\u00e9r\u00e9e de KPI) peut donner une indication de la pertinence \u00e9conomique de l&rsquo;application. Par exemple : <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une <em>marketplace  <\/em>prend 5% du chiffre d&rsquo;affaires en commission. Si la marketplace permet d&rsquo;augmenter suffisamment le chiffre d&rsquo;affaires pour compenser la perte de marge unitaire, c&rsquo;est un bon calcul.<\/li>\n\n\n\n<li>Une application de gestion d&rsquo;offre bancaire supporte \u00e0 co\u00fbt constant une augmentation du PNB d&rsquo;un facteur 5. Cela peut motiver \u00e0 reverser une partie des gains \u00e9conomiques pour poursuivre l&rsquo;entretien et la modernisation de cette application. <\/li>\n<\/ul>\n\n\n\n<p>En consid\u00e9rant l&rsquo;\u00e9volution dans le temps du ratio TCO sur KPI, on peut appr\u00e9cier les gains d&rsquo;efficience de l&rsquo;application ou au contraire sa d\u00e9gradation. La maintenance d&rsquo;une application peut d\u00e9gager une performance si l&rsquo;application gagne en efficience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valeur M\u00e9tier<\/h2>\n\n\n\n<p>L&rsquo;application r\u00e9alise des cas d&rsquo;usages (comment ?) autour d&rsquo;un mod\u00e8le m\u00e9tier (quoi ?) avec un niveau de qualit\u00e9 requis (traduisible par les <a href=\"https:\/\/zoominandout.fr\/index.php\/2023\/10\/24\/les-exigences-techniques-lantidote-au-quick-and-dirty\/\" data-type=\"post\" data-id=\"185\">exigences non fonctionnelles<\/a>). Sa valeur est donc fonction de la qualit\u00e9 de l&rsquo;impl\u00e9mentation des cas d&rsquo;usage et de l&rsquo;ad\u00e9quation du mod\u00e8le m\u00e9tier au contexte. <br><br>Quand le cas d&rsquo;usage est bien impl\u00e9ment\u00e9, la cin\u00e9matique propos\u00e9e fluidifie le parcours utilisateur, l&rsquo;exposition \u00e0 l&rsquo;utilisateur est intuitive (en \u00e9cran ou en API) et le comportement du syst\u00e8me est pr\u00e9visible. Quant au mod\u00e8le m\u00e9tier, on cherche \u00e0 disposer d&rsquo;un vocabulaire fonctionnel commun et pr\u00e9cis (<em><a href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html*\">Ubiquitous Language<\/a><\/em>), d&rsquo;une organisation de concept permettant de d\u00e9crire des cas simples, mais aussi des cas avanc\u00e9s de fa\u00e7on \u00e9l\u00e9gante et d&rsquo;une capacit\u00e9 \u00e0 g\u00e9rer l&rsquo;\u00e9cart avec la r\u00e9alit\u00e9.<\/p>\n\n\n\n<p>L&rsquo;application \u00e9volue naturellement avec le mode op\u00e9ratoire de l&rsquo;organisation. Les cas d&rsquo;usage sont donc susceptibles de changer plus vite que le mod\u00e8le m\u00e9tier. Aussi, la valeur issue des cas d&rsquo;usage demande un investissement r\u00e9gulier pour se maintenir. A contrario, l&rsquo;effort sur le mod\u00e8le m\u00e9tier produit une valeur plus durable.  <\/p>\n\n\n\n<p>Le code li\u00e9 \u00e0 la d\u00e9finition et \u00e0 la manipulation du mod\u00e8le m\u00e9tier repr\u00e9sente une part mineure du code. <br><br>Pour illustrer ce point, consid\u00e9rons un composant applicatif qui expose une entit\u00e9 par une API REST. En utilisant <a href=\"https:\/\/www.jhipster.tech\/\">JHipster<\/a>, il est possible de le g\u00e9n\u00e9rer \u00e0 partir d&rsquo;un DSL d\u00e9crivant le mod\u00e8le m\u00e9tier. Cette g\u00e9n\u00e9ration produit une impl\u00e9mentation tout \u00e0 fait honorable :  cache de persistance, internationalisation, contr\u00f4le d&rsquo;acc\u00e8s, tests, interface d&rsquo;administration&#8230; Le DSL repr\u00e9sente seulement 1% de la totalit\u00e9 du code g\u00e9n\u00e9r\u00e9. <br><br>Cette g\u00e9n\u00e9ration automatique d\u00e9montre que la valeur de ce composant d\u00e9pend enti\u00e8rement de ce 1% de code. On pourrait objecter que ce cas est limite. Pourtant, il est observ\u00e9 r\u00e9guli\u00e8rement, bien qu&rsquo;il puisse poser un certain nombre de probl\u00e8mes, \u00e0 commencer par l&rsquo;observation de l&rsquo;anti-pattern, le <a href=\"https:\/\/martinfowler.com\/bliki\/AnemicDomainModel.html\">domaine an\u00e9mique<\/a>. <br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-1024x453.png\" alt=\"\" class=\"wp-image-240\" srcset=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-1024x453.png 1024w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-300x133.png 300w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-768x340.png 768w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-1536x680.png 1536w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster-1200x531.png 1200w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/generation-jhipster.png 1688w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Plan de masse du code d&rsquo;un composant d&rsquo;exposition API REST<\/figcaption><\/figure>\n\n\n\n<p>Dans la production de la valeur m\u00e9tier, on d\u00e9passe la loi de Pareto qui pourrait s&rsquo;exprimer comme \u00ab\u00a020% du code est responsable de 80% de la valeur\u00a0\u00bb. Le ratio est encore plus prononc\u00e9 : quelques pourcents sont \u00e0 l&rsquo;origine de quasiment toute la valeur ! On pourrait appuyer ce propos en consid\u00e9rant que la plupart des fonctionnalit\u00e9s ne sont pas utilis\u00e9es (voir le rapport Chaos \u00e0 ce sujet, m\u00eame si c&rsquo;est une source un peu ancienne.).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"547\" src=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/loi-pareto-1024x547.png\" alt=\"\" class=\"wp-image-243\" srcset=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/loi-pareto-1024x547.png 1024w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/loi-pareto-300x160.png 300w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/loi-pareto-768x410.png 768w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/loi-pareto.png 1191w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">La loi de Pareto appliqu\u00e9e \u00e0 la valeur m\u00e9tier du code.<\/figcaption><\/figure>\n\n\n\n<p>Aussi, la conception est une \u00e9tape cl\u00e9 dans la production de la valeur m\u00e9tier. La construction du mod\u00e8le m\u00e9tier doit \u00eatre pens\u00e9e soigneusement afin de donner \u00e0 l&rsquo;application une fondation solide. C&rsquo;est n\u00e9anmoins une \u00e9tape n\u00e9glig\u00e9e pour \u00ab\u00a0gagner du temps\u00a0\u00bb dans le but de tenir les premiers jalons. Y compris dans une approche agile, la dette sur le mod\u00e8le m\u00e9tier est difficile \u00e0 rattraper. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valeur technique<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>The trouble with quick and dirty is that dirty remains long after quick has been forgotten.<\/p>\n<cite><a href=\"https:\/\/www.azquotes.com\/author\/38834-Steve_McConnell\">Steve McConnell<\/a><\/cite><\/blockquote>\n\n\n\n<p>La qualit\u00e9 de l&rsquo;application se constate par l&rsquo;atteinte d&rsquo;exigences techniques (disponibilit\u00e9, int\u00e9grit\u00e9, s\u00e9curit\u00e9, performance\u2026). Plus le niveau d&rsquo;exigence est \u00e9lev\u00e9e, plus l&rsquo;application se doit d&rsquo;\u00eatre de qualit\u00e9. Le propos semble \u00e9vident. Et pourtant ! Combien de fois attend-on d&rsquo;une r\u00e9alisation en <em>quick and dirty<\/em> une qualit\u00e9 dans l&rsquo;ex\u00e9cution du service ?<\/p>\n\n\n\n<p>La capacit\u00e9 d&rsquo;une application \u00e0 r\u00e9pondre \u00e0 des exigences \u00e9lev\u00e9es (haute disponibilit\u00e9, haute performance, haute s\u00e9curit\u00e9\u2026) est en soi une force. Une conception avanc\u00e9e et un soin particulier dans l&rsquo;impl\u00e9mentation sont alors requis. Des d\u00e9marches de qualit\u00e9 logicielle comme le <em>Software Craftsmanship<\/em> fournissent souvent le substrat culturel de telles organisations.<\/p>\n\n\n\n<p>La valeur de l&rsquo;application peut r\u00e9sider essentiellement dans la qualit\u00e9. Par exemple, des applications peuvent adresser un mod\u00e8le m\u00e9tier concis et des cas d&rsquo;usage simple et supporter des charges de travail importantes avec une grande efficience. Elles permettent \u00e0 leur organisation de baisser les co\u00fbts unitaires des services d&rsquo;une organisation et prendre des parts de march\u00e9.<\/p>\n\n\n\n<p>La qualit\u00e9 de l&rsquo;application peut \u00eatre mesur\u00e9e par un indicateur calcul\u00e9 automatiquement comme la <a href=\"https:\/\/www.thoughtworks.com\/insights\/articles\/fitness-function-driven-development\" data-type=\"link\" data-id=\"https:\/\/www.thoughtworks.com\/insights\/articles\/fitness-function-driven-development\">Fitness Function<\/a>.<br><br>Pour que la qualit\u00e9 compte, il est n\u00e9cessaire de s&rsquo;assurer de son ad\u00e9quation au besoin et donc de qualifier les exigences techniques. \u00c9galement, il convient de mesurer l&rsquo;atteinte des exigences de fa\u00e7on factuelle pendant l&rsquo;ex\u00e9cution du service de fa\u00e7on \u00e0 rendre cette qualit\u00e9 tangible. Sans ces deux conditions, la qualit\u00e9 n&rsquo;est ni reli\u00e9e au besoin, ni rendue cr\u00e9dible aupr\u00e8s des <em>stakeholders<\/em> et donc finit par sortir du contexte de travail. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>La valeur de l&rsquo;application peut \u00eatre consid\u00e9r\u00e9e au travers de 3 axes compl\u00e9mentaires :<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\">\n<li>La valeur \u00e9conomique, d\u00e9finie comme la contribution de l&rsquo;application \u00e0 la performance des processus par la mesure du ratio KPI\/TCO\u202f;<\/li>\n\n\n\n<li>La valeur m\u00e9tier s&rsquo;exprimant comme la concision du mod\u00e8le m\u00e9tier \u00e0 d\u00e9crire le contexte m\u00e9tier et \u00e0 \u00e9voluer avec et aussi l&rsquo;efficacit\u00e9 des cas d&rsquo;usage\u202f;<\/li>\n\n\n\n<li>La valeur technique d\u00e9crite comme la capacit\u00e9 \u00e0 respecter des exigences techniques. <\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"378\" height=\"381\" src=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/valeurs-application.png\" alt=\"\" class=\"wp-image-246\" srcset=\"https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/valeurs-application.png 378w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/valeurs-application-298x300.png 298w, https:\/\/zoominandout.fr\/wp-content\/uploads\/2024\/03\/valeurs-application-150x150.png 150w\" sizes=\"auto, (max-width: 378px) 85vw, 378px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Pour que les applications d\u00e9livrent la valeur attendue, une d\u00e9marche active est n\u00e9cessaire afin d&rsquo;orienter les feuilles de route pour aller chercher plus de valeur et motiver les efforts pour prot\u00e9ger la valeur existante de l&rsquo;entropie et de l&rsquo;obsolescence.  \u00c0 l&rsquo;inverse, quand la valeur de l&rsquo;application n&rsquo;est pas consid\u00e9r\u00e9e, les efforts peuvent \u00eatre dispers\u00e9s dans la multiplication de <em>quick wins <\/em>qui finissent par atteindre la disposition de l&rsquo;application \u00e0 continuer de produire de la valeur et donc sa p\u00e9rennit\u00e9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9aliser et op\u00e9rer une application dans le syst\u00e8me d&rsquo;information implique d&rsquo;allouer des moyens \u00e9conomiques et des \u00e9quipes. En revanche, il est plus difficile de comprendre, voire de mesurer la valeur qu&rsquo;apporte cette application. <\/p>\n","protected":false},"author":1,"featured_media":246,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[20,15],"class_list":["post-102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","tag-application","tag-exigence-technique"],"_links":{"self":[{"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/posts\/102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":11,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":250,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/posts\/102\/revisions\/250"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/media\/246"}],"wp:attachment":[{"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zoominandout.fr\/index.php\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}