Je viens de terminer la lecture de Peopleware (DeMarco, Lister) et j'ai fait des recherches sur Extreme Programming (XP) un peu avant. Selon moi, les deux approches sont presque exclusives l'une de l'autre.
Peopleware suggère d'isoler les programmeurs de toute perturbation et définit la priorité sur le travail ininterrompu afin d'aider les programmeurs à réaliser le flux. XP propose en revanche d'assurer autant de communication que possible, suggérant même aux programmeurs de "s'asseoir ensemble", de coder par paires et de travailler généralement dans la même pièce (générant beaucoup de bruit).
Ces deux écoles de pensée concurrentes sont-elles peut-être l'une d'elles prouvées bonnes / mauvaises ou y a-t-il un compromis efficace? Je peux voir les arguments des deux parties, mais je ne vois aucun compromis raisonnable.
Je suis très nouveau dans l'étude de la gestion du développement logiciel, il est donc possible que je ne comprenne pas quelque chose. Tous les commentaires sont les bienvenus.
PS En tant que mini-question supplémentaire, en tant que programmeur, que trouveriez-vous plus productif?
la source
Réponses:
Vous avez manqué le point avec Peopleware. Nulle part le livre ne suggère d'isoler les programmeurs dans des bureaux individuels, mais de les regrouper en 2 à 4 personnes par bureau.
La raison principale est d'isoler les programmeurs du bruit non lié à la programmation, comme le vendeur qui crie au téléphone, le bavardage entre le directeur et le secrétaire, le bruit généré par les personnes en mouvement, la sonnerie du téléphone, les portes qui claquent, etc.
Extreme Programming est entièrement compatible avec un bureau 2 à 4. Pour faire une programmation en binôme, vous êtes 2 ou 3 max.
la source
Je pense que les deux approches décrivent une stratégie de travail générale, mais pas nécessairement chaque minute de travail dans une journée. Un équilibre doit exister.
Soyez suffisamment proche pour permettre une communication rapide, mais retirez-vous dans une zone isolée lorsque la discussion est terminée et que le travail réel doit suivre.
Personnellement, je trouve que «s'asseoir ensemble» et «générer beaucoup de bruit» pendant tout le temps ne fonctionne pas. Il y a du temps pour parler pour discuter des problèmes, décider des prochaines étapes et ainsi de suite, puis il y a du temps pour coder et les gens doivent avoir des zones calmes pour le faire.
la source
La clé est la phrase «isoler les programmeurs de toute perturbation et donner la priorité au travail ininterrompu». La chose prioritaire est claire dans XP lorsque les histoires sont sélectionnées à chaque itération pour être les plus précieuses. Les clients doivent s'efforcer d'avoir un ensemble d'histoires "stables", sans trop changer d'avis au milieu de l'itération (cela peut arriver, mais cela devrait être des cas particuliers, pas la norme).
La partie "isoler les programmeurs" est la plus délicate. Cela signifie que les programmeurs devraient faire ce qu'ils font le mieux: Programmer. Pour que XP fonctionne, les programmeurs doivent être placés dans un environnement où ils se concentrent uniquement sur l'achèvement des histoires, sans frais généraux externes comme les réunions, les appels téléphoniques, les petites faveurs et autres. Cela peut être accompli soit en plaçant chaque paire de programmeurs dans leur propre bureau, soit en plaçant tous les programmeurs dans une salle de guerre où personne d'autre ne peut entrer sauf en cas de nécessité absolue.
la source
Personnellement, je trouve IMPOSSIBLE de travailler en binôme avec quelqu'un, même si j'apprends de cette personne. Peut-être que c'est juste pour que certaines personnes (c'est-à-dire moi) fonctionnent mieux de manière plus "classique" (entrer dans la zone, silence, etc ...).
Ou peut-être est-ce le fait que XP est principalement implémenté dans les boutiques de développement Web dans lesquelles les gens portent de nombreux chapeaux et au lieu de résoudre des problèmes difficiles dans un domaine (par exemple, optimiser un morceau de code), ils passent du temps à trouver une solution déjà existante pour un problème non très difficile intellectuellement (par exemple, intégrer un panier à la page, etc.).
Pour quelque chose comme ça, travailler en binôme, beaucoup de communication, etc. pourrait être le seul moyen d'aller de l'avant efficacement (vous n'allez pas passer X heures juste pour trouver ce module d'envoi d'e-mails Joomla! / Droopal bug, êtes-vous ?)
la source
Oui, XP est complètement incompatible avec Peopleware et les bonnes pratiques de développement logiciel. Peut-être avez-vous besoin de vous rafraîchir avec la section avant de continuer?
http://code.scottshipp.com/2017/03/22/open-office-plans-excerpt-from-peopleware/
Le tableau 8-1 en bas le décrit assez bien, l'entrée finale étant la torpille ultime.
Dans un bureau de plusieurs personnes, il n'y a physiquement aucun moyen d'éviter cela. L'unité du conjoint de quelqu'un l'appelle et même si la personne sort après avoir répondu, vous êtes toujours interrompu par la réponse. Quelqu'un essaie d'être poli, va prendre un café et appelle pour voir si quelqu'un veut quelque chose.
N'oublions pas le codeur qui met les écouteurs et augmente le volume pour que vous puissiez toujours l'entendre à 6 pieds de distance ou pire encore, se sent obligé d'utiliser un stylo / crayon pour tambouriner avec une section d'un `` grand air ''. Oh, et si vous avez la malchance d'avoir un seul fan de sport travaillant dans l'informatique, ils sont tous gonflés.
"Oh! Avez-vous vu le match d'hier soir? !!!! Et cet APPEL !!!! Étaient-ils aveugles ?? !!"
Eh bien, vous obtenez l'image.
XP par définition précoce est 2 programmeurs et un clavier. C'est une méthodologie vraiment adaptée uniquement pour la plongée en profondeur sur les corrections de bugs difficiles à trouver, pas pour le développement de logiciels à grande échelle. Les concepts Open Plan et Team Room violent les recherches effectuées dans Peopleware.
la source