Introduction
Ce principe met l'accent sur l'importance d'une communication optimale concernant l'ensemble du projet.
La mise en place d'une organisation d'équipe appropriée et d'environnements collaboratifs efficaces
peut permettre d'atteindre cet objectif.
|
|
Avantages
|
-
Productivité d'équipe
-
Meilleure association des besoins métier, du développement et du fonctionnement des
systèmes logiciels.
|
Pattern
|
-
Motiver les personnes pour qu'elles soient performantes
-
Créer des équipes autonomes.
-
Encourager une collaboration fonctionnelle transversale (analystes, développeurs,
testeurs)
-
Offrir des environnements collaboratifs efficaces
-
Gérer l'évolution des artefacts et des tâches afin d'améliorer la collaboration,
les progrès et la perception de la qualité au sein des environnements intégrés.
-
Intégrer les équipes opérationnelles, logicielles et métier
|
Anti-Patterns
|
-
Encourager les développeurs héroïques prêts à faire des heures supplémentaires et à
travailler les week-ends.
-
Recourir à des personnes extrêmement spécialisées et équipées d'outils puissants,
avec une collaboration limitée entre les différents membres de l'équipe et une
intégration limitée entre les différents outils. En partant du principe que si
chacun fait son travail, le résultat final sera bon.
|
|
Discussion
Les logiciels sont développés par des personnes talentueuses et motivées travaillant en étroite collaboration. De
nombreux systèmes complexes nécessitent une collaboration entre des parties prenantes aux compétences variées et les
projets de grande envergure se caractérisent souvent par des frontières géographiques et temporelles étendues, ce qui
accroît la complexité du processus de développement. C'est pourquoi les questions relatives aux ressources humaines et
à la collaboration -- ce que certains ont appelé l'élément "soft" du développement logiciel -- ont été au centre des
préoccupations de la communauté de développement agile. Sur ce principe, il est nécessaire de répondre aux questions
suivantes :
-
Comment motiver les personnes pour qu'elles soient performantes ?
-
Comment collaborer au sein d'une équipe logicielle distribuée ou partageant un même emplacement ?
-
Comment établir une collaboration entre des équipes commerciales, informatiques et de développement logiciel ?
La première étape permettant d'obtenir une collaboration efficace est de motiver les personnes au sein de l'équipe
afin qu'elles soient performantes. La notion d'équipes autonomes a gagné en popularité au sein de la communauté
agile (voir Concept:
Pratiques agiles et RUP); cette notion se fonde sur la capacité d'une équipe à tenir ses engagements et à donner
ensuite à cette équipe un pouvoir de décision sur les questions influençant le résultat. Lorsque les personnes sentent
qu'elles sont pleinement responsables du résultat final, elles sont beaucoup plus motivées pour travailler. Comme la
déclaration de principes agile le stipule : "Construisez des projets avec des personnes motivées. Apportez leur
l'environnement et le soutien nécessaires et faites leur confiance pour que le travail soit fait."
La deuxième étape consiste à encourager une collaboration fonctionnelle transversale. Comme le dit Walker
Royce, "le développement logiciel est un sport d'équipe." Une approche itérative accentue le besoin d'une équipe à
travailler en étroite collaboration. Il faut briser les barrières qui existent souvent entre les analystes, les
développeurs et les testeurs et élargir leurs responsabilités afin de garantir une collaboration efficace dans un
environnement changeant. Chaque membre doit connaître la mission et la vision du projet.
Au fur et à mesure que les équipes grandissent, il est nécessaire de fournir des environnements collaboratifs
efficaces. Ces environnements facilitent et automatisent le regroupement des métriques et la génération de
rapports d'état ainsi que la gestion de la construction et la tenue des enregistrements en matière de gestion de
configuration. Cette efficacité minimise le besoin de réunions, ce qui libère les membres de l'équipe et leur permet de
passer plus de temps sur des activités plus créatives et plus productives. Ces environnements doivent également
permettre une collaboration plus efficace en simplifiant la communication, en établissant des passerelles dans l'espace
et dans le temps entre les différents membres de l'équipe. Des exemples d'un tel environnement vont des salles de
projet, aux solutions basées sur le Web ou en réseau comme Wikis ou les environnements de développement intégrés et les
environnements de gestion des changements et de configuration.
A mesure que le logiciel devient plus important pour les processus métier de base, le besoin d'une collaboration
efficace entre les équipes se fait sentir. Dans la plupart des organisations, les équipes qui dirigent le métier, qui
développent les applications et qui exécutent les applications ne communiquent pas assez.
L'objectif ultime est donc d'obtenir une collaboration intégrée entre les équipes commerciales, logicielles et
opérationnelles. Dans la mesure où les logiciels deviennent de plus en plus importants pour le fonctionnement
d'une entreprise, il est nécessaire d'établir une collaboration entre 1) les équipes décidant de la manière de conduire
les activités en cours et futures, 2) les équipes développant et prenant en charge les systèmes logiciels, et 3) les
équipes exécutant les opérations informatiques. Dans de nombreuses entreprises, ces trois groupes communiquent peu
entre eux.
|