Les saltimbanques de l'informatique

10Jul07

Les informaticiens qui travaillent dans l’industrie du jeu vidéo sont parfois vu comme les saltimbanques de l’informatique. Cependant, cette industrie incorpore depuis longtemps des concepts organisationnels et de management dont feraient bien de s’inspirer les autres pans de l’informatique. D’ailleurs, on parle bien depuis quelques temps d’une “industrie” du jeu vidéo alors qu’on en est toujours à du “développement” web.
Voici quelques exemples de pratiques utilisées dans le jeu vidéo et que je m’efforce d’appliquer dans le développement web.

La chaîne de production

Sur le développement d’un jeu vidéo, et sur un logiciel d’une manière générale, peuvent travailler plusieurs “corps de métier” différents. Comme des architectes, des développeurs, des graphistes, des ergonomes, des designers, etc. Ils ouvrent tous dans un seul but : réaliser le logiciel. Cependant, ils utilisent tous des outils différents, éventuellement des plateformes différentes et produisent des contenus différents. Il s’agit pour le maître d’oeuvre du projet (le chef de projet ) d’assembler ces différents contenus afin qu’ils forment le logiciel. Ce processus étant assez long et semé d’embûches, on ne va pas attendre la dernière semaine du projet pour l’exécuter. Et c’est là qu’intervient le concept de “chaîne de production”. On utilise alors un logiciel en place qui prend toutes les ressources du projet et les assemble en un tout cohérent (ceci ne veut pas dire exempt de bug) qu’on doit pouvoir utiliser immédiatement. On appelle ce processus une build. Et cette chaîne de production doit être “vivante” tout au long de la vie du projet. Ainsi, dès qu’un graphiste produit une image, on a défini une procédure qui lui permet de déposer cette image au bon endroit et que la prochaine build intègre son travail afin qu’il puisse tester le logiciel final en voyant son contenu incorporé.
Le logiciel utilisé pour mettre en place cette “chaîne de production” est (souvent) appelé “plateforme d’intégration continue”. Pour Ruby on Rails, nous utilisons actuellement CruiseControl.rb. On retrouve aussi ce concept dans le précis “Capistrano et le cycle de vie des applications Rails” que j’ai récemment traduit pour les Éditions O’Reilly.

Outils

Les discussions d’informaticiens concernant la performance ou la mesure de certains processus sont souvent peuplées d’idées préconçues et de faux-semblants. Afin de baser ses réflexions sur des assertions solides, il faut donc avoir des chiffres obtenus en situation réelle, c’est-à-dire dans la situation actuelle. Et pour ce faire, il est nécessaire d’avoir de bons outils, aptes à la situation actuelle. Ceci signifie qu’il sera souvent nécessaire d’écrire ses propres outils pour un projet donné. Même si on ne pourra pas forcément réutiliser ses outils sur d’autres projets, l’expérience se faisant, on pourra se constituer une bibliothèque d’outils et de bonnes pratiques applicables à l’écriture de nouveaux outils adaptés à la nouvelle situation.
Dans le cadre du développement web et de Ruby on Rails, de simples tâches “rake” accompagnés de quelques fichiers de fixtures, peuvent faire office de très bons outils.

Bonus

Un projet informatique est avant tout une oeuvre de l’esprit. Ainsi, il est une oeuvre de l’esprit du client et du prestataire. Ces deux visions peuvent parfois s’entrechoquer, par manque de professionnalisme parfois, mais surtout parce que, par définition c’est une oeuvre de l’esprit et que notre esprit change ou peut être influencé. Ainsi donc, on a souvent vu des projets informatiques exploser les délais annoncés au départ. Afin que le projet se terminent quand même dans les temps et avec une qualité acceptable, les employés du jeu vidéo perçoivent parfois un bonus de fin de projet, lorsque le jeu est mis à la vente. Ce bonus étant calculé en fonction de l’implication de chacun et des ventes du jeu. Ainsi donc, les parties prenantes du projet sont associés aux risques et aux bénéfices du projet.

Voici donc quelques aspects du monde du jeu vidéo qu’il serait intéressant d’exporter un peu plus dans les autres domaines de l’informatique. Vous remarquerez d’ailleurs que ces concepts existaient d’ailleurs bien avant dans le monde du bâtiment (prime de fin de chantier par exemple). Si vous en connaissez d’autres, n’hésitez pas à en parler dans les commentaires.

PS : merci à Whirly pour ses éclaircissements



No Responses Yet to “Les saltimbanques de l'informatique”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: