Archive pour août 2010

Innover dans une SSII

CMMI a pour vocation la capitalisation, l’homogénéisation des pratiques, afin que tous les projets fonctionnent pareil, et afin d’avoir le même niveau de pression sur chaque projet. C’est louable, mais cela me semble un peu limité en terme d’innovation : les chefs de projets appliquent les pratiques officielles, et ne vont pas tous chercher beaucoup plus loin. Les experts diront, à juste titre, que les règles CMMI sont configurables selon le contexte.

Inversement, j’ai récemment répondu à un twitt de @bcourtine qui demandait s’il fallait rentrer dans subversion les fichiers de conf de Eclipse, i.e. s’il fallait que les environnements de tous les membres de l’équipes soient identiques, s’il fallait uniformiser ces environnements de développement. Je pense que oui, je pense que l’équipe doit échanger sur les pratiques et se mettre d’accord (dans le cadre du projet précis qui lui est confié). Je pense aussi que c’est un pré-requis indispensable à la construction de scripts ou d’outils de productivité innovants, parfois propres à chaque projet. Il a très bien détaillé son point de vue sur son blog.

J’en reviens à mon délire sur le personnage de l’Oracle. Il faut que les membres de l’équipe, des équipes, puissent s’exprimer, apprendre, inventer, tester, construire. Pas seulement pour leur motivation, cela importe aussi pour leur éducation et donc leur valeur.  Il faut aussi qu’ils échangent, qu’ils confrontent, qu’ils partagent. Est-il vraiment indispensable de leur offrir de ce fait un ennemi commun, la direction de projet qui n’y connait rien ?

Peut-être cela a-t-il aussi à voir avec l’artisanat logiciel. L’artisant est un expert, mais aussi un designer et quelqu’un qui organise toute sa production pour concilier les pôles de son activité : produire de la valeur et de la qualité, tenir ses engagements de budget et délai, innover car le marché innove.

Croire que l’on peut appliquer pendant des années des pratiques vieilles de plus de trois ans et des socles techniques aussi agés me semble une douce illusion.

CMMI n’est pas incompatible avec l’innovation. Ce qui est incompatible c’est l’idée anti-agile que la nature des innovations ne peut venir que d’en haut. L’innovation vient des échanges et de la confrontation au terrain, ainsi que de la confrontation aux idées passées et présentes. Cela n’est pas possible si chacun bosse dans son coin. Cela n’est pas non plus possible si la direction n’alloue jamais de budget pour tester ou capitaliser un test reussi.

Agilité et 2.0

L’agilité et le web 2.0 ont certaines choses en commun.

Je pense en particulier au renversement des choses. C’est l’équipe qui prend la main sur certains aspects dévolus jusque là au chef de projet. Pour le web 2.0 c’est le visiteur du site (le client) qui alimente une partie du site (commentaires, …). Dans les 2 cas, il y a un courant issu de la base vers le haut.

Il y a par ailleurs une vision très pragmatique des choses, démocratique. On vote pour estimer une user story. On vote pour qualifier l’intérêt de tel ou tel produit.

Maintenant, les sites qui ont du 2.0 ne sont pas que cela. La publicité, le contenu éditorial ou marchand continuent d’exister, mais l’adéquation est plus grande.

De même, le projets agile ont un budget, des sponsors, des contraintes. C’est juste qu’ils se passent mieux, qu’ils atteignent mieux leurs objectifs.

Quand je parle d’agilité à des non informaticiens ils me regardent avec des yeux ronds : comment avez-vous pu imaginer procéder différement si longtemps ?

Le filtre du temps

Nous avons la sensation qu’il y a une évolution globale au sujet de l’informatique, grace à internet. Avenement de l’agilité. Craftsmanship, etc…

Pourtant il ne faut pas oublier que nous évoluons nous mêmes dans le temps. Par exemple j’ai débuté comme développeur, puis chef de projet, puis architecte, puis… A chaque époque (à chaque contexte ?) ses outils, ses préoccupations. Le même article me parlera différemment maintenant et par le passé. Comment même savoir ce qu’il m’aurait apporté dans le passé ?

Tout ce que je peux dire c’est ce que j’ai trouvé sur internet pour les développeurs à l’époque où je l’étais, puis pour les chef de projet à l’époque où je l’étais, …

J’ai la sensation d’une évolution, mais qui a évolué : le monde ou moi ?

Ca me fait penser à Héraclite (?) : Un même homme ne peut pas se baigner 2 fois dans le même fleuve. La deuxième fois ce n’est plus le même homme ni le même fleuve.

Matrix

Rassurez-vous je ne vais pas faire une n+1ème métaphore sur la base de la pillule bleue (ignorance) et de la pillule rouge (lucidité). Je voudrais évoquer un autre aspect de Matrix, le personnage de l’Oracle.

Elle fait partie du système, mais elle est là pour que les humains s’intègrent au système, pour qu’ils aient la sensation d’avoir leur mot à dire, d’être maîtres de leur destin, tout en revenant dans le giron du système à la fin.

Cet “empowerment” des humains me fait penser à l’agilité, et au rôle du chef de projet dans un contexte agile. Au final, il faut que les choses soient faîtes, que les contraintes soient respectées. Pourtant, les décisions doivent venir de l’équipe.

Cela vaut aussi pour le recrutement ou l’encadrement dans une SSII. Il faut que le collaborateur s’y retrouve, qu’il ait la sensation de progresser. Et pourtant il faut que les choses soient faîtes, que les contraintes soient respectées.

La beauté du personnage de l’Oracle est qu’elle croit sincèrement oeuvrer pour le bien commun, malgré ses contradictions. Et vous ?

Oath of Non-Allegeance

Après le manifeste agile, la déclaration d’interdépendance, l’artisanat logiciel : le serment de non allegeance

Quand faire de la conception

Lors de son entretien bi-annuel, un jeune développeur me disait ne pas savoir quand il était sensé faire de la conception. Il ne voyait pas trop à quoi ca pouvait servir.

  • Moi : Comment tu fais pour coder ?
    • Lui : Quand je démarre une tâche de développement, je me lance sans conception et ça marche très bien.
  • Lui : pourtant j’ai lu “Coder proprement“.
    • Moi : Regarde la notion de design patterns, lis le gof (ou un autre bouquin plus récent sur la notion de patterns)
  • Moi: Comment font tes collègues ?
    • Lui : Ils font de la conception (diagrammes sur papier) avant de se lancer.
    • Moi : Il y a des gens qui raisonnent “visuellement”, d’autres différemment. Peut-être est-ce ton cas ?
  • Moi : Regarde la conception émergente. (Etape par étape, sans anticiper)
    • Lui : Mais ce n’est pas de la conception si tu le fais pas avant
    • Moi : Tu le fais au fur et à mesure. Ca marche. J’ai réussi comme ça à implémenter des choses vraiment compliquées en très peu de temps.


Blog Stats

  • 3,151 hits

Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 111 followers