Depuis le temps qu’on fait des applications ce devrait être plus facile!

Ce matin, nous faisions le bilan d’un projet de développement d’une application web dans Azure et plusieurs commentaires autour de la table m’ont laissés perplexe. Celui dont je voudrais vous entretenir en particulier aujourd’hui est le suivant :

«  Depuis le temps qu’on fait des applications ce devrait être plus facile »

En effet, depuis plus 60 ans que l’on fait des programmes informatiques. Ça devrait être simple maintenant! Bien que la technologie ait beaucoup évolué depuis les premiers programmes Cobol, le principe de base d’un programme est sensiblement le même. On affiche une interface à l’utilisateur, on applique des règles d’affaires (validations, calculs, transformations) et on sauvegarde des données dans un support comme un fichier ou une base de données.

Ce qui a grandement changé est les outils avec lesquels nous travaillons. Il est vraiment loin derrière nous le temps où un développeur n’avait qu’à connaître un seul langage travaillait toute sa carrière à faire un seul type d’application. De plus le niveau de connaissance de la base des processeurs et des systèmes d’exploitation nécessaires pour programmer est de moins en moins élevé. Ceci est dû au haut niveau d’abstraction des nouveaux langages et frameworks que l’on utilise.

De plus, les applications de nos jours sont faites à l’aide de plusieurs technologies différentes et dans des styles architecturaux complexes et variés. Quand je suis sorti de l’école en 1997 et que j’ai décroché mon premier mandat, je me souviens de l’architecte logiciel du projet qui me demandait si je savais ce qu’était une application N-Tiers. Il a dû être bien découragé quand je lui ai répondu « N-Quoi ??? ». À l’époque, les principes d’architecture multitiers n’étaient pas du tout enseignés dans les écoles. Mais est-ce mieux aujourd’hui en 2017? Je n’en ai pas l’impression. Avec la pénurie de main-d’œuvre en informatique, nous engageons fréquemment des finissants collégiaux et universitaires. Lorsque je leur donne des formations en .net et en architecture, la plupart ne savent que vaguement ce qu’est une architecture N-Tiers. De plus ils ont vraiment du mal à saisir le pourquoi du comment dans ce genre d’architecture.

Dans les années 2000, lorsque Microsoft a accouché son nouvel environnement de développement qu’est Visual Studio.NET et le framework.NET, le niveau d’abstraction avait encore fait un bon vers l’avant, mais s’était une très bonne chose! Une même personne pouvait facilement faire une application Windows, une application web, des services web et bien plus. Visual Studio était un outil extrêmement rapide et efficace pour construire nos applications. Par contre avoir un outil fantastique ne garantit pas le succès. Imaginer que l’on invente un outil de menuiserie super technologique et performant qui peut faire l’équivalent d’un marteau, d’un tournevis, d’une scie, d’un galon à mesurer et d’autres fonctionnalités. Demandez-moi de vous construire une maison avec cet outil et je vais juste être en mesure de construire extrêmement rapidement une grosse maison tout croche… L’architecture du bâtiment sera certainement déficiente aussi (je ne suis évidemment pas menuisier). Cette analogie n’est malheureusement pas de moi. C’est comme ça que nos amis du Pattern and Practices de Microsoft expliquent leur raison d’être. Leur mission est de mettre de l’ordre dans le chaos en fournissant de la documentation et des guides pour bien utiliser cet outil qu’est Visual Studio.

Lorsque je donne de la formation, je conseille toujours fortement à mes étudiants de lire le Microsoft Application Architecture Guide, 2nd Edition  (https://msdn.microsoft.com/en-us/library/ff650706.aspx )

Microsoft définie ce guide comme étant : « Le guide destiné à aider les développeurs et les architectes de solutions à concevoir et à construire des applications efficaces et de haute qualité en utilisant la plateforme Microsoft et le .NET Framework plus rapidement et avec moins de risques; Il fournit des conseils sur l’utilisation des principes d’architecture, des principes de conception et des modèles éprouvés et fiables. »

Originalement paru en 2002, en 2009 une 2e édition de ce guide nous a été fournie pour prendre compte de nouveau concept comme l’infonuagique. Mais l’infonuagique apporte une autre belle couche d’abstraction qui nous éloigne encore de la machine de base… et encore une fois c’est une bonne chose. Il est maintenant plus facile que jamais de construire des applications disponibles mondialement, qui sont performantes et hautement disponibles, et ce à des coûts raisonnables. Malheureusement en 2009 lorsque ce guide a été révisé, Microsoft n’en était qu’au début de l’aventure avec Azure et ne couvrait que très peu les notions infonuagiques.

Lors d’une formation que j’ai donnée le mois dernier, nous avons passé un peu plus de 4 heures à parler de modélisation objet, d’architecture N-Tier et de notions d’architecture orientée service. Vous auriez dû voir la fasse des gens dans la salle lorsque je leur ai dit que ça, c’était de l’histoire ancienne! Oui tout ça est encore nécessaire et utile lorsqu’on construit des applications traditionnelles. Mais aujourd’hui avec l’infonuagique, on doit connaître la différence entre IaaS, PaaS, SaaS, FaaS et CaaS pour être en mesure de faire une bonne solution. Que ce soit pour une application en mode « Serverless », une approche « Microservices » ou du déploiement par « Container », les connaissances à acquérir sont nombreuses.

Le hasard fait drôlement les choses, mais un courriel de Microsoft ce matin annonçait la disponibilité d’un tout nouveau guide gratuit sur l’architecture des applications dans Azure. Le  Cloud Application Architecture Guide est un livre électronique de 300 pages qui se concentre sur l’architecture, la conception, la mise en œuvre et les considérations qui s’appliquent quelle que soit la plate-forme infonuagique choisie. Le livre est disponible ici :

https://azure.microsoft.com/en-us/campaigns/cloud-application-architecture-guide/?wt.mc_id=azurebg_ENAzureNewsletter_December&mkt_tok=eyJpIjoiWWpZd05XUXlNMkkwTW1SbSIsInQiOiJJSEdlQ3BZY0F5R2I2MzM3Nzh6R1pJMmxOZEJHc1BZeEwrVnV0SHVhbVZhM1J0RGYyTm9jMEl0bmoxUmg2R3ZwMEsxVGhFa0EzR2lxdzRHM3lcL3NtdWxZaXRSdTlzK1g5V1ZtQUFqZHZVS0x6TGRDK2RoSW82OHJib2swd1BYOXdZVlpkWnFqNHpoWExyczVCZWJqUjZNZllLUUxvNmFqaUpjMWhUa1c4N2M0PSJ9

Donc que pensez-vous maintenant du commentaire «  Depuis le temps qu’on fait des applications ce devrait être plus facile » … On fait tellement d’abstractions maintenant qu’un seul développeur peut à lui seul créer son infrastructure de développement, provisionner les services nécessaires dans Azure (Web App, Base de données SQL, Service d’authentification, processus de backup, etc.), programmer son application à l’aide de Visual Studio et déployer le tout lui-même en production (dans Azure). On demande donc à une personne d’être architecte techno, architecte logiciel, programmeur, expert en sécurité et en performance. Mon avis final sur la question « est-ce plus facile qu’avant ? »… oui c’est beaucoup plus facile et rapide qu’avant pour faire une belle grosse maison tout croche! Par contre, en prenant le temps de faire une bonne analyse, une bonne architecture et une bonne équipe sur un projet… Sky is the limit!

À qui s’adresse le livre « Hit Refresh » de Satya Nadella ?

Ceux qui me connaissent savent que j’ai un petit fond de “fan boy” Microsoft. Vous ne serez donc pas surpris d’apprendre que je me suis intéressé au livre de Satya Nadella “Hit Refresh: The Quest to Rediscover Microsoft’s Soul and Imagine a Better Future for Everyone” publié chez HarperCollins qui est sorti en 2017.

Ça peut sembler tôt pour quelqu’un qui vient juste d’être nommé CEO de Microsoft d’écrire un livre sur son expérience personnelle. Par contre ce livre n’est pas une autobiographie mais plutôt une histoire de transformation organisationnelle. La curiosité de voir ce qui se passe en coulisses chez ce géant de l’informatique et mon intérêt à comprendre cette transformation m’a motivé à lire ce livre de prêt de 300 Pages.

Une partie du livre traite de l’histoire de Satya Nadella et de son parcours qu’il a amené à la tête de Microsoft. En 1992 il joint les rangs de Microsoft dans l’équipe des serveurs Windows. À cette époque Microsoft est encore très orientée sur le développement de produits propriétaires destinés à l’entreprise et au marché personnel. On ne pense pas encore à l’infonuagique. Les affaires de Microsoft vont bien, son action prend de plus en plus de valeur. L’entreprise est encore fidèle à sa mission originale qui était de mettre un ordinateur sur tous les bureaux de toutes les entreprises et de toutes les maisons. Mais l’avènement du téléphone intelligent et des tablettes va bouleverser les plans de Microsoft. En 2008 quand Steve Ballmer nomme Satya à la tête du moteur de recherche de Microsoft (qui deviendra Bing), les ventes de PC sont déjà en déclin et l’action du géant perd de plus en plus de valeur. Certaines compagnies comme Amazon sont déjà fortement engagées dans l’infonuagique et ont plus de 180 000 développeurs d’applications dans le monde qui utilisent leur plateforme. Bing était le premier pas de Microsoft dans le monde infonuagique… par compte Microsoft est encore très loin d’avoir une stratégie infonuagique claire et bien articulée. En 2011 Satya prend charge la division infonuagique de Microsoft qui s’appelait alors  Windows Azure. (Le nom sera éventuellement changé plus tard pour Microsoft Azure pour mieux représenter le fait que ce n’est pas seulement le système d’exploitation Windows ce qui est supporté).

Au début 2014 lorsque Satya est choisi pour succéder à Steve Balmer, Microsoft n’est toujours pas sortie du bois bien que son action soit maintenant en forte hausse. Un changement majeur doit s’effectuer chez Microsoft pour adresser la situation. Satya hérite d’une entreprise dont la culture est fortement orientée sur la compétition entre les employés et une mentalité de travail en silo dans les diverses branches de la compagnie. La hiérarchie est trop importante et la bureaucratie a pris le dessus sur l’innovation et la collaboration. Satya mentionne dans le livre une caricature qui est maintenant virale sur Internet qui démontre les diverses divisions de l’entreprise qui se menace l’une et l’autre avec un pistolet.

Illustration par Manu Cornet 

C’est selon lui une représentation très réaliste de la situation chez Microsoft à son arrivée à la tête de l’entreprise. D’un point de vue plus personnel, un esprit de compétition constante régnait parmi les employés. Satya mentionne que dans une réunion, chaque employé agissait comme s’il avait à prouver à tous les autres qu’il savait tout et qu’il était la personne la plus intelligente dans la pièce. Un autre problème type était qu’un gestionnaire ne pouvait pas inviter un employé d’une autre équipe à une réunion sans inviter aussi le gestionnaire immédiat de cet employé. Bref « Microsoft » semblait être le plus gros obstacle à la croissance de… Microsoft.

Le livre de Satya Nadella est donc l’histoire de ce changement de culture qui était nécessaire de faire pour que Microsoft redevienne l’entreprise innovante et prospère qu’elle avait déjà été. La culture que Satya propose pour Microsoft s’articule en trois éléments : premièrement les employés Microsoft doivent être tout d’abord obsédés à propos des besoins de leurs clients,  en particulier ceux dont les clients ne sont même pas conscients eux-mêmes. Deuxièmement il est important de favoriser la diversité des personnes autant pour leurs talents que pour leurs opinions. Finalement tous les employés doivent être en mesure de transcender les barrières organisationnelles et ne plus travailler en silo.

Nadella estime que tout est possible pour une compagnie quand sa culture est centrée sur  l’écoute, l’apprentissage et l’empathie. Il est convaincu que la compagnie va grossir si tout le monde, individuellement, peut grandir dans son travail et dans sa vie personnelle.

Loin de moi l’idée de vous raconter le livre au complet. Je vous recommande fortement cette lecture si vous êtes curieux d’en savoir plus sur comment Satya entend s’y prendre pour faire sa transformation organisationnelle. Comme il le mentionne lui-même, il n’en est qu’au début de cette transformation et elle est loin d’être terminée. À mon humble avis et de par la lecture de ce livre, j’ai l’impression qu’il risque fort d’y arriver et que Microsoft n’a pas fini de nous surprendre.