Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Qu'est-ce qui fait la beauté d'un logiciel ?
D'après un bloggeur, cela n'a rien à avoir avec la technologie et la beauté du code source

Le , par Michael Guilloux

0PARTAGES

1  3 
On a l’habitude de discuter de la beauté d’un code ou d’une architecture logicielle. Mais il s’agit d’un aspect que ne voit pas l’utilisateur final pour lequel le logiciel est développé. Suite à plusieurs débats interminables sur ce sujet, on peut résumer que la beauté d’un code peut être définie par plusieurs critères. On peut rappeler entres autres, la clarté du code, le style d’écriture c’est-à-dire le nommage, l’utilisation intensive ou limitée de commentaires, les espaces, etc. Certains développeurs associent parfois la beauté du code à la performance. Bref, il s’agit d’une appréciation subjective qui est souvent liée à la technologie utilisée, mais là encore il s’agit d’un aspect que les utilisateurs finaux ignorent totalement.

Ce que les utilisateurs finaux voient, c’est l’interface utilisateur. Et ce qu’ils peuvent apprécier, c’est la convivialité du logiciel, comment est-ce qu’il leur permet de résoudre leurs problèmes et combien agréable c’est d’interagir avec le logiciel. Si les codeurs ont un penchant pour le code, c’est le logiciel qui compte pour les utilisateurs. Il est alors important de se demander ce qui caractérise un logiciel capable d’emballer les utilisateurs, étant donné que c’est par leur appréciation que l’on peut définir le succès du logiciel.

Pour le bloggeur Ole Lensmar, un beau logiciel est difficile à caractériser mais c’est quelque chose qui doit respecter les critères d’intégrité, d’utilisabilité et d’innovation.

« Un beau logiciel résout un problème, et il le fait mieux que tout autre », a écrit Lensmar. L’intégrité veut que le logiciel soit sans relâche fidèle à son objectif, c’est-à-dire le problème à résoudre. Il ne doit s’écarter ni à gauche, ni à droite pour flirter avec d’autres fonctionnalités. Il doit également rester fidèle à son « ton » avec l’utilisateur.

Selon le bloggeur, « un beau logiciel vous enseigne la danse, même si vous êtes nouveau à la musique ». Il dit cela pour faire allusion à l’utilisabilité. En d’autres mots, le logiciel doit être capable de guider l’utilisateur à travers les tâches à accomplir sans aucune ambiguïté, tout « en minimisant les risques d’un malentendu ou une mauvaise utilisation de ses fonctionnalités ». Il simplifie l’utilisation pour les utilisateurs moyens, mais permet également aux utilisateurs avancés d’exploiter son plein potentiel sans aucun problème.

En ce qui concerne l’innovation, Lensmar ne parle de nouvelles fonctionnalités comme on pourrait toute de suite le penser. Pour lui, un beau logiciel n'a pas peur de résoudre les problèmes dans de nouvelles façons. Autrement dit, il doit être flexible de sorte à permettre à l’utilisateur de résoudre un problème d’une manière différente de la façon dont il résout habituellement le problème. Cela doit être le genre de logiciel capable d’ouvrir les yeux de l’utilisateur sur de nouvelles opportunités, qui existaient déjà mais dont l’utilisateur n’était pas au courant.

Une chose est de définir ce qu’est un beau logiciel, mais c’en est une autre de pouvoir en arriver là. Pour Ole Lensmar, la technologie et la qualité du code ne suffisent pas pour créer un beau logiciel. Ce qu’il faut, c’est « une véritable vision du produit, nourrie par son créateur, le propriétaire du produit et l'équipe produit », et cela ne peut pas être exprimé dans un carnet de commandes ou traduit par une expression de besoins des utilisateurs. Le développeur doit aimer ses utilisateurs et investir dans leur interaction avec le logiciel.

Source : Smartbear

Et vous ?

Qu’en pensez-vous ?

Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Jitou
Membre averti https://www.developpez.com
Le 07/07/2015 à 9:13
Un solution logicielle pourra être dotée d'une implémentation "sexy" selon le développeur mais comme déjà souligné ce qui importe au final ce sont le gain de productivité apporté pour l'utilisateur et la maintenabilité future de la solution.

Beaucoup de développeurs oublient qu'une fois développé un logiciel va vivre et être utilisé probablement quotidiennement. Cet aspect peut facilement être éludé car la plupart du temps le développeur n'échangera jamais avec les utilisateurs finaux au cours du développement du projet, son intervention se terminera définitivement à la livraison du projet et il repartira alors sur un autre projet chez un autre client. Certains problèmes d'implémentation et/ou de conception rencontrés au court du développement et impactant la maintenabilité ne seront pas résolu par gain de temps d'autant que le projet sera confié vraisemblablement à un prestataire qui alors héritera des malfaçons.

De ce point de vue, certain clients peuvent regretter l'époque révolue des "services informatiques internes" d'avant la main mise des SSII sur le marché, et dans lesquels les développeurs étant aussi des experts fonctionnels investis dans leur mission et surtout très proches des utilisateurs finaux.

Mon expérience m'a montré que dans 90% des projets l'utilisateur final n'a pas participé à la définition du projet, ni à la recette (souvent réalisé par une société de service tierce). Enfin la maintenabilité future reste un préoccupation largement sous évaluée. Croyez moi le client fini par payer très cher son projet ... il y a beaucoup de négligences que l'on se permet dans les projets informatiques qui seraient rédhibitoires dans d’autres industries.

5  0 
Avatar de Amnésix
Membre à l'essai https://www.developpez.com
Le 04/07/2015 à 12:54
Effectivement, si on se place du côté du développeur ou de celui de l'utilisateur, on aura certainement une définition différente de ce qu'est un beau logiciel. Je suis développeur mais j'ai été sensibilisé (et essaie de le resté) à l'aspect pratique de ce que je développe vis à vis de l'utilisateur final. Après tout, c'est pour ce dernier que je travaille (et aussi pour gagner de l'argent si on se veux plus bassement terre à terre).

Mais un autre aspect doit-être pris en considération. Les clients pour qui je travaille on souvent des demandes d'évolutions, il peut aussi y avoir des bugs (personne n'est parfait). Et je ne suis pas forcément disponible (vacances, déplacement...). Il faut donc que le code soit lisible, facilement compréhensible pour quiconque aurait à le maintenir. C'est un aspect extrêmement important il me semble.
4  0 
Avatar de vinmar
Membre confirmé https://www.developpez.com
Le 06/07/2015 à 9:22
Citation Envoyé par martopioche Voir le message
Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...
C'est ce qu'on appelle le design :

Le design est la création d’un projet en vue de la réalisation et de la production d’un objet (produit, espace, service) ou d’un système, qui se situe à la croisée de l’art, de la technique et de la société.
Source : https://fr.wikipedia.org/wiki/Design

Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ?
J'en vois des exemples tous les jours : une belle voiture (qui peut-être considérée comme un outil), une scie sauteuse avec une poignée ergonomique et une belle gueule, un stylo, un bleu de travail, etc. C'est ce qui te pousse à acheter telle ou telle marque.

La beauté d'un logiciel se définie peut-être en fonction des yeux au travers desquels il est vu.

Pour ma part, je suis développeur et j’exècre les logiciels moches au niveau de l'interface utilisateur même si le code est propre. Tu auras beau avoir un chassie de Porche, si tu a la carrosserie d'une Traban, ce ne sera pas beau.

Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?
Un logiciel est beau lorsqu'il répond au besoin + accompagné d'un design [voir définition plus haut] qui apporte une vraie plus value + un code stable, solide et conforme aux règles utilisée par l'équipe qui le développe => comme ça tout le monde est content à son niveau.

Et comme dit lankoande : "On ne pourra jamais s'entendre, c'est trop subjectif."
4  0 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 06/07/2015 à 13:29
L'utilisateur ne voit pas un logiciel mais un produit.
Cela change tout...

On ne s'émerveille pas devant la motorisation d'une voiture (bien que) ou bien de son système d'air conditionné.
Par contre on s'émerveille du rendu final et de son utilisation.
3  0 
Avatar de pcaboche
Rédacteur https://www.developpez.com
Le 06/07/2015 à 15:12
Citation Envoyé par shaynox Voir le message
Alors, mais à quoi bon faire tout ce micmac pour au final n'avoir qu'un logiciel ... tout ça pour n'avoir que cette récompense -_-
Citation Envoyé par transgohan Voir le message
L'utilisateur ne voit pas un logiciel mais un produit.
Ce sont souvent les petites choses (comme du code bien écrit et un bon environnement de travail) qui font parfois la différence entre un bon développeur qui reste dans la boite, et un bon développeur qui se barre en se disant "de toute façon, c'est partout pareil alors je vais dans cette boite car le salaire est meilleur / ça fera bien sur mon CV...".

Et parfois, il se barre au pire moment (ex. quand on est sur le point de démarrer un gros projet) et on n'arrive pas à le remplacer au pied levé.

Et sans bon développeur, pas de bon produit...

Citation Envoyé par transgohan Voir le message
On ne s'émerveille pas devant la motorisation d'une voiture (bien que) ou bien de son système d'air conditionné.
Par contre on s'émerveille du rendu final et de son utilisation.
C'est justement ce soucis du détail qui fait la différence entre un bon et un mauvais produit.
3  0 
Avatar de phil_tema
Membre régulier https://www.developpez.com
Le 17/09/2015 à 14:56
Cela me fait repenser à une citation de Marcel Dassaut : "Si il est beau, il volera bien !".

De mon point de vue :
Il est très important de soigner l'IHM, même pour un logiciel "simple". Cela met en confiance l'utilisateur et il sera + tolérant avec les nouvelles contraintes d'utilisation
que le soft peut engendrer (essayez par exemple de déloger un collègue qui a toujours fait du Fortran depuis 20 ans pour l'envoyer sur Matlab...

L'utilisateur voit l'extérieur du soft. Pour l'intérieur, c'est au développeur de se débrouiller, par n'importe quel moyen. Evidemment, cela n'empêche pas de coder avec
pertinence et prendre en compte les évolutions potentielles, les mises à jour, les corrections de bugs... mais ce n'est pas le problème de l'utilisateur !

Dans mes premiers développements, je m'attachais aux fonctionnalités, peu ou pas à l'IHM. Puis j'ai été confronté à des clients (au sens business) qui utilisaient un produit
développé par ma boite (pilotage de vérins hydrauliques + acquisition de données, le tout sous DOS): 90% des remarques étaient liées à l'IHM, les 10% restant à des performances
et/ou fonctionnalités Hard. Le hard avait été bien pensé, pas l'IHM. Nous avons rapidement corrigé le tir sur l'IHM : explosion des ventes ! Aujourd'hui encore, certains logiciels
tournent encore (si si !) et les clients reconnaissent que "ça avait de la gueule pour du DOS !"

Nous avions une chance dans notre boite : un débogueur fou ! Un collègue spécialiste des manips foireuses à la souris, en mixant les clics et les touches, les mouvements
de fenêtre dans des endroits improbables, tout en appuyant sur les touches pourries, genre ESC... Il nous en a trouvé pas mal !

Pour la version Windows, nous avons lancé un sondage chez tous nos clients avant d'attaquer le développement : encore une fois, 90% des remarques concernaient l'IHM.

Depuis, j'essaye de "penser" comme un utilisateur avant de coder : qu'attend-il du logiciel ? comment lui simplifier la vie ? Quelles sont les évolutions possibles qu'il demandera ?
C'est imparable.

Un beau logiciel est un logiciel qui fonctionne bien, robuste et qui répond au cahier des charges.

Ce n'est que mon avis !!!
3  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 04/07/2015 à 15:34
L'utilisateur final déteste se qui n'est pas universelle.

Les logiciels qui n'ont pas un thème classique par rapport l'os (Nvidia GeForce Experience par exemple), sa agace l'utilisateur.

Moins c'est exotique (l'interface graphique ou les ligne de commande a rentrer), plus c'est beau. C'est ma définition.

Chez Apple ils l'ont bien compris, l'interface de MacOS n'a pas énormément changée en 10ans.
3  1 
Avatar de psychadelic
Expert confirmé https://www.developpez.com
Le 04/07/2015 à 23:30
pff..

Si les utilisateurs avaient réellement du gout, le sens de l'esthétique et de la qualité, ça se saurait.
et ce n'est uniquement pour le monde des logiciels que cette "grande question" se pose...
2  0 
Avatar de martopioche
Membre éclairé https://www.developpez.com
Le 05/07/2015 à 1:12
Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...
5  3 
Avatar de pcaboche
Rédacteur https://www.developpez.com
Le 06/07/2015 à 7:57
Citation Envoyé par Michael Guilloux Voir le message
Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?

Citation Envoyé par ???
Always code as if the person who ends up maintaining your code will be a violent psychopath who knows where you live.
2  0