Remove ads
De Wikipédia, l'encyclopédie libre
Le développement par l'utilisateur final ou informatique de l'utilisateur fait référence aux activités et aux outils permettant aux utilisateurs — personnes qui ne sont pas des développeurs professionnels — d'utiliser l'informatique, et notamment les outils de l'informatique de l'utilisateur, afin de créer ou de modifier des artéfacts de logiciel (description de comportements automatisés), ainsi que des objets de données sans connaissance significative des langages de programmation.
En 2005, d'après les statistiques du Bureau of Labor Statistics des États-Unis, on comptait plus de 55 millions de développeurs de l'informatique de l'utilisateur aux États-Unis, alors que l'on compte moins de 3 millions de programmeurs professionnels[1]. L'informatique de l'utilisateur est une discipline du domaine de l'informatique et des interactions homme-machine.
Il existe diverses approches de l'informatique de l'utilisateur. Par exemple, la programmation en langage naturel[2],[3], les tableurs[4], les langages de script — particulièrement dans une suite bureautique ou une application artistique —, la programmation visuelle, la programmation par actions déclencheuses et la programmation par l'exemple (en).
Les tableurs constituent l'outil le plus utilisé de l'informatique de l'utilisateur. Peu sophistiqués, ils permettent aux utilisateurs d'écrire des programmes avec des données plus ou moins complexes, sans nécessité d'apprendre des langages de programmation de niveau inférieur[5]. En raison de leur utilisation relativement courante, ils permettent d'écrire des programmes qui représentent des modèles de données complexes, tout en les protégeant de la nécessité d'apprendre des langages de programmation de niveau inférieur. Aux États-Unis, on compte seulement 13 millions de programmeurs de l'informatique de l'utilisateur qui utilisent des feuilles de calcul[6].
La programmation par l'exemple (PBE) réduit la nécessité d'apprendre les abstractions d'un langage de programmation classique, en permettant à l'utilisateur d'introduire des exemples de résultats ou d'opérations à effectuer sur les données. Le système PBE en déduit les abstractions correspondant à un programme qui produit cette sortie. L'utilisateur peut alors introduire de nouvelles données dans le programme créé automatiquement, et corriger les erreurs commises par le programme, afin d'améliorer sa définition.
Les plateformes de développement à faible code sont également une approche de l'informatique de l'utilisateur.
Lieberman et coll. proposent la définition suivante : « L'informatique de l'utilisateur peut être définie comme un ensemble de méthodes, de techniques, et d'outils, qui permettent aux utilisateurs de systèmes logiciels — agissant en tant que développeur de logiciels non professionnels —, à un moment donné, de créer, modifier ou étendre un artéfact logiciel[7]. »
Ko et coll. proposent cette définition : « L'informatique de l'utilisateur est une programmation visant à obtenir le résultat d'un programme principalement à usage personnel plutôt qu'à usage public[8]. »
Les artéfacts définis par les utilisateurs finaux peuvent être des objets décrivant un comportement ou une séquence de contrôle (telles que des demandes de bases de données ou des règles de grammaire), qui peuvent être décrits par certains paradigmes, tels que la programmation par la démonstration[9], la programmation par l'exemple, la programmation visuelle, ou encore la génération macro-définition. Ils peuvent également être des paramètres qui choisissent entre les comportements prédéfinit alternatifs d'une application[10]. D'autres artefacts du développement de l'utilisateur final peuvent également se référer à la création de contenu généré par l'utilisateur final, comme des annotations pouvant être interprétables ou non par calcul.
Les exemples de l'informatique de l'utilisateur incluent la création et la modification :
L'utilisation des appareils mobiles est venue soutenir les activités de développement des utilisateurs finaux. De plus, les applications bureaux ne peuvent être proposées à nouveau du fait des caractéristiques spécifiques des appareils mobiles. On s'interroge sur le fait que l'environnement ne permette pas aux utilisateurs de créer des applications de manière opportuniste, lorsqu'ils sont en déplacement[13].
Plus récemment, l'intérêt pour l'exploitation de l'UDA permettant de soutenir le développement des applications Internet des objets s'est accru. Dans ce domaine, la programmation d'actions déclencheuses semble être une approche prometteuse[14].
Les leçons qui ont pu être retirées des solutions émanant de l'UDA peuvent avoir une influence significative sur les cycles de vie des logiciels commerciaux, sur les développements internes de l'intranet et l'extranet, et sur les déploiements de progiciels de gestion intégrés (PGI).
Une quarantaine de fournisseurs offrent aujourd'hui des solutions destinées aux utilisateurs finaux pour réduire les efforts de programmation. Ces solutions ne nécessitent pas de programmation traditionnelle, et peuvent être basées sur des fonctionnalités relativement étroites, telles que la gestion de contrat, la gestion de relation-client, ou encore le suivi des problèmes et des bogues. Souvent appelées plateformes de développement à faible code, les interactions web guident l'utilisateur dans le développement d'une application entre 40 et 80 heures. Les développeurs peuvent ainsi échafauder des parties génériques d'une application et fournir un code modifiable de qualité, pouvant être inséré, modifié et personnalisé, pour répondre aux besoins des utilisateurs finaux. On les qualifie surtout de plateformes de développement à code faible. Les interactions basées sur le web guident un utilisateur pour développer une application de façon relativement rapide.
Selon Alistair Sutcliffe (en), l'UDA externalise essentiellement ses services de développement à l'utilisateur final. Puisque cela demande des efforts d'apprendre un outil de l'UDA, la motivation des utilisateurs dépend de leur confiance qui va valoriser leur travail, leur permettre de gagner du temps sur leur travail ou d'augmenter leur productivité. Dans ce modèle, les bénéfices apportés aux utilisateurs sont initialement basés sur le marketing, des démonstrations, ainsi que le bouche-à-oreilles. Une fois que la technologie est mise en utilisation, l'expérience vécue grâce aux avantages procurés devient la motivation clé.
Cette étude définit les coûts comme étant des sommes de coûts :
Les deux premiers coûts sont encourus lors de l'acquisition, alors que les deux derniers sont encourus chaque fois que l'application est développée. Les bénéfices (qui peuvent être perçus ou réels) sont vus comme :
Beaucoup d'activités de développement de l'informatique de l'utilisateur sont collaboratives par nature, incluant la collaboration entre développeurs professionnels et utilisateurs finaux Le développement mutuel est une technique par laquelle des développeurs professionnels et des développeurs de l'informatique de l'utilisateur travaillent ensemble dans la création de solutions logicielles. Dans le développement mutuel, les développeurs professionnels "conceptualisent" souvent le système, et procurent les outils permettant à ceux ayant des problèmes, de créer une solution convenable à tout moment pour leurs besoins et objectifs, et pour ceux de l'informatique peuvent souvent stimuler la formalisation ad hoc des modifications par les utilisateurs dans les artéfacts du logiciel, transformant les solutions développées par l'utilisateur en produit aux caractéristiques commerciales, ayant un impact incontestable sur les solutions locales.
Au sein de ces collaborations, de nombreuses approches telles que Software Shaping Workshop[15], sont proposées pour faire un pont entre les développeurs professionnels et ceux de l'informatique de l'utilisateur. Ces approches fournissent souvent une certaine translucidité selon le modèle de translucidité sociale, permettant à chaque collaborateur d'être averti par des changements effectués par les autres, et d'être tenus responsables de ses actions, pour des raisons de sensibilisation.
Outre les collaborations sur le paramétrage des plateformes telles que GitHub, qui sont principalement utilisées par des développeurs experts, en raison de la significativité de leur apprentissage. Les collaborations du DUF se déroulent souvent sur des plateformes Wiki, où les artéfacts des logiciels créés sont partagés. L'UDA est aussi souvent utilisé pour créer des scripts automatiques ou des tutoriels interactifs, afin de partager la connaissance technique. Dans de telles applications, l'utilisateur peut créer des scripts pour les tâches utilisant un langage pseudo-naturel où vient une programmation de la démonstration. Les utilisateurs peuvent choisir de mettre en ligne le script dans un référentiel de script, type Wiki. Sur ce Wiki, les utilisateurs peuvent consulter les scripts disponibles, et étendre ceux déjà existants pour assister les paramètres additionnels, pour manier les conditions additionnelles, ou pour opérer sur des objets additionnels.
Les communautés en ligne et hors ligne des développeurs de l'utilisateur final ont également été formés, de manière qu'ils puissent résoudre, de façon collaborative, les problèmes de développement relatifs aux intérêts partagés ou aux bénéfices mutuels. Dans de tels communiqués, les experts locaux apportent leur expérience, et leurs conseils. Les membres de la communauté fournissent également un appui social à chacun dans la construction collaborative du logiciel[16].
Les commentateurs ont été préoccupés par le fait que les utilisateurs finaux ne comprennent pas comment tester et sécuriser leurs applications. Carren Harrison, professeur de sciences informatiques à l'université d'État de Portland, a écrit[17] (traduction libre) :
« C'est tout bonnement incompréhensible que nous nous attendions à de la sécurité… de la plus grande majorité des applications logicielles diffusées, quand elle est écrite en petit et s'il y'en a une, connaissance de l'acceptation des conditions générales d'utilisation, telles qu'une précision avant de chiffrer, un test systématique, etc. Combien de X, pour des livres destinés à des idiots finis (où « X » est le langage de chiffrage favori), sont en vente actuellement ? Au départ, cette tendance m'amusait, mais récemment, je suis devenu gêné en pensant aux endroits où les amateurs appliquaient cette toute nouvelle connaissance. »
Ce point de vue suppose que tous les utilisateurs soient également naïfs lorsqu'il en vient à comprendre le logiciel, bien que Pilskin et Shoval clament que ce n'est pas le cas. Ces utilisateurs sophistiqués sont capables de contribuer au succès de l'informatique de l'utilisateur. Toutefois, comparés à des programmeurs experts, les programmeurs de l'informatique de l'utilisateur ont rarement le temps ou un intérêt pour la systématicité et la discipline dans le développement des logiciels d'ingénierie, ce qui assure la qualité particulièrement « challengeante » de l'artéfact du logiciel, produit par l'informatique de l'utilisateur.
En réponse à cela, l'étude de l'ingénierie logiciel de l'informatique de l'utilisateur a émergé . Elle est touchée par des problèmes au-delà de l'informatique de l'utilisateur, puisque les utilisateurs sont devenus motivés à considérer les problèmes tels que la réutilisabilité, la sécurité, la vérifiabilité, lors du développement des solutions.
Un scénario alternatif serait que les utilisateurs finaux ou leurs consultants emploient des outils de programmation déclarative qui aident rigoureusement à la gestion et à la sécurité des règles à la charge de la performance et de la flexibilité; les outils créés par l'informatique de l'utilisateur vont typiquement avoir des efficiences moins bonnes que celles créées par les programmeurs professionnels, qui sont, elles, réglementaires. Toutefois, ce qui sépare la fonctionnalité de l'efficience est la séparation des préoccupations, qui peut amener à une situation où les utilisateurs vont compléter l'analyse des exigences et le prototypage logiciel, sans intervention des analystes opérationnels. Ainsi, les utilisateurs vont définir les fonctions requises avant que ces experts n'aient l'occasion de considérer les limites d'une application ou d'une framework. L'appui de la haute direction pour les initiatives de l'utilisateur final dépend de son attitude, existante ou potentielle, vis-à-vis des vendeurs uniques (enfermement propriétaire).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.