La collaboration entre les équipes de développement et de
Transcription
La collaboration entre les équipes de développement et de
Livre blanc La collaboration entre les équipes de développement et de production : un atout pour l'entreprise. Le développement Agile facilite les opérations informatiques dans le cloud. chose de tout à fait révolutionnaire : la capacité à répondre rapidement et efficacement au changement. Une coopération accrue peut faciliter le flux des informations et des connaissances entre les deux équipes : les services informatiques deviennent ainsi plus performants, plus faciles à gérer et à dépanner, plus rentables et plus disponibles. Notez que l'approche décrite dans ce document s'applique aussi bien à un développement Agile que non-Agile (waterfall). Tandis que le cloud est une solution qui a fait ses preuves pour cette approche, l'approche collaborative décrite ici fonctionne également avec des modèles sur site et hybrides. Le cloud est un nouvel état d'esprit, porteur de nouvelles méthodes. Le cloud computing est désormais une réalité. Le déploiement de services basés sur le cloud permet déjà à certaines entreprises d'obtenir des niveaux inégalés en matière d'efficacité, de flexibilité et de réduction des coûts. C'est pourquoi tant d'entreprises adoptent désormais le modèle du cloud. Le groupe Forrester prévoit que le marché global pour le cloud computing passera de 40,7 milliards de dollars en 2011 à plus de 241 milliards de dollars en 2020,1 et selon un sondage récent réalisé par Electric Cloud, 48 % des entreprises déclarent aujourd'hui utiliser ou envisager d'utiliser le cloud computing.2 Cependant, le cloud requiert l'adoption d'un nouvel état d'esprit quant à la manière dont les applications sont développées, déployées, surveillées et gérées. Introduction La collaboration est le thème récurrent du cycle de vie d'une application. A l'étape de préproduction, les méthodologies Agile facilitent la collaboration entre les équipes de développement, les équipes d'assurance qualité et les analystes métiers. Lors de l'étape de production, les équipes d'opérations informatiques collaborent plus étroitement afin d'optimiser la surveillance des applications et les pratiques de gestion. La question qui se pose est donc la suivante : pourquoi y-a-t-il encore tant d'équipes de développement et de production avec un niveau d'interaction si faible ? Après tout, toutes ces équipes ont des connaissances dont les autres pourraient bénéficier. Pourtant, de nombreuses équipes ignorent trop souvent comment travaillent les autres équipes et communiquent très mal, voire pas du tout. La plupart des entreprises réagissent à ce problème en se disant que c'est trop compliqué. Les développeurs doivent déjà pour leur part gérer leurs propres problèmes (certains étant paradoxalement liés aux complexités inhérentes au développement Agile). Quant aux équipes en charge de l'exploitation, elles sont souvent tellement submergées par les tâches de routine qu'elles n'envisagent pas de compliquer encore davantage leur travail. Cependant, les opportunités et avantages d'une collaboration accrue entre ces deux groupes devraient compenser de loin toute inertie à court terme, et les initiatives dans le domaine du cloud computing peuvent faire office de catalyseur pour rapprocher les équipes de développement et de production. Ce livre décrit comment les entreprises peuvent intégrer progressivement des fonctions de développement traditionnelles avec des fonctions d'exploitation conventionnelles, afin de créer quelque 2 En évoluant vers le cloud, les avantages et les exigences de collaboration augmentent. Par exemple, avec le cloud vous pouvez essayer de surveiller des ressources dont vous n'êtes pas propriétaire ; il est donc d'autant plus important de mettre en place des pratiques rigoureuses en matière de surveillance pour identifier la cause précise des problèmes rencontrés. Il peut également s'avérer très difficile pour les développeurs de diagnostiquer et de résoudre des problèmes liés aux applications basées sur le cloud, si les équipes de surveillance des opérations informatiques ne leur fournissent aucune donnée de performances ni d'information sur les utilisateurs. L'équipe en charge de l'exploitation aura aussi du mal à interpréter et résoudre les problèmes des utilisateurs si elle ne connait pas les exigences premières qui ont amené l'entreprise à concevoir l'application. Alors que les entreprises adoptent le cloud, que ce soit via la virtualisation, des modèles hybrides qui marient déploiement sur site et cloud, des clouds privés ou des services de cloud public, elles découvrent que le modèle de cloud combiné à Agile requiert une coopération accrue entre les équipes de développement et de production, car la fréquence des nouvelles versions est plus rapide et l'infrastructure cible plus variée. Les deux sections suivantes décrivent comment il est possible de parvenir à ce niveau de collaboration. Agile peut instiller la valeur de la collaboration. L'émergence des pratiques de développement du logiciel Agile a déjà contribué à un sens plus aigu de la collaboration entre les équipes de développement. Grâce au développement Agile, toutes les parties prenantes deviennent des membres d'équipes actifs plutôt que des spécialistes en silos. Ces équipes multifonctionnelles développent le logiciel de façon incrémentale, itérative et adaptive, et l'approche adoptée permet d'effectuer des tests fonctionnels, de performances et de sécurité complets, ce qui facilite la détection précoce des risques et des défaillances. De plus, les équipes Agile anticipent les changements, de sorte que l'évolutivité est une caractéristique intégrée au logiciel. Figure 1 L'adoption de la méthode Agile améliore le développement. Environnement traditionnel Gestion • Equipes en silos • Contrats de travail définis • Développement du bloc de construction • Documentation lourde • Applications autonomes •R apport mise en production/ application de 1.1 • Equipes multifonctionnelles • Portée flexible • Développement itératif • Rapport mise en production/ application de 1.1 • Logiciel fonctionnel • Applications composites Lorsqu'elle est correctement mise en pratique, l'approche Agile génère très rapidement une valeur ajoutée et accélère le retour sur investissement. De plus, en encourageant le travail d'équipe, les révisions fréquentes, les itérations multiples, l'auto-organisation et la définition des responsabilités, les meilleures pratiques Agile permettent d'offrir rapidement un logiciel de qualité et une approche métier qui aligne le développement logiciel avec les besoins des clients et les objectifs de l'entreprise. Figure 2 L'adoption de la méthode Agile améliore le développement. "Quel effet l'adoption de la méthode Agile a-t-elle sur les caractéristiques de développement suivantes ?" (4 des 5 réponses sont affichées ici, basées sur une échelle de 5 points où 1 = Détérioration significative et 5 = Amélioration significative) $PÄOLRUDWLRQVLJQLƭFDWLYH 3URGXFWLYLWÄ 29% Qualité &RPPHUFLDOLVDWLRQ Coût 51% 35% 16% 37% 56% 9DOHXUDMRXWÄH 7DX[GHUÄXVVLWHGXSURMHW /ÄJÃUHDPÄOLRUDWLRQ 36% 35% 29% 25% 41% 40% Base : 113 décideurs informatiques ayant des connaissances dans les activités de modernisation financées qui ont adopté l'approche de développement Agile Source : Etude réalisée par Forrester Consulting pour le compte de HP, février 2010. 3 Les méthodologies Agile encouragent également une plus grande collaboration entre les équipes commerciales et de développement pour garantir que les applications sont bien élaborées en fonction de use cases business. Cependant, la gestion des applications n'est généralement pas incluse dans les use cases. La façon dont l'application sera gérée et le processus de résolution des problèmes liés à l'application sont très souvent envisagés après coup. En général, l'équipe informatique n'intervient dans les exigences de gestion que lorsque l'application est prête à être déployée vers la production, ou pire, une fois qu'elle a été déployée et a échoué. L'accélération et la fréquence accrue du déploiement des applications signifient qu'il devient de plus en plus important d'inclure la gestion des applications en tant que use case dans les meilleures pratiques de développement Agile. Autrement dit, il existe un besoin imminent pour les opérations informatiques de collaborer de façon plus efficace avec les équipes de développement, afin que les développeurs prennent en compte les exigences de gestion avant que l'application ne soit déployée vers les opérations. De plus, le travail avec l'équipe de développement est essentiel pour déterminer la meilleure voie qui conduira l'application vers la production. Les opérations informatiques ne disposent pas toujours des ressources nécessaires pour prendre en charge une nouvelle application ; elles peuvent par conséquent déployer l'application dans le cloud, ce qui aurait un impact sur le développement et la gestion de l'application. C'est pourquoi, le développement Agile et le cloud computing sont des catalyseurs pour la collaboration précoce entre les équipes de développement et les équipes de production. Une collaboration plus étroite signifie que le déploiement des applications est plus rapide, que l'efficacité des services informatiques en matière de surveillance des applications est accrue et que la résolution des problèmes liés aux applications est également plus rapide. La section suivante fournit des informations détaillées sur la localisation des problèmes et ce qu'il faut changer pour obtenir un sens encore plus accru de la collaboration. Rien ne remplace le monde réel. Les développeurs disposent de connaissances et d'informations qui sont hautement utiles pour les équipes de surveillance des applications du côté des opérations informatiques. Ils ont une connaissance globale des exigences de l'entreprise en termes de conception et de performance, et disposent d'informations détaillées sur la mise en œuvre qui ont un réel impact sur les problèmes de performances dans le monde réel. D'autre part, les équipes de surveillance en production ont accès à des informations essentielles pour les développeurs : des données des utilisateurs en temps réel (trafic des flux de clic, performances des pages, erreurs des applications, sessions des visiteurs sur les applications Web, etc.). Ces données sont importantes car comme les développeurs le savent très bien, les applications de préproduction ne produisent pas toujours les performances escomptées une fois qu'elles ont été déployées vers la production dans un environnement de cloud. La raison : les utilisateurs ne se comportent pas toujours comme prévu. Comment les développeurs peuvent-il savoir quels scénarios d'utilisation doivent être testés s'ils ne disposent pas de la visibilité requise sur le comportement des utilisateurs ? De même, si les équipes de production n'ont pas les connaissances de l'application nécessaires pour répéter les conditions à l'origine des problèmes de performances et pour isoler les problèmes de manière contrôlée, le manque de collaboration représentera pour vous un gaspillage de temps, d'argent et de savoir-faire. Jusqu'à une période récente, il était peu pratique, voire impossible d'obtenir des données sur le comportement des utilisateurs lors de la phase de production. Cependant, de nouveaux outils de gestion des performances des applications permettent à l'équipe de production de surveiller directement les informations de session de tous les utilisateurs pour appréhender leur expérience de l'application. Si les performances sont médiocres ou que les utilisateurs se comportent de manière inattendue, le système peut générer des scripts de test à partir de ce comportement pour renvoyer les résultats au processus de développement de préproduction et de test. Ces informations de retour garantissent que les leçons tirées de l'interaction des utilisateurs améliorent le processus de test, optimisant ainsi les applications dans le monde réel. De même, une approche collaborative et complète de la gestion des performances des applications peut être bénéfique aux équipes de développement et de production. Par exemple, en utilisant des outils de diagnostic et de surveillance communs, les équipes bénéficient d'une vue collective et détaillée des applications, qui permet de détecter rapidement les problèmes, d'établir des diagnostics définitifs et de dépanner efficacement les problèmes de performances. 4 5. Sélectionner des outils qui favorisent la collaboration interfonctionnelle. Il est désormais possible les équipes en charge des applications et celles en charge de l'exploitation d'utiliser des outils intégrés qui permettent la collaboration et le partage d'informations au cours du cycle de vie de l'application. Par exemple, HP propose des solutions intégrées de préproduction telles que HP LoadRunner, HP Performance Center et le logiciel HP Quality Center/Application Lifecycle Management (ALM) Suite, ainsi que des solutions de surveillance de la production notamment le logiciel HP Application Performance Management, pour aider à l'optimisation des performances et la disponibilité des applications en production. Les meilleures pratiques constituent la meilleure approche pour les services informatiques collaboratifs. Même si toutes les entreprises sont différentes et qu'aucune ne part sur les mêmes bases au moment d'effectuer la transition vers un modèle de développement et de surveillance plus collaboratif, quelques directives et principes s'appliquent de façon générale : 1.Identifier un champion parmi l'équipe dirigeante. Toute nouvelle initiative ayant un impact sur les processus stratégiques requiert le soutien mais également l'impulsion proactive et énergique de la part de la direction générale. La réussite de l'initiative dépendra de la capacité du champion à prouver la supériorité de la nouvelle approche par rapport aux limites et aux défis de l'approche traditionnelle en silos. 2.Définir les responsabilités pour la collaboration entre les équipes. L'une des premières tâches qui revient au sponsor de la direction est de désigner un leader ou un groupe d'individus chargé de faciliter la collaboration et le partage d'informations entre les équipes de développement et de production. Cette nouvelle équipe "développement/opérations" doit être constituée de membres divers ayant des rôles variés qui leur permettent de comprendre les problèmes complexes auxquels l'équipe informatique est confrontée. 3.Promouvoir l'importance grandissante de la collaboration auprès des équipes. La communication est l'une des conditions préalables à la collaboration, et la première responsabilité de l'équipe interfonctionnelle est de communiquer dans quelle mesure une collaboration étroite est nécessaire, comment chaque équipe en bénéficiera et quelle sera son impact sur les responsabilités quotidiennes de chacun. Autrement dit, le sponsor doit articuler clairement de quelle manière la nouvelle initiative modifie la vie des équipes informatiques et celles en charge des applications. 4.Etablir une méthodologie cohérente et reproductible. Dans le cadre de l'environnement informatique collaboratif, vous devez vous assurer que les personnes appropriées utilisent les bons outils au moment opportun, afin que toutes les ressources clés, notamment les scripts, les données de surveillance et les données de configuration, puissent être réutilisées. L'objectif est de créer un flux d'informations bidirectionnel vers et depuis les équipes de développement et de production afin que la duplication de l'effort soit réduite et que le partage d'idées, d'informations et de connaissances soit encouragé. Les logiciels HP s'intègrent également avec des logiciels tiers de gestion du réseau et des systèmes, et permettent de renforcer la surveillance de ces systèmes ou infrastructure pour fournir une surveillance des applications de bout-en-bout. Mais surtout, les mêmes scripts que vous développez lors des tests peuvent être utilisés lors de la production à des fins de surveillance des applications et des utilisateurs. Par ailleurs, de nombreuses entreprises peuvent réutiliser leurs licences et qualifications HP existantes au cours de la transition. Ceci n'est qu'un aspect de la solution ALM. En effet, ALM inclut toutes les étapes de la vie d'une application, de sa planification jusqu'à sa gestion en passant par les tests. Pour des informations détaillées, consultez le livre blanc HP intitulé "Integrated Application Performance and Lifecycle Management" (Gestion intégrée des performances et du cycle de vie des applications), ou visitez le site Web hp.com/go/tsconnect/. HP est là pour vous aider ! Que vous ayez déjà opté pour la voie du cloud computing, ou que vous soyez fermement convaincu du modèle sur site ou d'un modèle hybride, un niveau plus élevé de collaboration entre les équipes de développement et de production vous aidera à produire et à maintenir des applications et des services de qualité optimale. HP est prêt à vous aider grâce à son large portefeuille de produits, solutions et services de gestion du cycle de vie des applications (ALM, Application Lifecycle Management) et de gestion des performances des applications (APM, Application Performance Management). HP offre également des logiciels "as-a-Service" (SaaS, Software-as-aService) pour vous aider à ajouter rapidement les services dont vous avez besoin. Nos offres de services peuvent vous aider à identifier et gérer la myriade de considérations politiques à prendre en compte lors de la mise en œuvre, afin que votre projet soit le plus efficace possible, tout en engendrant le moins de perturbation possible. En utilisant nos experts et notre infrastructure prédéployée, vous pouvez récupérer la valeur de votre investissement en quelques semaines. 5 Seagate répartit plus rapidement les problèmes de disponibilité et de performances basées sur le cloud. Seagate Technology, le premier fournisseur mondial de périphériques de stockage, utilise des produits HP et a accru la collaboration entre les équipes de développement et de production pour accélérer le diagnostic et la résolution des problèmes de performances de ses services informatiques basés sur le cloud. Les données d'expérience des utilisateurs, recueillies grâce au logiciel HP Application Performance Management, garantit que les services de cloud fonctionnent comme prévu et permettent à l'entreprise de gérer les niveaux de service (SLA) de cloud computing en déterminant rapidement si l'origine des problèmes est interne ou s'ils sont liés à des systèmes de cloud tiers. Exemples de clients Blue Cross and Blue Shield of Floride réduit les problèmes et incidents liés à son infrastructure. Avec quatre millions de membres, Blue Cross and Blue Shield of Florida dépend de la technologie pour offrir des services à ses membres et médecins. Avec la mise en œuvre des meilleures pratiques HP Application Lifecycle Management, du logiciel HP Application Performance Management et en encourageant une plus grande collaboration entre les équipes de développement et de production, l'entreprise a réduit les incidents stratégiques de 90 % et a constaté une amélioration de 80 % du temps de résolution des incidents. "La modification de nos processus et procédures, la mise en œuvre de HP Application Performance Management et l'utilisation des meilleures pratiques de gestion du cycle de vie des applications nous ont permis de réduire considérablement le nombre d'incidents affectant nos applications stratégiques. Ce changement est bénéfique pour notre entreprise mais ce sont nos clients qui sont les principaux gagnants, parce que lorsque nos applications fonctionnent correctement, nous pouvons leur offrir le service qu'ils attendent et qu'ils méritent." –Victor Miller, Responsable de la gestion des systèmes, Blue Cross and Blue Shield of Florida 6 "Nous ne pourrions pas gérer notre initiative de cloud de manière efficace sans HP Application Performance Management. C'est une solution absolument essentielle car le cloud computing tiers ne nous permet pas de surveiller l'infrastructure. Nous devons nous appuyer sur des données d'expérience des utilisateurs. HP Application Performance Management fournit les meilleurs outils dont nous avons besoin pour nous assurer que nos applications de cloud sont conformes à nos niveaux de service et que tous les problèmes sont répartis rapidement et efficacement." –Steve Katz, Responsable, test et surveillance des performances, Seagate Pour en savoir plus. Pour plus d'informations sur les solutions HP qui vous aideront à évoluer vers un développement et une surveillance des applications du cloud plus collaboratifs et efficaces, visitez les sites Web suivants : www.hp.com/go/agile www.hp.com/go/APM www.hp.com/go/ALM A propos des auteurs Amy Feldman est directeur marketing produit pour la solution HP Software Business Service Management. Elle a plus de 14 ans d'expérience chez HP où elle a occupé divers postes notamment dans les domaines de l'informatique, de l'ingénierie et du marketing. Amy est chargée des programmes de positionnement, de communication, de stratégie et de commercialisation de la solution HP Application Performance Management. Genefa Murphy est responsable solution au sein du groupe HP Software Portfolio Strategy and Architecture. Elle est en contact permanent avec des clients et analystes du secteur, afin d'identifier les tendances les plus récentes qui affectent les clients lors du développement et de la gestion des applications. Genefa utilise ensuite ces informations pour influencer les décisions concernant HP Software et développer les meilleures pratiques pour les clients. 7 1. Sizing the Cloud, Forrester Research, Inc., 21 avril 2011. 2. http://www.techjournalsouth.com/2011/01/survey-says-many-companies-not-fully-using-their-cloud-infrastructure/. Connectez-vous hp.com/go/getconnected Recevoir les avis des spécialistes sur les tendances techniques, les alertes et les solutions HP. © Copyright 2011-2012 Hewlett-Packard Development Company, L.P. Les informations contenues dans ce document sont sujettes à modification sans notification préalable. Les seules garanties relatives aux produits et services HP sont stipulées dans les énoncés de garantie expresse accompagnant ces produits et services. Aucune déclaration contenue dans ce document ne doit être interprétée comme constituant une garantie supplémentaire. HP décline toute responsabilité quant aux éventuelles erreurs ou omissions techniques ou éditoriales. 4AA3-4709FRE, créé en mai 2011 ; mis à jour en mai 2012, rév. 1