mercredi 26 novembre 2014

L'usine à logiciels contre-attaque (Episode V)

Résumé de l'épisode IV: La guerre des CIOs
Pour faire face à la nouvelle économie des applications, quand tout nouveau business devient un "software business", le DSI s'est muté en Chief Engineering Officer et pense "Digital First". Il veut reprendre la main sur l'assemblage des offres et produits de l'entreprise avec le SI, devenu le nouvel ADN des entreprises numériques. C'est une DSI qui va faire entrer son SI dans la 3eme ère, en travaillant sélectivement sur ses deux natures (Agile et Entreprise IT) et en adoptant un style de management adapté à ce nouveau monde digital.

Cette première bataille dans l'univers Digital, combinant Internet et objets connectés, va lui demander de repenser sa production d'applications: l'usine à logiciels contre attaque.
La planète DSI est loin d'être sur une orbite tranquille de la galaxie.

L'entreprise numérique transforme et combine ses processus avec son SI, devenu plateforme de relations numériques, pour répondre rapidement et en permanence aux attentes de ses clients et développer de nouveaux business. Le logiciel devient différenciant et est la nouvelle priorité de la gouvernance du SI.

Bien sûr, beaucoup de challenges sont devant la DSI avec l'arrivée du Digital. La vision de Gartner, présentée à son Symposium de Barcelone, en donne au moins quatre majeurs à inscrire en haut de son agenda: l'agilité, la qualité de la production, l'innovation et toujours les coûts.


Mais nous ne sommes qu'au début de la transformation, alors il faut choisir ses priorités. L'intuition de GreenSI c'est que le logiciel permet de travailler sur les quatre à la fois, tout en s'attaquant aussi aux nouvelles architectures centrées sur les données et les échanges (API) pour répondre à la mobilité et à l'ouverture du SI. Donc préparer le moyen terme (agilité) tout en répondant a des besoins court terme (data, architecture).

Comment fabriquer du logiciel, rapidement et de qualité, qui capture les innovations métiers à coûts maitrisés

Une question qui n'est pas nouvelle. L'atelier logiciel, qui a fait la fortune des premières SSII contre-attaque dans le digital (CGI un des pionniers avec Sigagip. Société absorbée par IBM à pas confondre avec le canadien du même nom).
Mais là où l'usine-atelier d'antan était centrée uniquement sur le développement, la nouvelle usine commence avec le "business" et doit aussi inclure les opérations dans son cycle d'intégration continue. Un cycle qu'elle parcoure a la vitesse imposée par le rythme des innovations de son industrie et qui n'a plus rien à voir avec celui d'antan.

Des projets de 12 à 18 mois pouvaient se séparer ces trois étapes qui étaient abordées de façon séquentielle, avec de nombreux comités et livrables, pour s'assurer que tout serait en ordre lors de la mise en production. Mais quand on parle de projets de 2 mois, voire de livraisons hebdomadaires ou quotidiennes, comme dans le cas des sites internet, la coordination entre Business, Développement et Opérations devient maintenant beaucoup plus dynamique.

C'est l'image du ruban de Moebius (lire Laissez-vous inspirer par le ruban de Moebius).


La nouvelle coordination Bus-Dev

Le cycle de vie du logiciel commence avec l'idée de lancer un nouveau service ou de transformer un service ou produit existant. Mais de la stratégie, aux cahiers des charges, en passant par l'architecture fonctionnelle et technique, tout doit être adapté à un cycle plus rapide. C'est l'objectif d'une démarche Bus-Dev avec les métiers.

Pour aller plus vite, les besoins devront être découpés en "morceaux plus petits" qui pourront parcourir le ruban de Moebius plus vite. C'est une idée déjà exploitée par les méthodes agiles comme Scrum, mais qui ne sont centrées que sur le développement. Il faut maintenant les étendre au business et à la production. Toutes les initiatives autour des hackathons procèdent de cette même idée. Exprimer rapidement des dizaines d'idées poussées au bout rapidement (48h) pour être retenues ou abandonnées.

La vitesse de production a aussi un autre atout: elle augmente la vitesse d'apprentissage. A chaque passage d'un "morceau" dans le cycle, on va rendre les activités plus routinières avec l'amélioration continue. C'est la mise en place opérationnelle des démarches Lean pour piloter la DSI. Sujet déjà abordé sur GreenSI (Votre DSI est-celle prête pour le lean-IT?).
Le premier "morceau" d'un projet (par exemple afficher la page d'accueil de l'application) va permettre en passant par toutes les étapes, jusqu'en production, d'identifier et d'essayer de résoudre toutes les difficultés qui se seraient présentées.

Est-ce l'optimisme naturel des équipes informatiques, mais on croit toujours avoir trouvé le dernier bug? En fait il y en a presque toujours un juste derrière et pour le savoir il faut continuer à avancer vers la mise en production, puis obtenir le retour de l'utilisateur qui relance un nouveau cycle. 

C'est certainement l'illustration que le mot anglais "Fail" (échec) est aussi le premier essai d'un apprentissage. C'est d'ailleurs la philosophie de nombreuses startups.
Mais fabriquer une application par "morceaux" ne favorise pas la vision d'ensemble.
Cette vision va s'établir progressivement et le découpage des besoins va demander une plus grande coordination, en permanence, entre tous les acteurs de la chaîne. Ce qui n'est d'ailleurs pas toujours simple quand on mixe des acteurs internes et externes, liés à l'entreprise par des contrats distincts. 

Des tâches techniques, notamment d'architecture, devront remonter le plus en amont possible pour faciliter le développement et la cohérence. GreenSI pense qu'il n'y a pas de solution miracle et qu'il faut être conscient de ce danger pour le surveiller pendant tout le cycle projet.

La coordination Dev-Ops

La seconde partie du cycle commence avec le développement et surtout les tests. Car la qualité de la production est essentielle pour ne pas générer ensuite des back-logs de correctifs qui viendraient enrayer les cycles en s'accumulant. L'agilité condamne les développeurs a produire de petites pièces bonnes du premier coup.
 

Et pour pouvoir bien tester, il faut pouvoir recréer un environnement proche de la production, même quand les applications auxquelles votre code doit parler ne sont pas disponibles, voire qu'elles ne sont pas encore développées. Et imaginez maintenant que votre application est une App embarquée dans le tableau de bord d'un véhicule intelligent, la notion d'environnement proche de la production est une voiture en fonctionnement. Pas facile à caser dans la salle des développeurs. Or c'est bien la révolution des objets connectés qui est devant nous et à laquelle nous devons adapter l'usine de développement.

La virtualisation de service amène donc aujourd'hui une souplesse pour mieux paralléliser les développements. C'est à dire la capture et simulation du comportement et des données des systèmes non disponibles, pour en fournir une image virtuelle toujours disponible, tout au long du cycle de développement. Et pour reprendre l'exemple précédent, la virtualisation des systèmes du véhicule avec lequel va interagir l'application. On aura donc une voiture virtuelle mise à la disposition des développeurs sous la forme de services qui leur permettront d'interagir avec.



Après les tests, il faut permettre le déploiement en continue pour bénéficier du développement en parallèle et des tests en continu. Puis enfin, mesurer le comportement du logiciel en production, surtout dans la jungle des environnements mobiles, pour identifier et résoudre les problèmes et rendre rapidement l'expérience utilisateur optimale.

C'est donc bien toute la chaîne Dev-Ops qui est agile, et de ne travailler qu'en amont a peu d'intérêt si l'aval ne suit pas.

Les enjeux Dev-Ops pour les ESN et les éditeurs

GreenSI est donc passé de l'autre côté du miroir, chez les ESN (ex. SSII) et les fournisseurs de solutions pour vérifier qu'ils ont eux aussi bien aussi perçu l'importance pour l'entreprise de produire du logiciel de façon plus agile. Force est de constater qu'en France le sujet n'est pas encore très suivi, mais qu'il commence à en mobiliser certains, en priorité ceux qui ont une culture ou des équipes issues de l'open source. 

Aux Etats-Unis, les études montrent que ce sujet est dans l'agenda d'un DSI sur deux. Lors du dernier CA World à Las Vegas, CA Technologies, société spécialisée depuis longtemps sur l'outillage de la DSI, a dévoilé l'évolution de son portfolio de solutions qui s'inscrivent maintenant dans une démarche DevOps complète. Un portfolio de solutions qui a su intégrer l'expertise des acquisitions de CA ces dernières années et notamment du canadien Layer7 (API management) et de l'israélien Nolio (déploiement continu). Bonne pioche...

Sans surprise, ces solutions pour DevOps cherchent à unifier les équipes de développement et d'exploitation autour du développement rapide, de son déploiement et de la mesure de la qualité du logiciel. Certes, DevOps est principalement une démarche de collaboration entre équipes et ne saurait être réduite à un outil magique. Mais au delà d'un certain stade, il parait illusoire de ne pas s'automatiser. C'est d'ailleurs le destin de toutes les usines et le choix de ce mot dans le titre de ce billet.

CA Technologies a retenu l'attention avec la première solution qui permet l'intégration transparente de la virtualisation des services (CA Service Virtualization) et la gestion des API, donc une capacité à développer et tester des parties de logiciel de façon totalement indépendantes les unes des autres (CA Agile Parallel Development), et ce tout au long du cycle de vie (présentation CA Technologies).


Les améliorations annoncées pour la productivité vont jusqu'à +60%, pour la vitesse de développement entre 25% et 50% et pour le déploiement l'effort est réduit jusqu'à 15 fois par rapport à l'effort manuel. Certainement des chiffres optimistes, mais ils posent l'objectif de la démarche, l'automatisation et la productivité.

D'ailleurs si vous sous-traitez vos développements ou votre maintenance applicative, les ESN qui adopteront DevOps et s'outilleront, seront plus performantes que celles qui en resteront a une démarche traditionnelle. Ce qui devrait se traduire dans les coûts et les engagements. Il est donc peut être temps de vous soucier des méthodes de vos prestataires à l'heure du digital et d'aborder avec eux la question DevOps.

Gardez donc en tête cette image d'usine à logiciels pour préparer votre SI à l'ère digitale.
Previous Post
Next Post
Related Posts

L'humour de ceux qui aiment le numérique