Nos craftsmen vous conseillent



Documents pareils
Les Bonnes PRATIQUES DU TEST LOGICIEL

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

25/12/2012

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Agile 360 Product Owner Scrum Master

Agilitéet qualité logicielle: une mutation enmarche

Gestion Projet. Cours 3. Le cycle de vie

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

Ingénierie des méthodes Agiles : Que cache l opposition entre déploiement et livraison en continu? Faut-il adopter DevOps 1?

Maîtrise d ouvrage agile

GL Processus de développement Cycles de vie

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

répondre aux défis de l ingénierie logicielle déploiement et mise en œuvre opérationnelle : l'industrialisation au service de la compétitivité

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Méthodes Agiles et gestion de projets

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Développement itératif, évolutif et agile

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

La reconquête de vos marges de manœuvre

MANUEL DU BLENDED LEARNING

Modernisation et gestion de portefeuilles d applications bancaires

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Scrum Le guide pratique de la méthode agile la plus populaire 3 e édition Claude Aubry 320 pages Dunod, 2013

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Le rôle du coach Agile et son apport pour le projet

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Offre Education 250 /an/école (htva)

ITIL V3. Transition des services : Principes et politiques

AGILE IPHONE DEVELOPMENT

Gé nié Logiciél Livré Blanc

Améliorez et industrialisez vos feedback produit

Maîtriser les mutations

Quels outils pour prévoir?

Introduc)on à l Agile

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Méthode Agile de 3 ème génération J-P Vickoff

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)

Les offres de Xebia : Agilité, Big Data, Cloud, DevOps, Java & Friends, Mobilité et Web Oriented Architecture.

Méthodes de développement

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

REX Scrum Master du terrain

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Comment mettre en oeuvre une gestion de portefeuille de projets efficace et rentable en 4 semaines?

Compte-rendu du petit-déjeuner. Vers l entreprise Agile

Conditions gagnantes pour démarrer sa transition Agile

Les 10 pratiques pour adopter une démarche DevOps efficace

ISTQB Agile Tester en quelques mots ISTQB Marketing Working Group

ITIL V2. La gestion des incidents

Une véritable aventure humaine avant tout! Un projet ITIL est une couche fonctionnelle ajoutée au sein d une organisation informatique.

Génie logiciel (Un aperçu)

Impartition réussie du soutien d entrepôts de données

Pourquoi la responsabilité sociétale est-elle importante?

360 feedback «Benchmarks»

Vérifier la qualité de vos applications logicielle de manière continue

CHAPITRE 3 : LES METHODES AGILES?

Présentation des experts

Ministère de l intérieur

TRAJET DES DIRIGEANTS. TRAJECT VOOR LEIDINGGEVENDEN

UML est-il soluble dans les méthodes agiles?

Plan d action SMB d une Approche Agile de la BITM Pour les PME

Les cinq premiers pas pour devenir vraiment agile à XP Day Suisse 2009 par Pascal Van Cauwenberghe et Portia Tung: La Rétrospective

Comment réussir la mise en place d un ERP?

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

IBM Business Process Manager

Les mécanismes d'assurance et de contrôle de la qualité dans un

Expertises Métiers & e-business. Technologies Microsoft & OpenSource. Méthodologies et gestion de projet

Les services en ligne

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Les méthodes Agile. Implication du client Développement itératif et incrémental

A. Le contrôle continu

OPTIMISER SON PROCESSUS DE TEST AVEC UNE APPROCHE BOITE GRISE

Livrer chaque jour ce qui est prêt! Points clés du développement d un produit avec une livrasion par jour.

Eclipse Process Framework et Telelogic Harmony/ITSW

DES SYSTÈMES D INFORMATION

Maximiser la performance de vos projets immobilier de bureaux

ITIL V3. Objectifs et principes-clés de la conception des services

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

Le Pôle Numérique de la CCI de Bordeaux vous propose son programme d animations gratuites sur les usages du digital pour l entreprise.

coaching et formation en entreprise passons au niveau supérieur

Pourquoi s équiper d un logiciel de comptabilité. &Comment. bien le choisir? Collection Les Mini-Guides Sage

Regard sur hybridation et infogérance de production

Famille IBM WebSphere Application Server

Introduction Le phénomène que représentent les Services de Gestion des Documents Managed Document Services (MDS) Une définition du concept

Les méthodes itératives. Hugues MEUNIER

Pentaho Business Analytics Intégrer > Explorer > Prévoir

La gestion des données de référence ou comment exploiter toutes vos informations

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Avant propos. Parcours de lecture : combien de sprints vous faut il?

Jean-Pierre Vickoff

E-Forum sur l Approche par les Compétences

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

PC-DMIS NC. 3D Form Inspect. PC-DMIS NC Gage

Systèmes et réseaux d information et de communication

Développement guidé par les tests d acceptation (ATDD/BDD) au Ministère de la défense nationale

Cycle d exploration «Software Asset Building» Expédition 2 du 11 juin 2013 à la SGCIB ; l Agile.

Transcription:

Nos craftsmen vous c ons e i l l ent

Arolla : diffuseur de savoir-faire Depuis sa création en 2009, Arolla s attache à promouvoir les bonnes pratiques de développement issues de l agilité dans la mouvance du mouvement Software Craftsmanship : Test-Driven Development (TDD), Behavior-Driven Development (BDD), Domain Driven Design (DDD), Clean Code, Legacy Remediation... Que ce soit dans le cadre d interventions au sein des équipes d entreprises de tous les secteurs, de missions de conseil ou de formations, les développeurs d Arolla s efforcent de déployer ces bonnes pratiques pour améliorer la qualité du code. Pour vous accompagner dans votre montée en compétence sur ces sujets, nos experts vous proposent différents modes d intervention: Sensibilisation et Découverte : présentation courte, Coding Dojo, atelier (de 2 heures à 2 jours) Formation : présentation théorique avec un maximum de mise en oeuvre pratique (1 à 2 jours) Coaching : accompagnement en situation pour mettre en oeuvre les pratiques apprises (à partir de 2 jours) Conseil : interventions ponctuelles sur des questions stratégiques, pour les équipes techniques, ou au service du management, ou pour atteindre un consensus entre de multiples parti-prenantes (plusieurs jours). Nous pouvons aussi fournir la mise en oeuvre, la personnalisation ou la construction d outils pour supporter la stratégie souhaitée (par exemple des outils autour de Cucumber, d analyse automatique de qualité, etc.). N hésitez pas à nous solliciter pour que nous mettions en place l intervention la plus adaptée à vos besoins. Sommaire Réduisez vos coûts avec TDD...p.4 Délivrez plus de valeur avec BDD...p.6 Priorité à votre métier avec DDD...p.8 Profitez des avantages de la programmation fonctionnelle...p.10

Réduisez vos coûts avec TDD Du code plus économique avec «Test-Driven Development» en pratique Si vous croyez que la qualité coûte plus cher, le temps est venu de reconsidérer ce point de vue! En logiciel, la qualité «interne» est destinée à l équipe de développement, en vue de rendre le code plus économique dans la durée. Aujourd hui, la meilleure technique à notre disposition pour du code de qualité est TDD, pour «Test-Driven Development», ou «développement dirigé par les tests». Une approche de design Loin d une simple approche de tests, les bénéfices de TDD pour vos projets sont nombreux : une couverture de tests maximale, moins de bugs, moins de lignes de code à écrire et à maintenir, un code plus simple avec un meilleur design. Oubliez les phases de stabilisation Réduisez enfin le temps de maintenance et oubliez les longues phases de stabilisation. Ne revenez jamais en arrière, une fois livré c est vraiment terminé. Ne craignez plus les changements car le code écrit en TDD est simple et économique à modifier, et la large couverture de tests vous protège contre les régressions. Adoptez TDD pour tous vos développements En adoptant TDD vous gagnez la possibilité de : - détecter les bugs simples instantanément - transmettre les compétences techniques et métier - avoir moins de code, donc moins de bugs - mettre en place un code expressif - subir moins de duplication Code plus simple en particulier avec l appoche TPP : la version poussée à l extrême de l approche TDD pour garantir la simplicité maximale, pour les équipes déjà performantes en TDD; TPP est aussi très pédagogique pour apprendre TDD. 6 principes pour introduire TDD dans votre équipe - Former vos développeurs lors d une session initiale sur les techniques pré-requises. - Organiser une Code-Retreat interne, animée par un ou plusieurs experts, pour commencer à pratiquer de façon idéale. - Désigner un champion TDD dans l équipe. - Expérimenter le Pair-Programming (programmation en binôme). - Inviter ensuite occasionnellement un expert pour profiter d un regard extérieur sur les pratiques et progrès de l équipe. - Rester pragmatique: le TDD est la meilleure technique de développement connue aujourd hui, c est donc la technique à privilégier pour les avantages qu elle procure, et non par mode ou dogmatisme.

Business cases Weekendesk, société de e-commerce, fexploite un SI développé depuis plus de 10 ans par une société extérieure. Aujourd hui, l enjeu est de maintenir ce SI en interne avec le peu de documentation disponible, et malgré la difficulté d y ajouter des tests automatisés. Devant ces défis techniquesn Weekendesk a souhaité se faire accompagner pour faire évoluer ses pratiques et optimiser sa dette technique. Le consultant Arolla a fait la promotion du TDD au sein des équipes (via des ateliers et katas de code ludique) et en a introduit progressivement la pratique avec un accompagnement en pair-programming de chacun des développeurs (10 jours). L intervention a permis d aider l équipe à se sensibiliser et à adopter les techniques modernes qui permettront à terme d améliorer la qualité des livrables, de limiter les dépendances et de réduire le «time-tomarket» des futures évolutions SI. Dans le cadre de sa transformation Agile, et plus particulièrement du programme Continuous Delivery mené par l Agile Center SGCIB, Arolla intervient pour promouvoir le Software Craftsmanship (TDD, BDD, DDD, FP-Style...). Dans le cadre de sa transformation numérique, SwissLife a lancé la refonte d une application web stratégique du groupe de manière agile, ce qui représentait une évolution de sa culture technique. Afin de rompre avec les pratiques «legacy» qui produisent rapidement du code non testable et cher à maintenir, SwissLife a souhaité se faire accompagner pour s assurer que le code produit serait de meilleure qualité et développé selon des techniques vertueuses (développement et tests agiles). SwissLife a donc fait appel au savoir-faire d Arolla en matière de Software Craftsmanship, et plus particulièrement sur la pratique du TDD tout en abordant les contours de BDD. 8 personnes ont été accompagnées sur une durée de 8 jours. SGCIB a fait appel à des coaches Arolla dans le cadre de son Centre Agile Craftsmanship pour accompagner un grand nombre d équipes dans l adoption de TDD. Cela s est fait sous plusieurs formes: - formation initiale: 1 ou 2 jours selon le cas, puis - accompagnement en coaching équipe par équipe: en moyenne 2 jours par semaine sur 6 mois - d autres équipes ont été accompagnées par l organisation hebdomadaire de «coding dojos» (exercices collectifs de code) de 2 heures 25 rue du Louvre 75001 PARIS - Tél: 01.77.38.82.00 www.arolla.fr - contact@arolla.fr

Délivrez plus de valeur avec BDD Plus de communication, moins de régression et d ambiguïté avec «Behaviour-Driven Development» Si les scénarios fonctionnels sont essentiels pour les tests de non-régression, il ne faut pas sous-estimer leur valeur comme outils de communication précis entre tous les intervenants de vos projets! Les projets qui réussissent ont tous en commun la qualité de la communication entre les participants. Pourquoi BDD? La plupart des projets logiciels se distinguent par un niveau élevé d incertitude à toutes les étapes, de l expression du besoin jusqu à la façon de les mettre en œuvre. Les approches agiles visent justement à répondre à ce constat avec des pratiques qui favorisent le feedback et la communication pour profiter au mieux de chaque information découverte. Dans ce cadre, on regroupe sous l acronyme BDD, pour «Behavior-Driven Development», la pratique qui consiste à spécifier et valider l acceptation et à documenter chaque fonctionnalité à l aide d un test automatisé écrit dans le langage du métier. Le bénéfice évident: moins de régressions Loin d être une évidence, c est au contraire une démarche active et disciplinée, avec à la clé une amélioration très nette de la qualité livrée. Vous souffrez de problème de qualité et la maintenance vous coûte trop cher? Vous hésitez à effectuer des changements pourtant nécessaires de peur de devoir tout re-tester manuellement? Vous avez déjà fait des tests automatisés mais ils sont fragiles et leurs coûts de maintenance deviennent prohibitifs? Au-delà des bénéfices premiers liés à la communication, BDD va aussi vous aider à automatiser des tests de non-régression stables et plus économiques dans la durée. Exprimer le besoin de façon concrète et précise, ça s apprend. Vous êtes en cours de transition vers l agile, par exemple avec Scrum? Vous rencontrez des difficultés de communication entre les Product Owners et les équipes de développement? BDD va vous aider à structurer l un des aspects les plus délicats d un processus agile : la définition claire d un critère d acceptation pour chaque fonctionnalité.

Business cases L équipe Architecture SwissLife a défini et mis à disposition des développeurs un framework pour réaliser des services de qualité et ce de manière efficace. Cette équipe souhaite désormais prolonger cette industrialisation des services par une démarche complémentaire sur les tests. C est dans ce cadre qu Arolla a été identifiée pour apporter son expertise du sujet à travers la réalisation d un volet conseil qui fournit la définition d une stratégie de tests autour du TDD et du BDD, complétée par un volet réalisation sur un périmètre pilote. L intervention d Arolla s est déroulée en deux temps: dans un premier temps, Arolla a établi un audit de l architecture et des pratiques en cours (4 jours). Une fois cette première étape réalisée, Arolla a pu accompagner SwissLife sur la définition de sa stratégie de tests (4 jours). Arolla a été sollicitée par Vidal pour promouvoir le BDD et les tests d acceptation. L objectif de l intervention consistait à promouvoir les bonnes pratiques pour sensibiliser l équipe sur une définition claire des «Done Criteria» et obtenir les gains suivants: 1. Moins de temps perdu à reprendre du travail partiel 2. Résoudre les ambiguïtés relatives à la compréhension de certaines fonctionnalités au plus tôt 3. Se prémunir contre les régressions et les bugs fonctionnels en utilisant ces «Done Criteria» comme tests d acceptation 4. Bénéficier tout au long du projet de spécifications à jour régulièrement maintenues Dans le cadre de la mise en place d une démarche de Testing Digitale au sein du PMU, le consultant Arolla est intervenu pour diffuser la pratique du BDD ainsi que l outillage associé (JBehave). Cela a permis de minimiser les régressions et d optimiser la valeur business des développements en impliquant, en amont de la réalisation des features, toutes les composantes de l équipe projet (QA, BA, développeurs). BDD a été mis en place au près d une équipe full-stack de plus de 10 personnes dans le cadre d une prestation de conseil embarqué dans une mission d assistance technique. 25 rue du Louvre 75001 PARIS - Tél: 01.77.38.82.00 www.arolla.fr - contact@arolla.fr

Priorité à votre métier avec DDD Remettez le métier au coeur de vos développements avec «Domain-Driven Design» Un logiciel est au service d un métier auquel il apporte une valeur importante. Pourtant, nombreuses sont les équipes de développement qui se concentrent exclusivement sur des aspects techniques, en négligeant le métier. Cela se traduit typiquement par des problèmes de communication, des complications techniques inutiles et des opportunités perdues par méconnaissance du métier. Quels problèmes de communication rencontret-on couramment entre les différentes parties prenantes? La négligence du métier et le manque de compréhension de ses concepts se manifestent à travers de nombreux syndromes, dans la communication entre parties prenantes, mais aussi dans l architecture technique, la modélisation et la qualité du code. Manque de confiance entre développeurs et experts métiers Spécifications excessivement détaillées Opportunités manquées Syndromes de négligences du métier dans le processus de développement Architecture excessivement complexe Accumulation de cas particuliers Modèle de données anémique Modèle métier énorme et compliqué à comprendre, à maintenir et à faire évoluer La solution Domain-Driven Design Le «Domain-Driven Design», une discipline ainsi qu un ensemble de techniques pour aligner le code sur les objectifs métier, propose de remettre les priorités dans le bon ordre. Il s agit en premier lieu de recentrer l attention de tous, et en particulier de l équipe de développement, sur le métier, ses concepts et ses enjeux. Ce n est cependant pas seulement une question de changement culturel ou d incantation, car DDD apporte un grand nombre de techniques d une grande aide pour vraiment aligner le code avec le métier. Cette discipline DDD s inscrit parfaitement dans une démarche agile telle que Scrum ou XP, et met l accent sur l amélioration de la communication entre les représentants du métier et les équipes de développement à travers un langage métier unique, le «langage omniprésent».

Business cases L équipe de développement d Appliware s est très tôt ouverte à la pratique Domain-Driven Design (DDD), à laquelle elle a été initiée par un coach qui lui a transmis les concepts de base. Pour approfondir ce concept, un consultant Arolla a proposé une formation poussée au DDD ainsi qu un accompagnement sur du coaching sur mesure, afin d intégrer les pratiques de design et de développement idoines qui permettront à l équipe de développer une solution durable et de continuer à mettre en place une architecture dont le code sera aligné sur les enjeux métiers et évolutive dans le temps. Dans le cadre de sa transformation Agile, et plus particulièrement du programme Continuous Delivery mené par l Agile Center SGCIB, Arolla intervient pour promouvoir le Software Craftsmanship (TDD, BDD, DDD, FP-Style...). L Agile Center SGCIB a fait appel à des coaches Arolla afin qu ils puissent intervenir sur la diffusion du DDD sous plusieurs formes différentes: 1. Formation : création d une formation DDD, proposée sous plusieurs formats (court, une demie journée; long, 2 jours) 2. Coaching : accompagnement en situation pour mettre en oeuvre les pratiques apprises (à partir de 2 jours) Dans le cadre des projets de rénovation des outils qui supportent les activités de trading, Engie a entrepris de créer un nouveau service unifié d acquisition de deals, avec un format de représentation des deals agnostique aux composants existants. Bien consciente des risques inhérents à ce type d initiative, l équipe a fait appel à un consultant Arolla sur un accompagnement en analyse et modélisation avec les outils conceptuels de DDD. Cette intervenion a pris la forme d un workshop de deux jours plus quelques jours en suivi ultérieur. Le bénéficie de cet accompagnement pour Engie a été de converger vite vers une vision consensuelle des différentes facettes d un deal, en exploitant les opportunités de simplification et d isolation entre elles. 25 rue du Louvre 75001 PARIS - Tél: 01.77.38.82.00 www.arolla.fr - contact@arolla.fr

Coûteux mais précieux : exploitez au mieux votre code hérité Ne vous laissez pas dominer par le code hérité! Le code hérité («legacy») est coûteux en maintenance et lent en évolution. Ce code hérité est aussi précieux sinon il ne constituerait pas un problème et serait facile à jeter ou remplacer. Alors que les livres et conférences se focalisent sur les projets neufs, que faire lorsque vous êtes face à une vaste quantité de code hérité récalcitrant qu il faut entretenir et faire évoluer? Quoi de nouveau sur les approches pour maîtriser le code hérité? S il n existe bien entendu aucune méthode miracle, le panorama des démarches et techniques pertinentes n a jamais été aussi vaste. 5 principes pour intervenir efficacement sur des application héritées Distinguez ce qui mérite une attention particulière Introduisez la testabilité Décidez d une stratégie d intervention claire et limitée Communiquez clairement la stratégie Renforcez vos fondamentaux Le code hérité n est pas une fatalité Dans de nombreuses situations, la solution la plus raisonnable consiste à conserver le code hérité tel qu il est ; il suffit alors de le présenter d une façon plus agréable et plus testable vis-à-vis du reste du code qui l utilise. A défaut, même lorsque l état du code semble désespéré, il reste toujours possible d intervenir pour l améliorer suivant l objectif désiré, par exemple pour réduire les dépendances entre modules. L étape difficile et souvent sous-estimée consiste à transformer cet objectif désiré en une stratégie concrète, par exemple définir clairement les directions des dépendances autorisées entre chaque module. Cette stratégie, une fois bien visualisée et partagée par tous, est ensuite mise en oeuvre progressivement au fil des interventions quotidiennes sur le code. Sujet peu considéré et méprisé jusqu à présent, le code hérité et ses enjeux deviennent de plus en plus un sujet d actualité dans de nombreuses sociétés. Il n existe aucune solution miracle, néanmoins l effet cumulé d un certain nombre de techniques appliquées progressivement permet d atteindre des objectifs véritablement ambitieux.

Business cases Dans le cadre de la transformation agile des pratiques entamée au sein de l entité métier CTT/CTY, SGCIB a fait appel à des coaches Arolla pour rendre testables des applications legacy (monolithiques et non pensées pour être testées). Maintenir des applications legacy se révèle être extrêment coûteux et provoque des régressions non identifiées. De plus, ajouter des tests sur un existant est une démarche complexe. Le coach Arolla est intervenu en mode roadshow, équipe par équipe, sur quatre applications, en utilisant un même mode opératoire: diffuser son savoir-faire par binômage, avec un développeur qui apportait sa connaissance de l application, pour isoler des composants rendus testables progressivement. Les binômes ont rendu testable chaque application legacy après 15 jours d intervention. Audit d une application stratégique de Trading Electronique afin d en optimiser les performances devenues insatisfaisantes et de permettre sa meilleure maintenabilité à terme. Deux consultant d Arolla sont intervenus en binôme pendant 3 jours afin d analyser l existant (architecture applicative et testing), corriger les problèmes prioritaires et dresser une liste de préconisations et d actions à mettre en place à l issue de leur intervention. Alors que Kyriba souhaitait moderniser une de ses briques fonctionnelles stratégiques (code legacy en Python), la société a fait appel à Arolla afin de les aider à identifier une architecture cible pour refondre l existant et optimiser le legacy. Le consultant Arolla a livré à la suite d un audit de 5 jours des préconisations durables et évolutives dans le temps basées sur tous les aspects: techniques (performance du SI), économiques (facilité de maintenance) et humains (faculté à trouver des compétences facilement). A la suite de cette intervention, le consultant Arolla est intervenu pour diffuser au sein de l équipe de développement un ensemble de bonnes pratiques (ingénierie de développement et de tests) permettant de minimiser la prduction de dette technique dans le cadre des futures réalisation. 25 rue du Louvre 75001 PARIS - Tél: 01.77.38.82.00 www.arolla.fr - contact@arolla.fr

programmation fonctionnelle Profitez des avantages de la dans votre langage habituel Meilleure montée en charge, moins de code et moins de bugs avec le style «Functional Programming» Vous entendez parler de plus en plus souvent de programmation fonctionnelle, et c est normal puisque ce style de programmation est essentiel pour profiter des processeurs multi-coeurs. Mais devez-vous changer de langage pour cela? Nos habitdes de programmation sont depuis longtemps liées à l architecture traditionelle des microprocesseurs où les tâches sont exécutées en séquence, à des fréquences toujours croissantes. Ce style de programmation est désormais remis en question car les processeurs atteignent leurs limites en fréquence. Ils offrent en contrepartie un nombre croissant de coeurs capables de travailler en parallèle. On parle alors de montée en charge sur les multi-coeurs. Pour les applications qui exigent une montée en charge importante, on retrouve une problématique similaire, mais entre noeuds distribués sur un réseau plutôt qu entre coeurs dans une même puce. On parlera alors par exemple d algorithmes distribués de type «map-reduce». Une autre façon de penser le code Or, écrire des logiciels capables d exploiter tous ces coeurs exige un véritable changement de style de programmation, et cela explique l engouement pour la programmation fonctionnelle (FP) que lon observe actuellement, avec l arrivée de langages tels que Clojure, Scala et F#, Groovy, Kotlin et Ceylon qui embrassent la programmation fonctionnelle. Pas besoin de changer de langage! Vous avez choisi Java ou C# pour vos projets? Si ces langages orientés objet ne sont pas réputés pour leurs possiilités en programmation fonctionnelle, il est tout à fait possible de programmer en Java ou C# dans un style fonctionnel. C est même une excellente idée, et pas seulement pour la montée en charge: propre, testable, économique, abordable, évolutivité du design... Vous n avez pas besoin de changer de langage pour bénéficier de tous ces avantages. Il suffit d apprendre à penser de façon fonctionnelle, ce qui n est pas difficile, et de bien comprendre l intérêt de s imposer une discipline supplémentaire en intervenant sur le code. Adopter le style FP, c est améliorer la qualité du code et du design L introduction progressive du style de programmation fonctionnel va vous aider à mettre de l ordre dans votre code grâce à quelques principes simples et puissants, et cela sans changer de langage.

Nos modes d intervention 25 rue du Louvre 75001 PARIS - Tél: 01.77.38.82.00 www.arolla.fr - contact@arolla.fr

Pour nous contacter: Jonathan SALMONA, directeur commercial jonathan.salmona@arolla.fr 06 88 63 84 75 Cyrille MARTRAIRE, directeur technique cyrille.martraire@arolla.fr 06 09 33 94 70 25 rue du Louvre - 75001 PARIS Tél: 01 77 38 82 00 conseil@arolla.fr www.arolla.fr