Comment réussir ma démarche DevOps dans le cas d’un développement externalisé ?

L’atout de base du DevOps est le renforcement de la collaboration entre deux groupes traditionnellement isolés : l'équipe chargée du développement, et les équipes opérationnelles.

Selon Gartner, les ventes de logiciels permettant d’accompagner la démarche DevOps devrait connaître une croissance de 21% cette année. Du fait de la transformation numérique, celle-ci devrait toucher 25% des 2000 plus grandes entreprises mondiales en 2016. Il est donc important de rappeler les principes fondamentaux de ce concept clé dans le cadre de l’économie des applications.

Les délais de mise sur le marché et la satisfaction client sont les principaux éléments à prendre en compte dans un modèle économique orienté applications. Dans DevOps, il y a le mot « Dev », mais aussi le mot « Ops ». L’atout de base du DevOps est donc le renforcement de la collaboration entre deux groupes traditionnellement isolés : l'équipe chargée du développement, et les équipes opérationnelles.

 

Ce rapprochement a lieu dans un contexte d'automatisation renforcée et repose sur :
- l'adoption de principes de développement « Lean »,
- l'établissement de critères de réussite tels que les taux d'erreurs passées inaperçues
- et l'instauration d'une culture d'ouverture et de confiance par laquelle les origines de bugs et de problèmes de déploiement peuvent être partagés sans crainte.

 

Le principe du DevOps est de faire la chasse aux problématiques d'inefficacité. Amener les différentes équipes impliquées à collaborer au sein même d’une entreprise nécessite un effort considérable. Quand il s’agit d’intégrer dans ce processus des partenaires, la démarche relève d’une gageure. Même si le développement est confié à un tiers, il est essentiel de créer rapidement de nouvelles versions d’applications sans que cela n'ait d'impact pour l’entreprise. Benjamin Wootton, cofondateur chez Contino (société de conseil sur DevOps), définit le contexte en affirmant : « Bien que le développement et l'exécution d'applications soient les affaires d'organisations différentes, il est nécessaire pour elles de collaborer avec plus d'efficacité. Aujourd'hui, il est difficile de développer une application sans savoir comment elle sera déployée, utilisée, maintenue et mise à niveau.  Parallèlement, faire tourner une application complexe développée avec une approche moderne sans aucune connaissance du code interne de cette application est un véritable challenge. La frontière entre code d'application et infrastructure est de moins en moins évidente. »

 

Il est donc nécessaire de motiver autant les collaborateurs que les partenaires de façon à les encourager à collaborer ensemble pour transformer et améliorer les processus. Si une entreprise donnée entame une démarche DevOps, il est cruciale qu’elle :

- Développe une culture collaborative basée sur des objectifs communs,
- Récompense l'efficacité en matière d'innovation et d'introduction proactive de nouvelles approches,
- Identifie parmi ses partenaires et collaborateurs les évangélistes du DevOps
- Encourage le travail d’équipe pour améliorer les processus, les comportements et la culture de développement (nouvelles versions),
- Examine l'alignement entre le responsable de la fourniture d'applications chez votre partenaire et le responsable de la gestion des versions,
- Organise des réunions entre l'ensemble des chefs d'équipes internes (y compris des équipes de test) et les responsables du développement des applications,
- Mette en place un processus commun relatif au cycle de livraison de logiciels, des meilleures pratiques, et les technologies nécessaires pour éviter les erreurs humaines dues à la redondance de tâches manuelles grâce à l'automatisation,
- etc…



Par ailleurs, les applications constituent de plus en plus de points d'entrée et donc de risques potentiels, ce qui rend l’approche coopérative dans le cadre du développement d'applications cruciale. Les partenaires ne peuvent plus se permettre de rester dans leur filière et se contenter d'accomplir ce que l’entreprise attend d'eux de leur côté. Il est important de casser les silos afin de les intégrer davantage dans le processus et encourager l’interaction entre les équipes internes et externe.

Les approches d'automatisation DevOps telles que l'automatisation de la production de versions, la virtualisation des services ou encore le provisionnement d'environnements grâce au modèle Infrastructure as code ont certes une grande valeur ajoutée dans ce contexte, quelle que soit l'organisation en charge de la création et de l'exécution. Cela dit, la création d’un « Centre d'excellence DevOps » mettant en commun les connaissances et compétences des uns et des autres ainsi que les meilleures pratiques des équipes en interne et celles des partenaires est également une initiative qui porte ses fruits.

Partenaires et DevOps ne sont pas deux éléments incompatibles. L'important est de créer une relation collaborative basée sur les indicateurs de performances et des encouragements adaptés, et de continuer à stimuler l’interaction à tous les niveaux.