dimanche 3 février 2013

Créativité et développement logiciel

Je pense être quelqu'un de créatif. J'aime m'adonner à des activités dans ce sens : dessin, écriture, musique... et développement logiciel. Ce qui me plait dans le fait de développer : on ne part de rien physiquement, juste d'un besoin ou d'une idée et on construit un programme qui fait quelque chose tout seul, nous aide dans à réaliser nos tâches de façon plus efficace et moins fatigante ou nous divertit. Pour réaliser cela, il faut une sacrée dose de créativité et d'inspiration.
Peut-on pour autant avancer qu'un programme informatique est une œuvre d'art ? Personnellement, j'aimerais bien mais je ne pense pas qu'on puisse aller jusque là... Un programme doit être avant tout utile. Serait-ce de l'artisanat ? Autant j'adhère à la philosophie des craftsmen qui nous incite à penser que la réussite en tant que développeur se fonde sur l'acquisition d'un savoir-faire qui se transmet entre pairs, autant je trouve que le revers de la médaille est l'évocation d'un truc un peu désuet en prenant l'image de l'artisanat. Attention, je n'ai rien contre les artisans : un objet ouvragé par un artisan va être fonctionnel et témoigner de la maîtrise d'un savoir faire, avec un côté authentique et ancestral. L'orfèvrerie ou la tannerie sont des exemples d'artisanat. Les productions sont de bonne qualité, de bonne facture et en même temps, on voit que c'est de l'artisanat, c'est fait main. C'est d'ailleurs ce qui nous touche.
Est-ce cela que nous voulons en tant que développeurs ? Je ne pense pas. Nous voulons aussi du beau dans un sens industriel : nous voulons du design. Apple surfe sur cette vague depuis maintenant un paquet d'années (même depuis l'Apple 2 en réalité). Il s'agit d'instituer la relation avec l'utilisateur, l'ergonomie et le design comme base du produit, avant même la partie ingénierie.
Est-ce que cela sacrifie la fonction ? Évidemment non : dans le design l'objet est certes fait pour être beau mais cela ne servirait à rien s'il n'était pas avant tout fonctionnel. Exemple : vous êtes-vous déjà assis dans une chaise Philippe Starck ? Quand on la regarde on remarque avant tout sa ligne élégante. On décide alors de s'asseoir dessus et là, c'est le choc : elle est aussi génialement confortable !
Je pense que c'est vers cet objectif que devrions évoluer en tant que développeurs : partir de l'utilisateur, lui proposer un bel objet qu'il aura goût et plaisir à utiliser. Passé le premier a priori positif, le programme doit remplir parfaitement sa fonction, de façon efficace. Sans surprise.
Rappelons-nous que le développement logiciel coûte extrêmement cher. Prouvons donc notre valeur en permettant à nos utilisateurs de vivre une expérience agréable, sinon inoubliable. Notre créativité devrait être déployée dans ce but.

Edit : 
1. On s'éloigne un peu du sujet, mais en parlant de Starck, voici un lien vers son talk à l'USI 2012. J'en profite pour corriger son nom que j'ai lamentablement écorché.
2. Tant que j'y suis, j'ai fait quelques corrections.