Saviez-vous que le développement agile ne peut s’implanter entièrement dans le mode actuel de livraison des services informatiques? Certes le développement agile a de plus en plus de traction dans l’industrie et sa simplification des méthodologies de développement d’application semble plaire autant aux clients qu’aux prestataires de ce genre de service. Toutefois, il reste que le « cloud » ou le nuage informatique permet de véritablement servir ses clients selon les principes d’agilité.
L’adoption de la philosophie agile se constate même dans les milieux les plus conservateurs en TI. Les coûteux échecs à répétition des grands projets informatiques en mode « waterfall » ont justifié ce changement de mentalité et ont ouvert les esprits qui étaient autrefois fermés. Mais, la gestion de leur infrastructure informatique n’a pas beaucoup changé depuis une trentaine d’années. Les délais de déploiement et leurs ressources limitées réduisent l’agilité des projets informatiques.
Le nuage informatique et ses ressources disponibles à la demande et payables à l’utilisation changent le dogme. L’infrastructure et les environnements de développement sont disponibles sur le web et ils sont livrables à l’équipe de projet à l’intérieur de quelques minutes. Voici d’ailleurs quelques avantages qui correspondent à des principes du manifeste agile.
Faciliter la rétroaction du client
Les courts cycles de développement exigent une rétroaction et une participation du client final au livrable. Il doit y avoir accès facilement et rapidement. Lorsqu’on choisit le cloud pour y installer son environnement de développement et d’essais, le client aura déjà accès à ces serveurs. Les développeurs n’ont pas à configurer un accès spécial dans le pare-feu de l’une ou autre entreprise. Les serveurs sont situés sur internet et tous y ont déjà accès.
Vous évitez aussi de déployer localement chez le client. Le déploiement sur les serveurs internes chez le client nécessite du temps à ajouter dans la planification du projet et peut aussi occasionner des obstacles imprévisibles de configuration. Ce sont des risques que peu de clients voudront assumer en cas de délais.
Démarrer rapidement un projet
La définition même de l’agilité implique une souplesse et un minimum de contraintes à faire ce qu’on a à faire. Divers services dans le segment du « Platform-as-a-Service (PaaS) » permettent d’avoir accès à un environnement de développement et de production très rapidement sans configuration à faire. Ce sont des contenants préconfigurés avec les options les plus courantes sur des environnements entièrement extensibles (« scalable »). L’environnement peut supporter une charge de trafic quasi illimitée.
Toutefois, le seul bémol est le manque de flexibilité. Si votre besoin est standard, vous serez aux anges. Si votre application nécessite beaucoup de prérequis hors du commun, cette option ne sera pas pour vous. Il faudrait regarder du côté de l’offre en infrastructure (IaaS) et la location de machines virtuelles. Vous êtes gagnants tout de même puisque ces machines vous seront livrées immédiatement.
Compiler et exécuter ses essais automatisés plus rapidement
La capacité de calcul d’un fournisseur cloud est en théorie illimitée ou du moins bien au-delà ce qu’une entreprise moyenne peut se permettre. Pour y arriver dans le mode de livraison traditionnel, il faudra dépenser des sommes astronomiques.
Lorsqu’une application informatique est très volumineuse, son temps de compilation se voit décupler. Les essais unitaires automatisés qui font souvent partie d’un bon développement agile subissent aussi le même accroissement et leur temps d’exécution suite à la compilation risque de s’allonger considérablement. Le nuage permet de louer des ressources informatiques à la demande pour réduire ce temps d’attente qui viendra au secours du projet.
Procéder à de vrais essais de charge
Si on peut louer plus de ressources pour exécuter nos essais unitaires plus rapidement, il va de soi qu’on peut utiliser toute cette puissance à notre disposition pour mettre au défi notre application. Nous pouvons simuler des charges équivalentes à celles en production.
Il était auparavant très coûteux d’effectuer ce genre d’essais. Cela nécessitait de l’équipement informatique dédié qui ne servira plus à la fin du projet. La location de ressources virtuelles propre au cloud rend la chose beaucoup plus attrayante et réalisable.
Garder son équipe restreinte
Les plus petites équipes ont souvent la réputation d’être plus efficaces et avoir un meilleur focus sur la tâche à réaliser. C’est alors souhaitable d’éviter d’avoir trop d’intervenants sur lesquels le projet pourrait dépendre.
Le déploiement des ressources informatiques dans le cloud se fait à l’aide de formulaires web automatisés. Il suffit de choisir les capacités des serveurs que l’on veut et ils nous seront livrés sur le champ. Il est donc possible d’éviter d’avoir recours à des ressources humaines dédiées à l’infrastructure pendant le cycle de développement. Cela peut réduire le nombre d’intermédiaires et les problèmes de communication qui pourrait s’en suivre.
Êtes-vous ouvert à ça?
Tout ça semble bien beau, mais est-ce que votre entreprise est prête à héberger ses projets de développement à l’externe? A-t-elle l’ouverture nécessaire? Fait-elle confiance qu’à elle-même pour ça?
C’est principalement le seul facteur qui pourrait nuire à votre appropriation la puissance et la souplesse du cloud dans vos projets agiles. Si l’agilité a réussi à faire sa place dans la gestion de projet, peut-on espérer qu’elle fera son bout de chemin dans la gestion de l’infrastructure informatique? Je le souhaite et j’en suis convaincu.