• Aucun résultat trouvé

Augmenter la vélocité Agile avec l usine-service sur Azure

N/A
N/A
Protected

Academic year: 2022

Partager "Augmenter la vélocité Agile avec l usine-service sur Azure"

Copied!
19
0
0

Texte intégral

(1)

Augmenter la vélocité Agile

avec l’usine-service sur Azure

Jean-Louis Lalonde, Ing., M.Ing.

Président et Chef de la direction Groupe AZUR

Avril 2015

Montréal, Canada

(2)

Notre expérience nous a permis de le constater à maintes reprises : les organisations qui migrent vers le nuage réalisent des économies en matière de technologies de l’information. Elles voient une baisse des dépenses associées à leurs centres informatiques et une

diminution de leurs besoins en personnel. L’assistance technique pour les systèmes en nuage requiert moins d’efforts; les utilisateurs du nuage peuvent donc consacrer une plus grande part de leur budget de TI aux nouvelles initiatives. Les économies, ainsi que les avantages stratégiques que constituent la vitesse, l’évolutivité et l’agilité sont de forts arguments pour le passage à l’informatique en nuage.

De nombreuses organisations font aujourd’hui face au défi de remplacer leurs systèmes vétustes par une véritable solution d’infonuagique permettant de profiter de tous les avantages du nuage, plutôt que de n’effectuer qu’une simple migration. Les sociétés doivent atteindre cet objectif sans pour autant y consacrer des sommes disproportionnées.

Pour y parvenir, elles ont besoin d’une méthode agile de développement de logiciels plus rapide, qui les rendra plus concurrentielles, en beaucoup moins de temps.

Voici l’usine-service (FaaS : Factory as a Service), une innovation du Groupe AZUR qui permet d’augmenter de façon importante la vélocité de la méthode agile. L’usine-service automatise plusieurs des tâches les plus fastidieuses et longues de la méthode agile. Elle transforme la façon dont les entreprises font le développement de logiciels pour la plateforme Microsoft Azure.

Exemple typique : un projet de complexité moyenne, d’une durée de 24 semaines (8 sprints). L’utilisation de l’usine-service XI-Factory™ a permis de générer automatiquement 93 033 lignes de code (LDC), comparativement à 20 978 LDC développées manuellement. Cela représente en moyenne 6 fois plus de points de récits d’usagers générés que ce qui a été développé manuellement (1630/264). Si ces points de récits d’usagers n’avaient pas été générés automatiquement à l’aide des modèles de code de haute qualité écrits par nos experts, les membres de l’équipe auraient dû écrire eux-mêmes le code des récits d’usagers, ce qui aurait prolongé le projet de plusieurs mois. Communiquez avec nous pour savoir comment nous pouvons accélérer l’exécution de votre projet.

SOMMAIRE

EXÉCUTIF

(3)

De nombreux systèmes maison patrimoniaux seront bientôt

chose du passé : les logiciels-service (SaaS : Software as a Service) gagnent de plus en plus de terrain et on s’attend à ce qu’en 2016, le quart de tous les revenus générés par la vente de logiciels leur soit attribué.

Il est grand temps que les organisations adoptent l’informatique en nuage. Dans l’industrie, les systèmes maison patrimoniaux en fin de cycle de vie se comptent par millions. Ils comprennent les anciennes applications de bureau provenant de diverses technologies génériques, comme les applications client-serveur, les tableurs et les systèmes de gestion de bases de données. Ces actifs intangibles sont difficiles à émuler par les concurrents et procurent à leur propriétaire une différenciation concurrentielle clé. D’autre part, les entreprises réalisent que les logiciels commerciaux ne constituent pas toujours la meilleure façon de maintenir cet avantage concurrentiel unique.

Avec le temps, la conception de ces systèmes patrimoniaux a requis d’importants investissements de capitaux. Mais, quelle que soit la valeur (réelle ou apparente) de ces systèmes, les entreprises doivent maintenant passer à l’ère de l’informatique en nuage et de la mobilité. Ce n’est qu’à cette condition qu’elles pourront modeler leurs activités commerciales à leur environnement réel et répondre aux besoins des consommateurs d’aujourd’hui. Mais cette transformation n’est pas sans obstacle. Voici quelques-uns des défis associés au développement de logiciels pour le nuage et les plateformes mobiles :

• Pénurie de développeurs compétents et abordables.

• Manque de documentation expliquant les limites du nuage.

• Intensité et prix élevé des cycles de recherche et développement requis en préparation au passage à l’infonuagique.

• Nombre excessif de cycles d’analyse, de conception, de développement et d’assurance de la qualité des projets de modernisation et de développement de logiciels. Ajoutés aux délais de lancement et aux coûts exorbitants de développement, ces éléments sont la cause de ralentissements organisationnels généralisés.

• Explosion de la complexité des exigences commerciales, ce qui se traduit une augmentation des coûts et des besoins en ressources.

• Utilisation de multiples technologies pour la conception des systèmes patrimoniaux (par exemple, DB2, Sybase, Oracle, Access, FoxPro, Excel, Delphi, VB, COBOL, Novell et Lotus Notes).

MODERNISATION DE LOGICIEL

POUR L’INFONUAGIQUE

(4)

Comment pouvons-nous accélérer le développement de logiciels pour le nuage et continuer à répondre aux

demandes à l’échelle mondiale?

Les méthodes de développement de logiciels visent à diviser les tâches en phases distinctes d’activités connexes, en tentant de rationaliser la planification et la gestion.

Ces méthodes ont évolué d’un développement en cascade et en spirale vers le développement accéléré d’application et, maintenant, vers la méthode agile de développement. Cette dernière constitue l’option de choix pour le développement de logiciels en nuage, parce que son processus itératif et flexible diminue les risques associés aux projets, permet l’intégration rapide des demandes de modifications et permet de fournir rapidement une valeur à l’entreprise

La méthode agile offre la flexibilité nécessaire pour diriger avec souplesse le cycle de développement de logiciels. De courtes étapes de travail, appelées « sprints », sont déterminées. À la fin de chaque « sprint », chaque équipe travaillant sur le projet doit présenter une itération complète. À cause de ses cycles de travail condensés et répétés (incluant les résultats qu’ils produisent), la méthode agile est incrémentielle. Les équipes de développement qui utilisent la méthode en cascade n’ont qu’une chance de réussir. La méthode agile, quant à elle, permet de réévaluer en continu chaque élément du développement (comme les exigences et la conception).

Il y a toujours une possibilité de réévaluer le travail et de changer de direction.

Cette approche flexible diminue de beaucoup les coûts et les délais de lancement. Parce que les équipes peuvent développer le logiciel en tenant compte des besoins qui leur sont communiqués simultanément, il y a peu de risques que l’analyse freine la progression du

développement. Le cycle de travail de deux semaines offre aux intervenants la possibilité d’ajuster les lancements selon les besoins commerciaux émergents du monde réel.

L’ÉVOLUTION DES

MÉTHODES DE DÉVELOPPEMENT

DE LOGICIELS

(5)

L’un des premiers jalons de l’informatique en nuage est l’arrivée du logiciel-service salesforce.com en 1999. Pionnier de l’offre d’applications d’entreprise par l’intermédiaire d’un simple site web, Il a ouvert la voie à la livraison par le web des services de logiciels grand public et spécialisés.

L’innovation suivante s’est produite en 2002, lorsque Amazon Web Services a offert une suite de services basés sur l’infonuagique, dont des services de calcul et de stockage.

D’importants joueurs ont par la suite emboîté le pas, comme Microsoft Windows Azure, en 2010, et Google Cloud, en 2012.

L’informatique en nuage a pour objectifs de diminuer les investissements et, proportionnellement, les coûts informatiques, tout en augmentant l’évolutivité, la disponibilité et la fiabilité des logiciels.

• Un LOGICIEL-SERVICE est une application d’usager basée sur l’infonuagique et offerte par l’intermédiaire d’Internet.

• Une PLATEFORME-SERVICE est un ensemble d’outils et de services conçu pour accélérer le développement du code et le déploiement de ces applications, en plus d’accroître leur efficacité. En fournissant l’infrastructure logicielle sous-jacente, la plateforme-service contribue à la diminution des coûts de l’organisation. La plateforme-service ajoute vélocité, flexibilité et agilité au processus de développement de logiciels. Elle crée une infrastructure d’application fiable et diversifiée, qui permet aux organisations de répondre rapidement aux besoins de leurs clients.

• Une INFRASTRUCTURE-SERVICE est composée du matériel et des logiciels qui font tout fonctionner : serveurs, systèmes de stockage, réseaux et systèmes d’exploitation. Elle diminue les coûts du matériel informatique, fournit une évolutivité et une agilité presque illimitées, et raccourcit le délai de lancement, tout en offrant une disponibilité, une sécurité et une conformité accrues. L’utilisation d’une infrastructure-service présente les principaux avantages suivants : la diminution des coûts associés au matériel et à l’infrastructure, ainsi qu’à la dotation en personnel et à

l’administration du service informatique; la gestion de la capacité;

la reprise après sinistre et la continuité des activités; ainsi que l’accès à de nouvelles capacités et à une nouvelle expertise.

L’ÉVOLUTION

DE L’INFORMATIQUE EN NUAGE

Le schéma des services infonuagiques ci-dessous représente cette dernière en trois niveaux.

Figure 1 : Niveaux de l’informatique en nuage

(6)

LA NOUVELLE SOLUTION D’USINE-SERVICE

Comment pouvons améliorer le développement et le

déploiement des logiciels à l’aide de mécanismes infonuagiques automatisés permettant d’augmenter la productivité, la cohérence et la qualité du travail?

Même si la méthode agile de développement de logiciels présente d’importants avantages, le développement de logiciels pour les plateformes d’informatique en nuage selon cette méthode se fait encore principalement de façon manuelle et requiert de nombreuses interventions humaines, à chacune de ses étapes.

Le temps est un facteur primordial dans un projet de développement de logiciel à cause de l’évolution constante de la manière de faire des affaires, de collaborer avec d’autres organisations et clients et les changements apportés aux processus internes. Le défi que peinent à relever les organisations consiste à développer suffisamment rapidement pour éviter les délais entre le moment où les besoins sont identifiés et celui où les fonctionnalités logicielles sont livrées à l’utilisateur.

Ainsi, bien que la méthode agile permette aux analystes en informatique et aux analystes d’affaires de bien cerner les besoins, la qualité des récits d’usagers laisse souvent à désirer. De plus, la lenteur du processus de développement du code ne permet pas de suivre le rythme des analystes.

Nous avons donc besoin d’une nouvelle approche de construction et de modernisation des logiciels :

un processus de développement de logiciels efficace, collaboratif et automatisé.

AVANTAGES DE L’AUTOMATISATION :

Le meilleur argument pour l’automatisation est

l’augmentation de la productivité et du taux de production.

Mais elle permet également d’améliorer la qualité du produit et la sécurité; de raccourcir le nombre de semaines de travail; et de diminuer les délais de production.

FLEXIBILITÉ :

Les tâches qui exigent de la dextérité manuelle (comme la programmation de règles d’affaires multifacettes pour les conceptions complexes) nécessiteront toujours l’intervention intellectuelle d’humains. L’objectif n’est pas d’automatiser toutes les activités du développement de logiciels, mais plutôt d’en automatiser les tâches les plus faciles et les plus fastidieuses. Si les bons modèles de code sont fournis pour les services usagers, les services d’affaires et les services d’accès aux données, la génération automatique de code est à portée de main.

COÛTS :

Bien que l’automatisation puisse diminuer les coûts variables à long terme, son développement initial peut être très coûteux. On sait combien il est difficile de déterminer avec précision les frais de recherche et développement que requiert la conception du matériel nécessaire à l’automatisation des processus. Si l’entreprise ne dispose pas des fonds et de l’expertise nécessaires, tout projet en ce sens pourrait bien être abandonné. C’est pourquoi la plupart des entreprises qui souhaitent développer efficacement des logiciels sur mesure devraient utiliser des services d’infonuagique automatisés, abordables et déjà disponibles.

(7)

VOICI COMMENT

L’USINE-SERVICE AMÉLIORE L’EFFICACITÉ DU PROCESSUS

DE MODERNISATION DE LOGICIEL POUR L’INFONUAGIQUE :

AUGMENTATION DE LA QUALITÉ DES DONNÉES ENTRANTES DU PROCESSUS :

– Importation automatique des modèles de données de la base de données de l’ancien logiciel.

– Amélioration de la qualité des récits d’usagers du logiciel, grâce à un processus efficace de collaboration en ligne.

– Structures préconçues de modèles de logiciels, adaptées à la complexité des architectures de l’infrastructure-service et de la plateforme-service Azure.

ACCÉLÉRATION DU PROCESSUS DE DÉVELOPPEMENT : – Conception de logiciel-service par un processus simple de configuration en ligne.

– Phases en ligne et hors ligne de génération de code permettant de démarrer rapidement de développement de tous les cycles du logiciel.

– Déploiement automatique de logiciel-service sur l’infrastructure-service et la plateforme-service Azure.

AUGMENTATION DE LA DISPONIBILITÉ DES RÉSULTATS DU PROCESSUS :

– Mise à l’essai rapide, sécuritaire et à partir de n’importe quel endroit, d’une version intermédiaire du logiciel-service par les intervenants du projet, ce qui fournit une rétroaction d’une valeur inestimable.

• L’USINE-SERVICE est un ensemble d’outils et de services conçu pour prendre en charge la méthode agile de développement de logiciels, en offrant une plus grande automatisation des processus et la génération automatique de code de logiciel-service.

Figure 2 : usine-service + informatique en nuage (logiciel-service, plateforme-service, infrastructure-service)

Le schéma amélioré des services infonuagiques ci-des- sous représente cette dernière en quatre niveaux :

(8)

IMPLANTATION D’UNE USINE-SERVICE

XI-FactoryTM du Groupe AZUR est une usine-service pour

la plateforme Microsoft Azure, et elle prend en charge la méthode agile de développement en ligne avec une vélocité accrue.

PRINCIPALES ÉTAPES DE LA MÉTHODE AGILE DE DÉVELOPPEMENT EN LIGNE DE XI-FACTORY

1. Définition du carnet de sprint.

2. Collaboration avec les membres de l’équipe pour écrire et valider les récits d’usagers.

3. Conception et configuration des modèles de données et de fonctions.

– Extraction des modèles de données des bases de données existantes à l’aide d’outils d’importation automatisés.

4. Utilisation du premier générateur de code en ligne pour obtenir un prototype de logiciel fonctionnel; obtention de la rétroaction et de l’approbation des intervenants.

5. Une fois le prototype approuvé, utilisation du deuxième générateur de code hors ligne pour générer le code pour les équipes de développeurs.

6. Ajout du code et des récits d’usagers à la plateforme de collaboration Microsoft Team Foundation Server (TFS).

7. Utilisation, par les développeurs, de Microsoft Visual Studio pour ajouter des règles d’affaires au code généré.

8. Déploiement d’une version intermédiaire du logiciel-service sur Azure et mise à l’essai en ligne, par des intervenants.

9. Retour à l’étape 1.

Figure 3 : Méthode agile de développement en ligne de XI-Factory

(9)

IMPLANTATION D’UNE USINE-SERVICE

La figure 4 illustre l’interface de conception de XI-Factory (il s’agit ici d’une solution de gestion des commandes et de la facturation); à l’aide des modèles de données et de fonctions affichés dans l’arborescence du volet de gauche, votre analyste en informatique peut rapidement concevoir et configurer une solution de logiciel-service. Des récits d’usagers peuvent être entrés pour chaque feuille de

définition du logiciel et les intervenants peuvent les passer en revue.

En tout temps, l’analyste en informatique peut lancer le processus de génération de code de la solution de logiciel-service pour visualiser les prototypes de logiciels pour ordinateurs de bureau et appareils mobiles.

Figure 4 : Principale interface de conception de l’outil XI-Factory

(10)

IMPLANTATION

D’UNE USINE-SERVICE

Figure 5 : Solution de logiciel-service : logiciel de gestion des commandes et de la facturation pour ordinateurs de bureau et appareils mobiles

Les analystes d’affaires peuvent présenter les nouveaux prototypes de logiciels pour ordinateurs de bureau et appareils mobiles aux divers intervenants, afin d’obtenir leur rétroaction.

Par exemple, ce prototype de solution de gestion des commandes et de la facturation comprend quelque 74 275 lignes de code (LDC), toutes générées

automatiquement par XI-Factory en quelques secondes seulement.

Les développeurs peuvent ensuite ajouter des règles d’affaires associées aux récits d’usagers à l’aide de Visual Studio, pour compléter les fonctions de la solution.

PORTÉE DE LA SOLUTION DE GESTION DES COMMANDES ET DE LA FACTURATION : Processus d’affaires : 6; Applications web : 19; Champs : 783; Actions : 458;

Tables relationnelles : 34  

GÉNÉRATION AUTOMATIQUE DE LDC PAR L’USINE-SERVICE : Services usagers : 65 573 LDC; Services d’affaires : 1 814 LDC;

Services d’accès aux données : 2 631 LDC; Services d’entity framework : 4 257 LDC TOTAL: 74 275 LDC

(11)

Figure 6 : Architecture d’un logiciel basé sur l’infonuagique

IMPLANTATION D’UNE

USINE-SERVICE

(12)

RÉSULTATS :

Les éléments suivants (qui sont associés à la méthode agile de développement) illustrent de quelle façon l’usine-service accélère le développement des logiciels et en améliore la qualité.

RÉCITS D’USAGERS :

En collaboration avec le client ou le propriétaire du produit, l’équipe divise le travail en tâches fonctionnelles appelées « récits d’usagers ». Une fois implanté, chaque récit d’usager doit augmenter la valeur du logiciel, peu importe l’ordre de l’implantation.

POINTS DE RÉCITS D’USAGERS:

Il s’agit d’une façon de définir les relations complexes des récits d’usagers : à l’aide de points, on représente l’effort requis pour développer une fonctionnalité correspondant à un récit d’usager.

VÉLOCITÉ :

À la fin de chaque sprint, l’équipe additionne les estimations d’efforts liés aux récits d’usagers complétés pendant l’itération, et obtient ainsi ce que l’on appelle la

« vélocité ». Le calcul de cette dernière permet à l’équipe de déterminer (ou de réviser) la durée approximative du projet en se fondant sur les estimations associées aux récits d’usagers restants; elle peut ainsi prévoir la vélocité des itérations restantes. Cette prévision est généralement bonne, mais rarement exacte.

La vélocité est une mesure qui permet de prévoir le travail qu’une équipe de développement peut accomplir au cours d’un sprint de deux semaines (ou d’une période similaire), en utilisant la méthode agile. Par exemple, si l’équipe a développé les fonctionnalités associées à 10 récits d’usagers au cours d’un sprint de deux semaines et que chaque récit valait 3 points, sa vélocité est donc de 30 points de récits d’usagers par sprint.

Pour faire la démonstration de la vélocité ainsi que de la capacité de l’usine-service XI-Factory, nous utilisons les lignes de code (LDC). On définit les récits d’usagers à l’aide de points, que l’on peut évaluer à l’aide des LDC, développées manuellement et générées automatique- ment. On obtient ainsi la relation suivante :

• Récit d’usager = Nombre de points = LDC_Dev (nombre de lignes de code développées manuellement) + LDC_Gen (nombre de lignes de code générées automatiquement) :

– LDC (lignes physiques). Compte de lignes le plus simple.

Chaque ligne se termine par une séquence de retour à la ligne (habituellement CR+LF). La fonction LINES compte chaque ligne, qu’il s’agisse d’une ligne de code, d’un commentaire ou d’une ligne vide.

– Les types de lignes de code pour l’architecture logicielle multiniveau sont les suivants : HTML5, jQuery, Jason, Rasor, C# et SQL.

(13)

RÉSULTATS :

Comment en témoignent les données du tableau 1 (qui portent sur un projet de complexité moyenne conçu à l’aide de XI-Factory), notre équipe a généré automatique- ment, en quelques minutes, environ 6 fois plus de points de récits d’usagers que ce qu’il a été possible de développer manuellement (1630/264) en 8 sprints. Si ces points de

récits d’usagers n’avaient pas été générés automatique- ment à l’aide des modèles de code de haute qualité écrits par nos experts, les membres de l’équipe auraient dû écrire eux-mêmes le code des récits d’usagers, ce qui aurait prolongé le projet de plusieurs mois.

Tableau 1 : Données sur un projet de développement de complexité moyenne, réalisé à l’aide de la méthode agile

(14)

RÉSULTATS :

GÉNÉRÉES VS DÉVELOPPÉES Les deux graphiques ci-dessous illustrent la vélocité de l’usine-service en comparant le nombre de LDC et de points de récits d’usagers développés manuellement par l’équipe à ceux générés automatiquement à l’aide de XI-Factory pour chaque sprint.

(15)

RÉSULTATS :

GÉNÉRÉES VS DÉVELOPPÉES Les quatre diagrammes suivants illustrent la vélocité de l’usine-service en comparant le nombre de LDC développées manuellement à celles générées automatiquement à chaque sprint pour les services suivants : Services usagers, Services d’affaires, Services d’accès aux données et Services d’Entity Framework.

(16)

RÉSULTATS :

GÉNÉRÉES VS DÉVELOPPÉES

(17)

CONCLUSION

L’usine-service amène la méthode agile au niveau suivant en automatisant autant de processus que possible. Le processus de développement rapide et épuré qui en résulte vous permettra d’atteindre vos objectifs commerciaux et informatiques; de diminuer votre délai de lancement; et de passer à l’infonuagique plus

rapidement, à prix abordable.

Non seulement XI-Factory constitue-t-elle une solution efficace, abordable et rationalisée d’automatisation de la méthode agile de développement de logiciels, mais elle soulage également les développeurs (un groupe important au sein de votre organisation) de la pression qu’exercent sur eux les tâches désagréables et

répétitives. Grâce à elle, les futures technologies d’automatisation

pourront perfectionner notre environnement social et économique,

ce qui augmentera notre niveau de vie et améliorera notre bien-être.

(18)

À PROPOS DU GROUPE AZUR

La mission du Groupe AZUR est d’offrir un modèle d’affaires nord-américain concurrentiel de délocalisation de proximité en optimisant son processus agile de développement logiciel afin de développer des logiciels sécuritaires, performants, robustes, abordables et évolutifs.

Pour diminuer les frais de développement de logiciels de nos clients, nous utilisons l’outil XI-Factory pour synchroniser les efforts de développement des experts du Groupe AZUR avec ceux d’équipes multidisciplinaires provenant de nos partenaires outremer soigneusement sélectionnés.

L’équipe chevronnée d’analystes en informatique,

d’ingénieurs en logiciels, de développeurs et d’experts en bases de données du Groupe AZUR peut faire une démonstration de faisabilité en collaboration avec

votre équipe, afin de valider l’efficacité de l’usine-service pour votre organisation.

Appelez-nous dès maintenant pour commencer à moderniser vos

applications vitales pour le nuage... et garder une longueur d’avance

sur vos concurrents!

(19)

GROUPE AZUR

T : 514 281 0061

465, rue St-Jean, bureau 401 Montréal, QC, Canada H2Y 2R6

contact@azurgroup.ca | www.azurgroup.ca | www.xifactory.com

CONTACTEZ-NOUS

Références

Documents relatifs

Bpm’online reconnu Strong Performer dans le rapport The Forrester Wave™: Cloud-Based Dynamic Case Management, 2018... Accélérer le changement avec une plateforme agile

accompagner le déploiement des tests virologiques de dépistage du Covid19, transmettre les résultats au plus vite pour mettre en œuvre les mesures de prévention adaptées,

Le cas d’utilisation démarre quand (1) le client introduit sa carte bancaire, (2) le système lit la carte et vérifie si la carte est valide, (3) le système demande au client de

In comparison to the existing methodologies followed in the cases, they have identified some advantages of the APISD model which are: incorporation of iterative

Without claiming that the approach put forward in this position paper will guarantee agility of processes for service development, we believe the approach proposed will allow for

The KISS approach for agile process management leads to more flexible and agile business processes by integrating business process management and business rules in four

Within the LL-MEC platform, two main services are provided [4]: (a) Edge packet service (EPS) (equivalent to traffic rule control) that manages the static and dynamic traffic rules

• MaaS, LXD, AWS/GCE X86-based Edge Cloud Infrastructure X86-based Edge Cloud Infrastructure. SDK SDK