Vous trouverez sur ce site mes publications concernant les technologies de l'information. Le contenu est disponible en français et en anglais.

lundi, 2 octobre 2006

Le management de projet chez Google

Résumé du billet de Steve Yegge

Un employé de chez Google, Steve Yegge, a posté une description des conditions de travail dites “Agile“ de chez Google.
Je résume ce qu‘il décrit dans ce billet, en omettant le début sur la génése du buzzword “Agile“, sa diffusion et ses incompréhensions.
Steve Yegge donne tout d‘abord quelques faits :

  • “il y a ce que l‘on pourrait appeler des chefs (chez Google) mais la plupart codent au moins la moitié du temps, en ce sens ce sont plus des leaders techniques“
  • “les développeurs peuvent changer d‘équipes ou de projets à n‘importe quel moment et du jour au lendemain, sans que des questions leurs soient posées“
  • “Google a pour philosophie de ne jamais indiquer à ses développeurs leur sujet de travail et cela est un principe de base pris très au sérieux“
  • “Il y a peu de réunions. Un développeur moyen assiste à environ 3 réunions par semaine, y compris le face à face avec son chef“
  • “C‘est calme. Les ingénieurs sont tranquillement concentrés sur leur travail, individuellement ou en petits groupes de 2 à 5 personnes“
  • “Il n‘y a pas de diagrammes de Gantt, des feuilles Excel ou tout matérialisations de planning de projet“
  • “Même pendant les rares périodes de “bourre“, les gens vont toujours déjeuner et dîner et les repas sont célébres pour leur gratuité et qualité, et ils ne font pas des heures démentielles à moins qu‘ils ne le veuillent vraiment”

Il fournit ensuite les principes majeurs de leur management :

L‘encouragement est très important et il peut prendre plusieurs formes. La première est matérielle, par des cadeaux, des services ou tout simplement des espèces sonnantes et trébuchantes. La seconde est sociale, par les revues avec les pairs et les grand-messes trimestriels où les projets sont officiellement lancés et où les équipes sont valorisés (je vois déjà l‘esprit franchouillard rigoler et se moquer de ce genre très américain d‘encouragement…).

Les employés savent donc faire correctement leur boulot et travailler ensemble sans que cela ne nécessite un management très présent et directif. La force de Google est d‘avoir su étendre ces principes de management au fur et à mesure de leur agrandissement.
Néanmoins, la rigueur dans le processus de conception et de construction est bien présente (utilisation des tests unitaires, document de conception, design et code review).

Google part du principe que les estimations de charges, et donc de dates, sont très difficiles. En conséquence ils bannissent le management par les dates de livraison et ne donne aucunes dates de sortie d‘un nouveau service. Les dates qu‘ils imposent par contre sont les grand-messes trimestriels qui concrétisent l‘encouragement social. Les employés sont donc implicitement dirigés par ces dates.

Un des principes est d‘assurer une productivité maximale de leur employés par des conditions de travail idyliques et de la formation en continue (1/5 de leur temps de travail).

En résumé Google donne beaucoup de liberté à ses employés et n‘applique aucunes contraintes, il y a également une attitude généralisée de gratitude envers eux

Mon opinion

Les deux caractéristiques de base d‘un employé sont ses compétences et sa motivation. Chez Google, les compétences sont d‘abord déterminées précisement (cf. le processus de recrutement) puis entretenues et développées (cf. la formation en continue avec 1/5 du temps). La motivation, terrain à mon sens beaucoup plus difficile, et où Google excelle, est assurée par des conditions de travail excellentes, un système d‘encouragement très fort, l‘utilisation des interactions sociales entre geeks. Le prestige du geek parmi sa communauté comme moteur de motivation est ici utilisé pleinement.

Autre caractéristique, et non des moindres : la productivité. Celle ci dépend des deux caractéristiques précédentes, compétences et motivations, mais également d‘un environnement de travail approprié (cf la diminution de toutes contraintes et distractions). Ces trois facteurs, si particulier dans le monde de l‘ingénierie logicielle, semblent être parfaitement maitrisés par Google et ont été mis en cohérence avec l‘interaction de la société avec l‘extérieur (pas de dates de sortie des nouveaux services par exemple).

Un employé de Google doit également savoir travailler en équipe et être particulièrement autonome de par le management en place. Cela commence à faire beaucoup de qualité à posséder d‘où un processus de recrutement très élaboré. Ainsi, celui ci doit permettre de recruter des personnes passionnées par leur métier (des geeks quoi !), autonomes et sachant travailler en équipe. Je suis déjà tombé sur certaines description de leur méthodes de recrutement sur le web (Fiche d'évaluation et Analyse du recrutement chez Google) et elles semblent être effectivement efficace au vu de l‘engouement suscité.

Ce management est très adapté à l‘édition de logiciels et nécessite d‘avoir une bonne trésorerie afin de financer le pool d‘ingénieurs qui travaillent sur des projets rentables à une échéance incertaine.

Google a bien compris que la productivité d‘une équipe de développeur passe par l‘élimination de toutes contraintes dans leur quotidien. Ceux ci ont donc une productivité maximale sans pour autant sacrifier la qualité en conservant un processus d‘ingénierie rigoureux sur les points réellement important (conception, tests, revues). Cela rejoint les billets récents de Joël Spolsky sur la productivité du développeur. J‘aimerais vraiment mettre en place cet environnement de travail et ce management dans mon boulot mais le “culture shock” serait, je pense, trop important…

De même, je pense que Google a une gestion de projet réaliste, c‘est à dire acceptant que les planning sont difficiles à tenir. J‘ai l‘impression qu‘ils utilisent pleinement l‘auto-ajustement dans leur pools de projets. Si un projet est intéressant il sera rejoint par un maximum de ressources. De plus ces ressources seront motivées car ils auront rejoins par eux-mêmes ce projet (cf la théorie de l'engagement par Beauvois et Joule avec une fiche de lecture). Le projet sortira ensuite quand il sera prêt et cela ne sert à rien de vouloir précipiter les choses par du management qui ne fera qu'entraver le travail des développeurs. Néanmoins, une bonne gestion de la file de travail est nécessaire pour que cela fonctionne, ce qui, au passage, devrait être enseigné à tout ingénieur. Cela rejoint les techniques du "Getting Things Done" (une description et des liens sur le GTD, Un démarrage rapide, Un deuxième et la définition sur wikipedia).

Finalement, un passage que j‘ai apprécié est la description de Google comme la fusion entre l‘esprit start-up (vite et simple) et l‘esprit labo de recherche (nouveaux problèmes à résoudre à tête reposé).

Est ce que ces techniques de management sont transposables en tout ou en partie à notre gestion de projet traditionnel dans les SSII françaises pour des applications de gestion ?

Cela nécessite une confiance absolue entre prestataire. Imaginez que vous me confiez un projet et que je vienne vous voir en vous disant que je ne sais pas quand celui ci sera fini mais que mes gars bossent à 100% dessus, cela vous rassure ? On peut bien sûr imaginer quelque chose d‘intermédiaire comme : “votre projet doit faire environ 1500 jours/hommes au total, je vous propose d‘y affecter 10 personnes compétentes avec une productivité parfaite et nous signons des contrats de 3 mois renouvelables suivant la qualité des résultats”. Accepteriez vous de signez avec moi ?

En conclusion

Ce mode de management est pour moi très passionnant car il replace l‘humain au centre du processus de production. Google a bien compris la nécessité d‘un management différent pour produire en quantité du logiciel de qualité. Cela va à l‘encontre également des souhaits d‘industrialisation du logiciel où les ressources sont interchangeables, distantes et donc moins cher, les processus rigides (vive le cycle en V), etc.
C‘est intéressant car je viens de finir ce billet et je tombe sur celui de Jean-Michel Billaut qui relate la sortie d‘un bouquin sur ce sujet.

Technorati Tags:

Posted at 10:49 PM in fr/Management/
portage salarial freelance