Ma montée en compétences sur Azure DevOps

testAzure DevOpsApplication Lifecyle managementGestion de projetContrôle de versionsProductivitéDéveloppement d'applicationsCloudPlateforme collaborativeAutomatisationTraçabilitéIntégration
Rachida Bièche H’Midouche - 27/05/2019 à 17:03:250 commentaire

Vous avez dit Ajeur what ???? Mon esprit commençait à dériver vers un ciel bleu azur, une plage de sable fin… Hellllooooo ! Microsoft Azure DevOps… Oh… Ah… OK..

Je n’avais jamais entendu parler d’Azure Devops avant mon entretien avec Cédric ce 19 novembre 2018. Cédric me parle de manière passionnée de cet outil DevOps, je l’écoute religieusement sans avoir la moindre idée de ce qu’il me dit. J’en retiens uniquement qu’il s’agirait là d’un outil formidable, selon Cédric…., de gestion de projet de développement informatique. 


Lors de ma première mission post-reconversion, nous utilisions des méthodes « archaïques » de développement et de mise en production avec divers outils non intégrés. Avant ma reconversion en informatique, lorsque j’étais en charge de la gestion de projets Osint, j’utilisais ConceptDraw, que je trouvais pas mal du tout par ailleurs… Pour ceux qui ne connaissent pas cet outil, ConceptDraw est un outil collaboratif de gestion de projets sur le Cloud qui permet la gestion des ressources (humaines et financières), la gestion de l’échéancier, du suivi, de l’analyse et du reporting de la progression du projet.

Alors, je m’interroge, qu’est-ce qu’Azure pourrait m’apporter de plus que ConceptDraw dans ce contexte de développement d’applications ?


source


Hum, think think think… La réponse ne tarda pas à tomber quelques semaines plus tard….

La prononciation anglaise d’Azure continue de me faire sourire... Ajeur DevOps…. Je suis à mille lieues d’imaginer la puissance de cet outil.


source


Alors, qu’est-ce qu’Azure DevOps ?

Azure DevOps est un outil de gestion du cycle de vie d’une application, de sa conception, tout du long de sa création / développement, de son déploiement et jusqu’à son retrait éventuel.

Ceci dit, Azure DevOps est bien plus qu’un outil, c’est aussi une vision. Une vision, selon laquelle les exigences d’une application évoluent en permanence notamment au travers des besoins métiers et d’idées pour de nouvelles opportunités. Une vision qui place les parties prenantes externes à l’équipe de développement au cœur du processus de développement de l’application en affinant leurs exigences et en leur procurant un feedback régulier sur les implémentations. Une vision selon laquelle, le travail de l’équipe de développement se poursuit au-delà de la livraison de l’application, pour résoudre les problèmes de production notamment, voire développer des versions ultérieures en tenant compte des feedbacks des utilisateurs finaux.


source


C’est bien beau tout cela, et concrètement qu’est-ce que ça donne ?

Ben concrètement, avec Azure DevOps, je peux gérer l’ensemble des aspects suivants qui sont inhérents à la gestion du cycle de vie de mon application :


1.     Le contrôle de versions

Aspect incontournable dans le développement d’une application à l’échelle d’une équipe, Azure DevOps permet la mise en place de systèmes de contrôle de versions et fournit tout un certain nombre de best practices qui ont trait à la gestion des branches de développement (i.e. création, fusion, suppression etc.) éventuellement au travers de processus de builds automatisés.


source


2.     Le développement d’une application qui répond aux attentes des parties prenantes

Comment s’assurer régulièrement que nous développons la bonne application qui répond aux attentes et exigences des parties prenantes ? Azure DevOps, permet d’intégrer les parties prenantes tout au long du cycle de vie de l’application grâce à plusieurs outils intégrés qui permettent de nouer un dialogue régulier et ce, avant même le début du processus de développement. L’idée sous-jacente est de minimiser la quantité de travail à reprendre en livrant de la valeur en continu sur un mode itératif et incrémental, tout en permettant aux parties prenantes d’accéder aux spécifications et en les invitant à fournir des feedbacks réguliers aussitôt que des bouts de fonctionnalités sont développés.


source


3.     La gestion de projet à proprement parler

Je peux gérer mes ressources humaines, le planning de mon projet selon la méthode de développement Agile, procéder à la définition de mes spécifications fonctionnelles eu égard aux recueil et analyse des besoins du client, procéder au découpage des charges de travail et en suivre la progression et bénéficier de tout un ensemble d’outils de suivi des work items et de pilotage de mon projet ainsi que de reporting.


source


4.     Le développement de l’application

Azure DevOps, c’est aussi une solution de stockage de mon code source qui inclue l’historique des modifications effectuées. Je peux également définir des règles / politiques d’intégration continue qui forcent la revue du code par un membre de l’équipe avant sa fusion afin de s’assurer de sa qualité.


source


5.     Les Tests

Avec Azure DevOps, je peux mettre en place un certain nombre de tests manuels voire automatisés. Je peux notamment mettre en place des tests fonctionnels et des tests de charge.


source


Avantages compétitifs

Les principaux éléments de différenciation d’Azure DevOps eu égard à ses concurrents sont à mon sens :

  • Application unique qui permet la gestion du cycle de vie d’une application de A à Z dès sa conception, pendant la phase de développement et de déploiement et jusqu’à son retrait éventuel. Fini donc les copiés/collés d’un outil à l’autre avec leurs lots de problèmes d’intégration et de perte de temps.
  • Plateforme collaborative qui permet de répondre à la problématique des équipes dispersées sur le plan géographique grâce à ses outils intégrés de communication, de reporting et de rédaction de spécifications claires au travers d’une gestion multi-supports (photos, vidéos, etc.).


source


  • Traçabilité du travail tout au long du cycle de développement (contrôle de versions, suivi des work items, tableaux de bord de gestion du projet, reporting, etc.)
  • Automatisation du système de builds permettant un accroissement de la fréquence des intégrations réduisant ainsi la part de l’inconnue et de l’imprévisibilité. Ceci procure également un meilleur contrôle et suivi du travail dès les spécifications et le recueil des besoins, durant les changements de code source et jusqu’aux builds qui contiennent ces changements.
  • Règles de fusion du code permettant d’énoncer des règles afin d’empêcher l’intégration de code qui ne répond pas aux exigences de programmation telles que définies dans les policies mises en place.


In a nutshell

S’il fallait que je résume en deux points, les aspects d’Azure DevOps qui m’ont le plus subjuguée, je dirais :


1.     Productivité

Je pense réellement qu’un bon usage de l’outil permet d’accroître la productivité de l’ensemble de l’équipe au travers de

o  La collaboration, tout en étant centralisés et accessibles à tous : les spécifications, les tâches, les bugs, les test cases, code source, code review, builds, reporting, feedback, etc.

o  La gestion de la complexité en la découpant de manière granulaire.


source


2.     Intégration

La communication avec l’ensemble des parties prenantes au projet est améliorée, régulière et constante grâce

o  Aux outils intégrés qui permettent d’envoyer directement à partir d’Azure DevOps des demandes de feedback, les jeux de tests, la liste des spécifications / besoins et bien plus encore

o  A la Visibilité, qui permet une visualisation facile et customisable des indicateurs de pilotage du projet afin de gérer de manière proactive des problèmes et en permettant l’identification de tendances / patterns


source

Commentaires :

Aucun commentaires pour le moment


Laissez un commentaire :

Réalisé par
Expaceo