Le sens général de "équipe interfonctionnelle" est une équipe qui combine des spécialistes dans différents domaines qui sont nécessaires pour atteindre l'objectif.
Mais il semble que dans Agile, la fonctionnalité croisée signifie non seulement combiner différents spécialistes, mais les faire se mélanger. Henrik Kniberg définit équipe interfonctionnelle de cette façon: "L'interfonctionnelle signifie simplement que l'équipe dans son ensemble a toutes les compétences nécessaires pour construire le produit, et que chaque membre de l'équipe est prêt à faire plus que juste leur propre truc. "
Mais où est tracée la ligne? Est-il normal de demander aux développeurs de devenir testeurs pour une itération si cela est nécessaire?
Mon point de vue est qu'une équipe interfonctionnelle est une équipe qui comprend des personnes des différentes fonctions d'une entreprise: ingénierie, informatique, rédaction technique, marketing, finance, juridique, ventes, RH, opérations, qualité et cadre.
Dans les grandes entreprises, ces "fonctions" sont placées dans des silos (lignes de gestion), mais pour faire avancer les choses, il faut généralement du temps à quelqu'un de toutes.
Si vous faites du TDD ou quelque chose du genre, oui, c'est parfaitement normal.
Cependant, en général, la responsabilité de la signature du travail de développeur ne devrait pas être entre les mains de ces mêmes développeurs.
Une équipe interfonctionnelle est une équipe où des experts fonctionnels de différents domaines se réunissent pour définir quoi construire et pour évaluer si ce qui est construit est utile. Dans un environnement agile, ces évaluations se produisent souvent.
Cependant, les experts du domaine détermineront comment faire leur partie particulière d'un projet. Les développeurs de logiciels développeront des logiciels. Les testeurs vont tester. Les personnes chargées des opérations exécuteront le logiciel, etc.
Avoir des opinions sur le développement, les tests et les opérations est extrêmement utile pour définir un bon produit, et c'est là que réside la valeur des équipes interfonctionnelles.
Une "équipe interfonctionnelle" est à mon avis davantage un groupe de généralistes qui se réunissent pour faire le travail. L'Edge réside dans la polyvalence de la gestion de différents types de tâches, car il n'y a pas le goulot d'étranglement qui se produirait dans un groupe de spécialistes où certaines personnes ne peuvent assumer que certaines tâches.
Oui, il est normal que les développeurs deviennent des testeurs s'il est nécessaire de faire le travail pour une itération.
L'interfonctionnel peut tomber dans ce territoire où c'est un mot à la mode qui peut avoir différentes significations selon l'entreprise. Certains peuvent le considérer comme le niveau le plus élevé, où un développeur peut être n'importe quoi, d'un Gopher à un PDG temporaire et d'autres peuvent le voir beaucoup plus spécialisé de sorte qu'il s'agit de différents types de développeurs utilisés. Un développeur peut parfois être analyste métier, administrateur système ou testeur. Je me souviens il y a quelques années maintenant où je venais de commencer un travail et un autre développeur et je testais une version comme l'une de nos premières tâches car il y avait une pénurie de testeurs à l'époque pour tester correctement la version.
Une bonne équipe interfonctionnelle a et a besoin de gens qui sont "un cric de tous les métiers" mais aussi un maître de certains. Habituellement un ou deux.
Par exemple, sur ceux sur lesquels j'ai travaillé. Je me spécialise en C++ et quelques langages Web, mais j'en connais un million. Je parle couramment le montage vidéo et les médias 3D et ce genre de choses en plus de la gestion des affaires et des projets. Donc, dans cette équipe plutôt petite qui s'occupe de grands projets, je faisais du codage hardcore presque toute la journée et j'en passais une partie à faire un travail de grognement sur le site et à préparer différents médias.
Peu de projets utilisent toutes mes compétences mais s'appuyer sur plusieurs, je pense que c'est de la "transversalité". Parfois, c'est une conception vraiment bonne et efficace, d'autres pas moins.
Dieu merci, quand je n'ai pas besoin d'être développeur/administrateur réseau ... ce n'est pas amusant. Ces petites entreprises de ma région sont folles. Qui fait confiance à leur réseau aux programmeurs, sheesh. La dernière chose que vous voulez, c'est de me voir essayer de "déboguer" votre table de routage: P
Une équipe interfonctionnelle ne se limite pas aux domaines d'expertise mais à l'attitude envers la réalisation des tâches. Les membres se mobilisent et assument les tâches à accomplir. Vous n'entendez pas: "Ce n'est pas mon travail."
Les contraintes d'un projet ne sont pas toujours techniques. Parfois, vous n'avez pas le luxe d'embaucher un expert à chaque tâche et exigez seulement que tout le monde travaille dans son domaine préféré.
Vous ne voulez jamais éloigner les développeurs du codage, mais dans certaines équipes, cela ne peut pas être aidé. La normale est relative.