Monthly Archives: février 2008

Un bon logiciel… n’est pas un logiciel rapide!

Un logiciel n’a pas besoin d’être rapide… il doit juste ne pas être lent!

Pour cela il suffit juste que le logiciel effectue les taches demandées dans un temps jugé acceptable par l’utilisateur. Et autant l’utilisateur attendra facilement d’attendre quelques secondes pour obtenir le résultat d’un traitement couteux, autant il ne comprendra pas si le logiciel mouline ne serait-ce qu’une seconde a chaque copier/coller.

Le temps qu’un utilisateur est prêt à attendre dépend de ce qu’il considère comme normal. Et cette norme évolue… Prenez la recherche d’un email. Il y a 5 ans, un utilisateur de Microsoft Outlook acceptait d’attendre quelques minutes pour obtenir le résultat d’une recherche visant à retrouver un ancien mail. Aujourd’hui ce n’est plus le cas. Des logiciels comme Lookout ou bien Gmail rendent leur verdict en quelques secondes et ont donc fait évoluer l’attente des utilisateurs.
Donc lorsque vous développez votre logiciel, ayez les mêmes attentes que les utilisateurs en termes de performance. Inutile pour autant d’optimiser toutes les parties du logiciel….

Dragster Lego

Voici quelques conseils pour vous aider à développer un logiciel suffisamment rapide pour vos utilisateurs :

  • Lors de la phase de conception, écartez les architectures qui ne vous permettront pas d’atteindre des performances suffisantes. Dans le cadre d’un logiciel de gestion d’email, par exemple, écartez toutes les architectures qui nécessitent plusieurs minutes pour effectuer une recherche.
  • Lors du développement quotidien du logiciel, ne vous focalisez pas sur la performance. Mais:
    • Procédez à une phase d’optimisation régulièrement (à chaque fois que vous finissez une itération, une fonctionnalité, …). Lors de cette phase d’optimisation, utilisez un profiler pour déterminer ce qu’il faut optimiser.
    • Testez régulièrement votre logiciel avec de gros volumes de données.
  • Si votre logiciel effectue des taches potentiellement longue, affichez une barre de progression ou un indicateur d’activité ainsi qu’un bouton « Annuler » pour stopper immédiatement l’opération. Cela permet à vos utilisateurs d’abandonner une tache si ils la jugent trop lente.
    Et ne faites pas comme certains logiciels qui mettent un bouton « Annuler » mais qui est tellement mal programmé que lorsqu’on appuie dessus, non seulement l’opération ne s’arrete pas et se poursuit jusqu’à son terme, mais en plus embraye ensuite sur une interminable phase d’annulation des modifications effectuées.