Augmenter la productivité des développeurs de 30 % tout en réduisant les coûts des projets de 25 %. Cela semble impossible, mais c’est pourtant un objectif réaliste pour les entreprises adoptant le FinOps (Financial Operations), une approche reposant sur les données pour mesurer les coûts du cycle de vie du développement logiciel;
Concilier responsabilité financière et innovation technique avec le FinOps
Après avoir observé de près la manière dont l'adoption du FinOps peut transformer la productivité des développeurs et optimiser les coûts du cloud, on ne peut être qu’un fervent adepte de cette approche. En effet, l'utilisation du FinOps pour établir une superposition entre les équipes financières, de produits et d'ingénierie est la solution idéale pour les directeurs financiers et techniques souhaitant atteindre leurs objectifs de réduction des coûts.
Alors que les entreprises investissent de plus en plus dans le cloud, la gestion des coûts liés à ces services n'est plus seulement un défi technique, mais devient un impératif stratégique. Le FinOps apporte en effet de la transparence financière nécessaire au modèle de dépenses variables liées au cloud. Il est donc important de comprendre les avantages du FinOps et les étapes à suivre pour la mise en place des méthodologies FinOps dans les flux de travail opérationnels.
Faire le lien entre les domaines techniques et financiers
La création d’un modèle FinOps repose sur la traditionnelle méthode de la carotte et du bâton. La première partie consiste à encourager un environnement plus collaboratif et transparent, alors que la seconde revient à blâmer les équipes de développement pour leurs dépenses jugées trop importantes, ce qui conduit souvent à un effondrement des processus. Il est alors important d’aller au-delà du simple contrôle de l'utilisation des ressources du cloud et de l'impact de cette utilisation sur les résultats de l'entreprise, en tenant compte de ce dont les développeurs ont besoin pour faire leur travail.
La réussite d'un programme FinOps ne requiert pas nécessairement une équipe de spécialistes dédiée à temps plein. Le FinOps sert de liaison stratégique entre les différentes équipes d’une entreprise, telles que la finance, les produits et l'ingénierie. Un programme FinOps typique comprend différents rôles et fonctions. Par exemple, un directeur technique ou un vice-président de l'ingénierie, un responsable financier et un ou plusieurs responsables de l'ingénierie peuvent collaborer régulièrement pour évaluer les problèmes, identifier de nouvelles manières d’optimiser l'efficacité et élaborer des plans de correction.
En alignant les opérations techniques sur les objectifs financiers, les entreprises s'assurent que les investissements dans l'infrastructure cloud et le développement de logiciels génèrent un rendement optimal. Ainsi, les équipes de DevOps peuvent prendre conscience de la contribution directe de leur travail à l'augmentation du chiffre d'affaires, de la manière dont elles peuvent réduire les coûts, voire des deux.
Améliorer la gestion financière
Le FinOps analyse la consommation des ressources aussi bien du point de vue utilisateur qu’opérationnel afin d'aider à optimiser les flux de travail des développeurs. Il est alors possible d'analyser chaque tâche d'intégration continue (CI) afin d'identifier celles dont le coût est disproportionné par rapport à leur valeur ou à leur fréquence d'exécution.
Tout processus de développement logiciel contient de nombreuses tâches, chacune nécessitant une source de données telle qu'une machine virtuelle (VM) ou un container. Plus l'exécution de la tâche est longue, plus le coût est élevé. Les développeurs ont d’ailleurs tendance à négliger le réajustement des pipelines de développement d'applications une fois qu'ils sont en activité. Sans un modèle FinOps pour les aider à identifier les tâches peu performantes, ils ignorent souvent ce qu'il est préférable de réajuster.
Idéalement, le FinOps crée un modèle en libre-service qui permet aux équipes de DevOps d'effectuer leur travail dans le cadre d'un ensemble de directives prescrites. Par exemple, une politique peut interdire à des collaborateurs de provisionner des ressources d'une valeur de 100 000 euros sur AWS, mais ils peuvent en revanche créer une image EC2 pour effectuer des tests. Cependant, s'il peuvent justifier de leur besoin de provisionner des ressources d'une valeur de 100 000 euros, ils doivent tout d'abord soumettre une demande expliquant en quoi le projet est susceptible de générer des revenus pour l'entreprise. Si celle-ci est approuvée, ils pourront ensuite débuter leur travail.
Améliorer le contrôle et la transparence des coûts
Il est important de rassurer les professionnels du DevOps : le FinOps ne constitue pas une entrave à l'innovation. Sa mission est, au contraire, de fournir une visibilité complète sur l'utilisation du cloud et les dépenses de l'entreprise afin d'identifier les opportunités d'amélioration de la productivité du cloud.
Lors du lancement d’un parcours de FinOps, les premières discussions permettent de déterminer des mesures de base (telles que les dépenses liées au cloud) et d'identifier d'autres mesures génératrices de revenus ou permettant la réduction des coûts grâce à la gestion de la chaîne de valeur. Ces conversations sont essentielles pour le FinOps, puisque cette approche permet d'évaluer comment les équipes et les ressources sont organisées et allouées, et quels processus et outils peuvent être mis en œuvre pour favoriser le changement.
Au-delà de la collaboration entre les équipes financières, technologiques et commerciales, le FinOps permet d'analyser les schémas d'utilisation et de prévoir la demande. Ce qui permet d'anticiper la nécessité d'augmenter ou de réduire les ressources pour répondre aux besoins futurs, avant d’engager des dépenses excessives.
Atténuer les tensions
Les équipes chargées de l'ingénierie et des opérations se livrent à un bras de fer permanent. Les équipes d'ingénierie ont pour mission d'innover pour générer de nouvelles sources de revenus en créant des expériences exceptionnelles pour les clients. De leur côté, les équipes opérationnelles doivent, quant à elles, se concentrer sur la maximisation de la productivité tout en réduisant les coûts. Le FinOps permet d'apaiser les tensions entre les deux parties. En trouvant un équilibre entre l'amélioration de la productivité des développeurs et la réduction des dépenses liées aux projets, le FinOp concilie efficacité technique et vigilance financière.
Le FinOps permet aux équipes de DevOps de se projeter avec des chiffres précis, et non à l’aide de coûts supposés. Il est impératif de considérer le développement de logiciels avec une compréhension claire de son impact financier sur l'entreprise afin de prendre des décisions éclairées sur la poursuite du projet. Pour cela, les équipes peuvent se poser ces deux questions : le projet augmentera-t-il les revenus ? Permettra-t-il de réduire les coûts ?
Le FinOps ne consiste pas seulement à réduire les coûts, mais permet également d'optimiser l'ensemble du cycle de vie du développement logiciel. Son objectif final est d'aider les ingénieurs et les responsables des opérations à considérer l'efficacité financière au même titre que l'innovation technique, afin de mieux comprendre comment leur travail contribue à l'amélioration des résultats de l'entreprise.