Méthodologie SCRUM : tout savoir

Agile ? Scrum ? Cycle en V (Waterfall)? Difficile de déterminer quelle est la meilleure méthode pour gérer un projet !

Parmi les approches de plus en plus utilisées, la méthodologie SCRUM ne manque pas d’intérêts, découvrez pourquoi.


Une autre approche de la gestion de projet

Le terme agile définit une approche qui remet en question les méthodes dites traditionnelles, comme le cycle en V par exemple, qui laissent peu de place au changement. En impliquant au maximum le client, les méthodes agiles quant à elles permettent une plus grande réactivité.

Ce principe d’agilité repose sur 4 valeurs fondamentales et valorise :

  • Les individus et leurs interactions plus que les processus et les outils
  • Des logiciels opérationnels plus qu’une documentation exhaustive
  • La collaboration avec les clients plus que la négociation contractuelle
  • L’adaptation au changement plus que le suivi d’un plan

Aujourd’hui, ces méthodes ont fait leurs preuves et tout le monde ou presque a déjà entendu parler d’une méthode agile : Kanban, eXtreme Programming, RAD, SCRUM…


F.O.R.C.E : Les valeurs SCRUM

Non, il ne s’agit pas du dernier Star Wars !

Le succès de la méthodologie SCRUM réside dans le fait qu’elle est soutenue par des valeurs de travail qui contribuent à la réussite du projet :

  • Focalisation : Le fait de définir un objectif tangible et simple afin de faire travailler tous les membres de l’équipe dans la même direction et produire un travail de meilleure qualité.
  • Ouverture : Travailler ensemble suppose que nous communiquons sur la façon dont nous travaillons, sur ce qui nous empêche d’avancer ou sur ce qui nous inquiète pour mieux le traiter ensemble.
  • Respect : Partager succès et échecs, c’est apprendre à se respecter les uns les autres. L’entraide inspire le respect.
  • Courage : Une équipe soudée apporte du soutien et permet de faire appel à davantage de ressources. Elle donne le courage de relever de plus grands défis, mais aussi d’apprendre de nos échecs.
  • Engagement : En maîtrisant les périodes de sprint, que nous évoquerons plus bas, l’avenir du projet est lui aussi maîtrisé et le chemin du succès est engagé.  

La méthodologie SCRUM

SCRUM est considéré comme un cadre de gestion de projet et est constitué d’une série de rôles, de réunions et d’artefacts.

Les rôles dans un projet SCRUM

SCRUM définit 3 rôles :

  • Le Product Owner porte la vision du produit à réaliser et représente en règle générale le client. C’est l’expert métier de la team qui effectue l’analyse nécessaire aux prises de décisions et priorise les exigences fonctionnelles ou non du projet (Product Backlog).
  • Le Scrum Master est le garant de la méthodologie SCRUM. Pédagogue et diplomate, il s’assure que l’équipe en charge du projet adopte bien les principes et les valeurs de SCRUM.
  • La Dev Team, composée de 3 à 9 collaborateurs, réalise le produit demandé par le client.

Les réunions

La vie du projet est rythmée par un ensemble de réunions clairement définies et limitées dans le temps, c’est ce que l’on appelle le time boxing :

  • Le Sprint : Il peut varier entre quelques jours et un mois maximum selon les projets. Il s’agit d’un intervalle de temps appelé itération, pendant lequel la Dev Team va concevoir, réaliser et tester de nouvelles fonctionnalités.
  • Le Sprint Planning : À chaque début de sprint, l’équipe de développement sélectionne les éléments prioritaires du “Product Backlog” qu’elle pense pouvoir réaliser au cours du sprint, toujours en accord avec le Product Owner.
  • Le Daily Scrum ou mêlée : Réunion quotidienne de 15 minutes maximum qui permet aux membres de la Dev Team de se synchroniser, d’identifier les difficultés rencontrées et de mesurer son avancement sur le sprint en cours.
  • La Sprint Review : Réalisée en fin de sprint, elle consiste à présenter aux parties prenantes les fonctionnalités développées au cours du sprint, de recueillir leurs remarques et de faire le point sur l’avancement général du projet.
  • La Sprint Rétrospective : Elle a pour but d’échanger sur les problèmes méthodologiques ou organisationnels rencontrés tout au long du sprint, d’en tirer des leçons et de les mettre au profit des suivants, dans un objectif d’amélioration continue collective.

Les outils SCRUM

Product Backlog, Sprint Backlog, graphique d’avancement… de nombreux artefacts, ou outils, participent au cadrage de la méthodologie SCRUM :

  • Planning Poker : c’est une technique d’estimation collective. Chaque élément du Product Backlog est estimé collectivement en se basant sur l’unité appelée « Story Point ». Cette estimation va notamment aider le Product Owner à prioriser son Product Backlog.
  • Story Point : Cette unité de mesure permet de faciliter l’estimation et la planification des Sprints, tout en évitant de tomber dans l’illusion de la précision des estimations ou l’amalgame entre les jours, les hommes et le délai de réalisation.
  • User Story : Technique permettant de formaliser synthétiquement les besoins sans perdre de vue l’essentiel : le besoin concerne QUI, en QUOI il consiste et dans quel BUT.
  • Product Backlog : Il s’agit d’une liste ordonnancée des besoins, généralement formulés sous forme de User Stories. Elle est gérée par le Product Owner.
  • Definition of Done (DOD) : Permet de déterminer à quel moment une tâche est aboutie et livrée, celle-ci peut être exprimée sous forme d’une checklist.

Quelle que soit la méthodologie employée, chez The Coding Machine nous accompagnons nos clients tout au long de leur projet. Si vous aussi vous souhaitez développer un projet SCRUM, n’hésitez pas à nous contacter.


LA CERTIFICATION CHEZ SAEGUS : tous les ans, de nombreux collaborateurs passent la certification officielle de la méthodologie SCRUM chez notre partenaire Saegus. N’hésitez pas à les contacter si vous souhaitez en savoir plus.

 

Comment améliorer l’accessibilité web d’un site ?

En créant un site web, le premier objectif recherché est qu’il soit vu et lu par le plus grand nombre de personnes. Or, pour cela, il doit être accessible à tous, y compris aux personnes présentant un handicap. 

Venu sensibiliser nos équipes à l’accessibilité web, Yann Goupil, expert en accessibilité web chez mc2i Groupe, nous a donné quelques recommandations en la matière.


Accessibilité web, de quoi parle-t-on ?

« Mettre le web et ses services à la disposition de tous les individus, quel que soit leur matériel ou logiciel, leur infrastructure réseau, leur langue maternelle, leur culture, leur localisation géographique ou leurs aptitudes physiques ou mentales. »

Sir Tim Berners-Lee,
Co-inventeur du web, Directeur du W3C

Selon le W3C et sa branche la « Web Accessibility Initiative », l’accessibilité du web signifie que les personnes handicapées peuvent utiliser le Web. Plus précisément, l’accessibilité signifie que le Web est conçu pour que ces personnes puissent percevoir, comprendre, naviguer et interagir de manière efficace, mais aussi créer du contenu et apporter leur contribution au Web.


Handicap et web, incompatibles ?

L’accessibilité web vise toutes les déficiences, qu’elles soient visuelles, auditives, motrices, cognitives, neurologiques ou liées à la parole.

Les personnes concernées par l’accessibilité numérique ont donc des profils et des manières d’utiliser le Web très variés : navigation au clavier ou avec des périphériques adaptés (eye-tracking, contrôle vocal ou par la pensée), utilisation d’un lecteur d’écran, etc.

Grâce à l’accessibilité web, l’utilisation d’un site ou d’une application mobile par une personne handicapée est rendue possible.


L’accessibilité web : une démarche d’inclusion

Rendre un site web accessible à tous ne signifie pas qu’il faille créer un site pour chaque type de déficience. Il s’agit simplement d’inclure dans le processus de création du site, les problématiques rencontrées par les personnes en situation de handicap.

Handicap visuel : daltonisme, cataracte, presbytie, cécité complète…

  • Difficultés rencontrées : Navigation de page en page difficile, lecture des zones de texte compliquée ou impossible, illisibilité d’une page à cause du manque de contraste de couleurs.
  • Solutions : Décrire les images, faciliter la navigation par des libellés explicites, différencier l’avant de l’arrière-plan grâce aux contrastes, ne pas véhiculer de l’information via un code couleur.

Handicap auditif : surdité partielle ou totale

  • Difficultés rencontrées : Problèmes pour entendre les sons des vidéos ou des fichiers audio.
  • Solutions : Offrir la possibilité de visualiser des sous-titres pour les contenus vidéo et produire des transcriptions textuelles.

Handicap moteur : paraplégie, sclérose en plaques, traumatisme…

  • Difficultés rencontrées : Difficultés à utiliser le matériel informatique.
  • Solutions : Rendre la navigation possible au clavier, veiller à ce que la navigation soit simplifiée, supprimer la limite de temps de saisie, mettre en place de l’aide à la saisie.

Les standards de l’accessibilité web

La Web Accessibility Initiative édite des standards, les « Web Contents Accessibility Guidelines » devenus depuis 2012 une norme ISO. Ils présentent des principes généraux qui portent sur la perceptibilité, la compréhension, l’utilisation et la robustesse des sites Web.

Ces règles et critères, qui ne sont pas spécifiques à un langage ou à une technologie, sont classés en 3 niveaux de priorité :

  • A : Niveau minimal – Par exemple : fournir un équivalent textuel à un contenu non textuel.
  • AA : Niveau normal – Par exemple : garantir la visibilité du focus.
  • AAA : Niveau amélioré – Par exemple : proposer le contenu en langue des signes.

En France, vous pouvez retrouver toutes ces informations dans le Référentiel Général d’Accessibilité pour les Administrations (RGAA).


La réglementation en matière d’accessibilité numérique

En France, la loi impose aux administrations ainsi qu’à certaines entreprises privées (ayant une mission de service public ou d’intérêt général ou réalisant plus de 250 millions d’euros de chiffre d’affaires en France) de rendre leurs services en ligne (site Internet, Intranet, applications mobiles) accessibles à tous.

À défaut de respecter cette obligation, des sanctions financières peuvent être prononcées d’un montant allant jusqu’à 20 000 € selon l’article 8 du décret du 24 juillet 2019 relatif à l’accessibilité aux personnes handicapées des services de communication au public en ligne.


Vous souhaitez développer une application, une plateforme web ou créer un site Internet ?

À Paris, Lyon, Hong Kong ou Lisbonne, toutes les équipes de The Coding Machine seront ravies de vous accompagner dans votre projet !

Créer un Extranet : avantages et limites

Vous souhaitez créer un Extranet ou envisagez de refondre une application métier déjà existante ?

Si un tel projet ne manque pas d’intérêts, certaines précautions doivent toutefois être prises pour éviter certains pièges.


Pourquoi créer un Extranet ?

Un Extranet est une application métier extension du système d’information d’une société à l’usage de ses partenaires (clients, fournisseurs…). Il a pour objectif de leur donner accès à certaines informations techniques ou relatives à la gestion de l’entreprise afin qu’ils coordonnent leurs activités.

Les exemples de projet Extranet sont nombreux. Il peut notamment s’agir de :

  • proposer un catalogue de vos produits et services,
  • donner un accès à vos factures ou à la gestion de vos stocks,
  • mettre en place un programme de fidélité,
  • automatiser un processus de gestion avec plusieurs interlocuteurs.

Les avantages d’un projet Extranet

Les Extranets reposent, dans la plupart des cas, sur des technologies web. L’avantage est donc qu’il n’y a aucun logiciel à installer : l’accès à l’Extranet se fait simplement par le biais d’une connexion sécurisée avec un mot de passe, et ce, depuis n’importe où.

L’Extranet est simplement un type d’application web, dont la particularité est qu’il est pensé pour un besoin « métier » spécifique. On parle aussi d’application métier.

Au-delà de la facilité d’accès, créer un Extranet présente plusieurs intérêts pour une entreprise, parmi lesquels :

  • faciliter le partage des informations,
  • gagner en productivité, en évitant par exemple une double saisie,
  • sécuriser les transactions grâce à la connexion sécurisée par un mot de passe.

Les contraintes d’une application métier Extranet

Créer un Extranet est un projet difficile qui peut présenter certaines contraintes. Pour que celles-ci ne bloquent pas l’avancée du projet, il est important de les prendre en compte dès le début de votre réflexion.

  • Des contraintes sur l’aspect et la prise en main de l’outil métier

L’Extranet est l’interface entre une entreprise et ses partenaires. Il s’agit à la fois d’un outil de travail et d’un vecteur d’image de votre entreprise. Une attention particulière doit de ce fait être portée à l’ergonomie, pour offrir un outil de travail efficace, mais aussi au design, pour donner une image positive de votre société. 

En plus de devoir construire un outil beau et pratique, une troisième contrainte s’ajoute au projet de création d’un Extranet : il faut souvent concevoir et/ou tester cette application sans avoir recours aux utilisateurs finaux. En effet, la plupart du temps, ces utilisateurs sont des clients ; il est donc difficile de les solliciter. 

  • Des contraintes liées à la facilité d’usage et d’apprentissage 

Le temps qui peut être consacré par les partenaires à l’apprentissage de l’outil métier est forcément court. L’utilisateur doit pouvoir trouver facilement et sans se poser trop de questions tous les éléments nécessaires à son travail. 

Certains processus sont cependant complexes par nature et imposent des développements spécifiques. Comment faire en sorte de prendre en compte la complexité du domaine tout en proposant un Extranet simple d’utilisation ?

La solution : Il faut réduire l’application à l’essentiel, mais seulement à première vue ! L’application métier doit ainsi proposer des fonctionnalités simples à la plupart des utilisateurs et des fonctionnalités avancées qui ne s’affichent que pour les utilisateurs les plus chevronnés.


Les pièges à éviter en créant un Extranet

S’il peut être tentant d’utiliser des solutions préexistantes (outils internes de type Windows, ou site web classique) pour créer un Extranet, le copier-coller est une fausse bonne idée.

En effet, si les outils internes comme une base Access sont utilisés par des utilisateurs internes, les partenaires extérieurs n’auront pas forcément la même facilité à s’en servir, notamment du fait de leur manque de formation et de leur utilisation moins fréquente.

De la même façon, le fonctionnement d’un site web classique est rarement adapté au domaine des applications métiers.
Ainsi, s’il est intéressant de procéder par étapes pour passer une commande sur un site e-commerce, afin d’engager le client dans le processus de vente en proposant plusieurs formulaires simples, créer un Extranet avec une fonctionnalité découpée en plusieurs étapes peut faire perdre beaucoup de temps à vos utilisateurs, et de finir par les agacer.


Vous souhaitez créer un Extranet pour votre entreprise ou tout autre application métier ?

N’hésitez pas à prendre contact avec les équipes de The Coding Machine.

TheCodingMachine autour du monde !

Nous sommes un groupe international, composé de quatre filiales indépendantes situées à Paris, Lyon, Hong Kong et Lisbonne.

Les autres points sur la carte représentent notre communauté de développeurs, des experts en développement web avec lesquels nous travaillons depuis le début de l’aventure TCM.

N’hésitez pas à leur faire un petit coucou !

Posted in TCM

Réussir les ateliers de conception d’un projet web

Après avoir abordé les grands principes définissant une phase de conception dans notre précédent article, nous vous proposons de nous atteler à la définition plus précise des ateliers de conception d’un projet web.

Si vous êtes effectivement passés par toutes les étapes que nous avons décrites, que vous ayez un projet en tête, que vous nous ayez déjà contacté, que vous soyez satisfait de la proposition d’accompagnement que nous avons réalisée, et que vous sachiez que la phase de conception va commencer, vous devez encore légitimement vous poser quelques questions.

Comment se déroule les ateliers de conception d’un projet web ? Combien de temps prendront-ils ? Comment allez-vous vous approprier le design que vous avez réalisé ? 

Une fois que vous avez terminé les différentes étapes préalables à votre projet, de l’idéation au choix de votre partenaire, il est légitime de vous poser encore quelques questions au moment d’aborder la phase d’ateliers de conception promise par votre partenaire.

Pour répondre à toutes ces questions et aller un peu plus en profondeur dans cette phase d’ateliers , nous vous proposons de prendre un exemple concret : l’entreprise DISRUPTOR2000 vient de nous contacter pour développer une application révolutionnaire de mise en relation de particuliers sur un seul et unique réseau social : DISRUPTBOOK. DISRUPTOR2000, en bon élève nous ont fait parvenir un cahier des charges extrêmement détaillé sur la base duquel nous avons pu leur fournir une estimation financière et une proposition d’accompagnement sur-mesure. Nous avons bien identifié les éléments critiques de l’application (rôle de l’utilisateur, interaction via des formulaires, volumétrie des données échangées, publication de photos, vidéos, messagerie instantanée, etc.) et défini une base technique solide (un front en VueJS et un back en Symfony par exemple) mais nous avons encore besoin d’informations pour déterminer la manière de les présenter. Aussi nous savons que l’interaction entre les utilisateurs et la viralité de l’application seront les éléments clés de sa réussite. De plus il va nous falloir travailler sur un design efficace et une expérience utilisateur parfaitement adaptée. Dernière chose, DISRUPTOR2000 souhaite disposer de technologies flexibles et ne pas être dépendant d’un outil sur étagère. Il souhaite connaître les différents éléments qui vont composer son application et s’assurer qu’elle pourra évoluer facilement

– Revue des interfaces et analyse du besoin

– Design UI/UX

– Architecture technique

– Validation des spécifications.

Dans notre précédent article, nous avions vu que notre phase de conception allait se découper en plusieurs ateliers ; que nous avons choisi de définir comme suit pour l’exemple de DISRUPTOR2000.

1er atelier : Revue des interfaces & analyse du besoin

Ce premier atelier va nous permettre de revoir ensemble toute la proposition d’accompagnement ainsi que le cahier des charges. Nous validerons très rapidement les éléments qui ne font pas débat (il y aura 2 types d’utilisateurs, une gestion des droits classique, etc.) et nous attarderons sur les fonctionnalités un peu plus complexes.

L’objectif n’est pas seulement de valider bêtement une liste de fonctionnalités, mais plus d’être force de proposition sur la manière de traiter les différents objets métiers. Nous avons effectivement la chance de travailler pour un grand nombre de sociétés dans des secteurs extrêmement variés et nous mettons cette expérience au profit de tous nos nouveaux clients. Il s’agit alors de proposer des schémas globaux, éprouvés, sur lesquels il paraît judicieux de se calquer pour assurer le bon fonctionnement de l’application. Là ou les deux visions s’entrechoquent (celle du client et la nôtre), nous ouvrons le débat et validons ensemble la manière de traiter chaque sujet. Nous fournissons ensuite un document détaillé récapitulant le comportement de l’application dans son ensemble.

2ème atelier : Design UI/UX

Pour ce second atelier nous pouvons encore féliciter DISRUPTOR d’avoir déjà travaillé sur un design et des parcours utilisateurs. Ils souhaitent conserver l’ensemble des éléments déjà réalisés, mais sont plutôt réceptifs à l’idée de recevoir des conseils sur des points d’amélioration.  Nous avons donc réalisé un audit graphique en amont de l’atelier que nous allons leur présenter en séance et intégrer les modifications qu’ils auront validé à la fin de l’atelier.

3ème atelier : Architecture

Cet atelier est un peu particulier. Bien que nos interlocuteurs n’aient pas toujours les compétences techniques nécessaires pour juger le type de technologies choisies, nous tenons à leur présenter un document d’architecture technique en leur expliquant ses différents composants.

Nous en profitons notamment pour justifier l’emploi de chaque outil en le mettant en rapport avec ses besoins. DISRUPTOR peut alors vérifier grâce à ce document, que l’ensemble des besoins exprimés est satisfait. En fonction des retours et des échanges pendant cet atelier nous validons ou modifions ce document.

4ème atelier : Validation des spécifications

Ce dernier atelier va nous permettre de présenter l’ensemble des livrables à DISRUPTOR 2000 pour nous assurer de la bonne compréhension et de la bonne traduction de leurs besoins en spécifications fonctionnelles et techniques. Ce moment sera l’occasion de faire les derniers retours sur les thématiques abordées avant de valider la phase de conception.

DISRUPTOR2000 nous a donc fait les remarques suivantes :

REMARQUE LIVRABLE 1

“Finalement, je ne souhaite pas que certains utilisateurs aient plus de droits que d’autres dans un premier temps. Je ferais une partie pour les entreprises dans un second temps, une fois que le modèle sera bien assis, sortons cette partie du périmètre de l’application”. Pas de problèmes ! Nous pouvons mettre de côté cette partie de la spécification et la récupérer pour mettre en place des évolutions dans un second temps 😉

REMARQUE LIVRABLE 2

“Super travail TheCodingMachine, je suis super impressionné ! Mais finalement je ne suis pas sûr que le bleu comme couleur principale soit la plus adaptée, on pourra tout faire en vert ?” Bien sûr, nous vous fournirons l’ensemble des écrans déclinés en vert sans aucun problèmes

“Ah et on peut refaire une page d’accueil complètement différente ? J’aimerais voir ce que ça donne avec ça là, et ça là…”
Malheureusement à ce stade-là nous ne pouvons que faire des adaptations mineures des maquettes proposées comme la couleur, l’emplacement de certains éléments. L’atelier design et les itérations sont là pour valider l’identité graphique de votre application que nous vous proposons de décliner en fonction du nombre de pages défini dans les spécifications. Si vous le souhaitez nous pouvons faire intervenir notre équipe Design en marge de ce projet pour vous proposer d’autres intentions de design, mais cette prestation sera séparée du projet. Nous pourrons bien entendu intégrer tous les nouveaux éléments graphiques ainsi réalisés à l’application !

REMARQUE LIVRABLE 3

“Bon de toute façon, la technique je vous fais confiance, je ne comprends pas grand chose. Mais c’est aussi quelque chose qui me fait un peu peur parce que je ne peux pas avoir le contrôle, comment vous pouvez m’assurer que tout va bien se passer ?”

Nous travaillons essentiellement grâce aux technologies développées en Open Source. Ces outils sont notamment développés par Google, Amazon ou encore Facebook, c’est à dire qu’elles sont suivies par les plus grandes communautés de développeurs dans le monde. Toutes ces technologies seront donc totalement évolutives et maintenables. De plus, vous serez totalement propriétaire du code que nous allons vous livrer, si vous souhaitez embaucher des développeurs en interne, les bonnes pratiques techniques que nous mettons en place leur permettront de le reprendre et de le faire évoluer très facilement. Nous documentons aussi toutes les applications que nous développons et réalisons régulièrement des guides plus fonctionnels (administrateur ou utilisateur) dans les cas d’applications complexes pour faciliter l’adhésion à l’outil et permettre une prise en main rapide.

A noter qu’il arrive souvent que la phase de conception révèle de nouvelles fonctionnalités ou besoins liés à l’application, dans ce cas-là, si les adaptations sont mineures nous pouvons les intégrer au périmètre de développement. Si elles concernent le développement d’un module entier ou d’un set de fonctionnalités, nous pouvons proposer de modifier les spécifications et réévaluer le coût global du projet pour intégrer ces éléments. Dernier cas possible, nous proposons un allotissement de l’application en développant la première base identifiée et en planifiant les évolutions pour un second lot. Nous avons donc intégré ces différents éléments aux spécifications dans les jours qui suivaient et DISRUPTOR a finalement pu valider la spécification. Il est temps de commencer à développer !

Mais quels sont les critères qui peuvent vous permettre d’évaluer la réussite de cette phase de conception ? De vérifier la qualité des livrables fournis ? De se satisfaire des ateliers proposés ?

La suite au prochain épisode 😉

N’oubliez pas de nous suivre sur vos réseaux sociaux préférés !

Pierre Bertrand, Consultant chez TheCodingMachine

From Paris to London, notre CTO anime un workshop à la PHP UK Conference 2020 !

ITW : David Négrier, notre CTO, nous raconte l’expérience de son 1er workshop PHP

« C’est vraiment sympa d’aller dans une conférence où on peut rencontrer des gens de la communauté PHP »
Le 21 février, David s’est rendu au coeur de la ville de Londres, au sein de la célèbre PHP UK Conference. L’opportunité pour lui d’animer un workshop centré sur PHP et GraphQL.
Chaque année, cette conférence vise à proposer un programme complet, accompagné de nombreux speakers, sponsors, et participants. Beaucoup de partage de connaissance et d’échange se font dans cet event, c’est ce qu’affirme David dans son interview.

1. Combien de temps a duré ton workshop ?

C’était une séance de 2h15. J’ai d’abord fait une présentation de 1h sur GraphQL en général ; l’écosystème autour de GraphQL en PHP ; et GraphQLite qui est la librairie PHP que nous avons développée, permettant de faire du GraphQL beaucoup plus facilement.
Suite à ça, j’ai fait une petite démo pour ensuite passer à l’atelier autour de GraphQLite.

2. Combien de personnes étaient présentes à ton workshop ?

Beaucoup, je dirais qu’il y avait une bonne cinquantaine de personnes présentes et accompagnées de leur machine (ordinateur).

3. C’est ton 1er workshop en tant qu’intervenant ?

J’ai déjà fait de nombreux talks, la plupart en France, un à San Francisco en 2007, mais je n’avais jamais animé de workshop. Et en particulier en anglais!

4. Tu étais stressé de présenter ce workshop ?

J’avoue que j’étais un peu stressé. D’ailleurs, j’ai passé plusieurs semaines à le préparer. J’ai même pris le soin d’amener une clé USB pour chaque participant, contenant le projet installé.
Aussi, je stressais par rapport à mon accent anglais, j’ai essayé de m’appliquer oralement pour qu’on me comprenne.

 5. As-tu rencontré des difficultés à mener ce workshop ?

La seule difficulté était le temps. Intervenir dans un workshop de 50 personnes pour seulement 2h, ça passe très vite, et par conséquent ça ne laisse pas assez de place pour l’interaction.
Dans ces situations, on sait qu’il y a des personnes qui n’arriveront pas à suivre, mais il faut malgré tout faire en sorte qu’elles ne s’ennuient pas. Ainsi, la difficulté était de trouver un bon équilibre entre le manque de temps et la pertinence du workshop, mais aussi entre la présentation théorique et les travaux pratiques.
Lors de l’atelier GraphQLite, j’ai tout de même essayé au maximum d’accorder du temps à chaque participant.

6. As-tu assisté à d’autres workshops de la PHP UK Conference en tant que participant ?

Oui bien sûr, j’ai pu participer à 2 ateliers très intéressants dont « ATDD Bowling – A Practical BDD Workshop » présenté par John Behrens, et « Introduction to Time Series » présenté par David McKay.

7. Tu as pu discuter avec des personnes de ton workshop et des personnes en dehors de ton workshop ?

En effet, à la fin de mon workshop, j’ai eu plus de temps pour discuter avec certains participants. D’ailleurs, j’ai pu aider un autre speaker à mettre en place une extension PHPStan. Ces moments d’interaction avec la communauté PHP sont vraiment importants. J’ai même pu rencontrer Georges Banyard, qui travaille sur la gestion des erreurs dans le coeur du langage PHP, un sujet qui nous intéresse énormément à TheCodingMachine puisque nous avons écrit une librairie PHP pour résoudre ce genre de problème.
Puis, j’ai passé la majorité de mon temps à me balader allant à la rencontre d’autres participants & intervenants. J’ai croisé Mathieu Napoli, l’intervenant du workshop « Serverless PHP applications with Bref », une personne que j’admire avec qui j’ai eu l’occasion de discuté plusieurs fois lors d’autres événements.
Bref, c’est vraiment sympa d’aller dans une conférence où on peut rencontrer des gens de la communauté PHP.

8. Si c’était à refaire tu le ferais ? Quelles améliorations apporterais-tu ?

Sans aucune hésitation, oui, je ferais d’autres workshop avec plaisir. C’était vraiment une belle expérience, j’ai rencontré beaucoup de monde, ainsi que des gens que j’avais déjà discuté dans d’autres événements.
Pour mon prochain workshop, je pense que j’essaierai de trouver une solution pour davantage interagir avec les participants.
PHP UK Conference TheCodingMachine

Quelques témoignages des participants au workshop de David :

Témoignage de Chris Hogben
Wow. This tutorial was amazing and could have easily have been a full-day workshop. As Adam says, it was really well prepared with hands-on examples that were easy to follow and see what was happening at each stage. The amount of information provided for each concept was enough to understand and add value, but not too much to slow down the session. It did feel slightly rushed, but this was probably to be expected given the amount of content. Thanks David for this session! 🙂
Témoignage d’Adam Cooper
One of the best prepared workshops I’ve seen in a long time with about as much of an in depth review of the tech/libraries that you could fit into a 2 hour slot.
Merci à David Négrier pour cet interview, retrouvez-le prochainement :

N’hésitez pas à réserver vos places !

Le regard d’un insider de TheCodingMachine, Yassine

De son expérience relatée dans cette vidéo, Yassine dévoile ses ambitions, et comment à travers son stage il s’est émancipé.

« Chez TheCodingMachine, un(e) stagiaire est considéré(e) comme un(e) futur(e) chef de projet »
Yassine Hadari a décidé de nous partager son expérience, de stagiaire à chef de projet chez TheCodingMachine, et ce qu’il conseille aux futur(e)s candidat(e)s qui seraient à la recherche d’une entreprise.
Il a réussi à résumer tout ce que son stage lui a apporté, à se projeter dans un métier riche qui lui donne avant tout un sentiment d’appartenance à une communauté, mais aussi qui le challenge. De la transmission de bonnes pratiques, autant techniques que de gestion de projet, à l’autonomie acquise à travers les différents projets, Yassine nous dit tout !
Il nous dévoile également ses ambitions sans peur, avec sérénité. Il se projette dans une structure, qui semble correspondre à ses valeurs : esprit d’équipe, intégration & apprentissage.

Yassine, Chef de projet, TheCodingMachine

Si toi aussi, tu as envie de rejoindre l’aventure, envoie-nous ton CV :
recrutement@thecodingmachine.com
Tu veux en parler avec Yassine ? Contacte-le, il sera ravi de te répondre.

Elasticsearch : 3 étapes pour une utilisation optimale

Elasticsearch est une base de données NoSQL particulièrement performante pour mettre en place un système de recherches complexes.

Un atout majeur dans l’exploitation des données, mais encore faut-il savoir l’utiliser !


Elasticsearch, qu’est-ce que c’est ?

Définition

Elasticsearch est un outil performant qui permet de mettre en place un système de recherches complexes. Il permet de stocker une grande quantité de documents, de les indexer et les exploiter en temps. Il s’agit d’une base de données open source NoSQL qui n’utilise donc pas des données relationnelles comme MySQL.
Elasticsearch propose une API REST et utilise des documents JSON, ce qui permet d’obtenir des résultats pertinents et rapides aux diverses requêtes effectuées : un atout majeur dans l’exploitation des données.

Lexique

  • Nœud : un processus Elasticsearch en cours d’exécution.
  • Cluster : un composé d’un ou de plusieurs nœuds.
  • Index : un espace de logique de stockage de documents de même type, représentant l’ensemble de vos données.
  • Lucene : une bibliothèque Open Source qui permet d’indexer et de rechercher du texte. Le moteur d’Elasticsearch.
  • Shard : une partition de l’index qui correspond à une instance de Lucene. Attention, il n’est pas possible de modifier le nombre de shards après leur création.
  • Document : un enregistrement dans un shard Elasticsearch.

Utiliser Elasticsearch : les 3 étapes essentielles

Pour bénéficier des avantages de l’utilisation d’Elasticsearch, il est indispensable de passer par 3 étapes clés.


1. La création d’un modèle et l’indexation

Pour pouvoir profiter des performances d’Elasticsearch, vous devez élaborer une stratégie d’indexation. Cela implique une création d’un ou plusieurs modèles (appelés mappings) qui vous permettront d’indexer toutes vos données et de profiter ainsi au mieux de votre futur moteur de recherche.

Attention : si vous passez à côté de cette étape, votre utilisation d’Elasticsearch ne sera plus pertinente.

Dans votre mapping, vous devez typer vos champs. Par défaut, Elasticsearch propose différents types, parmi lesquels :

  • text = une description d’un produit
  • keyword = un contenu structuré comme une adresse ou un numéro d’identification
  • nested = un type permettant de créer des objets dans des objets
  • numeric = les types numériques peuvent être « long », « double », « float »…
  • boolean = valeurs booléennes « false » et « true » ou une chaîne de caractère « false » ou « true ».

Ce typage des données va permettre d’effectuer des recherches très avancées, plus précises et complètes.


2. La requête DSL, Domain Specific Language

Pour rechercher des données dans Elasticsearch, l’outil vous propose d’utiliser un langage spécifique basé sur du JSON.
Les requêtes les plus courantes sont :

  • match : la requête renvoie les documents contenant des termes similaires au terme recherché, mesurés par une distance de Levenshtein.
  • term : la requête envoie les documents contenant un terme exact dans un champs fourni. Vous pouvez utiliser requête « term » pour rechercher des documents en fonction d’une valeur précise, telle qu’un prix, un ID de produit ou un nom d’utilisateur.
  • terms : elle est semblable à une requête « term », mais elle vous permet de faire une recherche avec plusieurs valeurs.
  • prefix : la requête renvoie les documents commençant par la valeur fournie.
  • Boolean Query ou requête boléenne : ce type de requête permet une combinaison de plusieurs requêtes. Chaque combinaison possède au minimum une occurrence parmi les 4 types d’occurrence booléenne possibles, à savoir : « must » : opération ET, « must_not » : opération NON ET, « should » : opération OU, « filter » : comme le « must » mais le scoring sera ignoré.
  • Scoring : cette technique permet d’affecter un score à un document.

3. Les résultats des recherches

Pour chaque document issu de la recherche Elasticsearch, un score est calculé. Celui-ci permet d’évaluer la pertinence du document et ainsi d’ordonner les résultats obtenus.

La pertinence des résultats dépend toutefois des paramètres de recherche et d’indexation définis. Pour cela, ElasticSearch va s’appuyer sur différents critères tels que la fréquence du terme recherché dans le document.


Pour en savoir plus sur les bases de données, les langages de programmation et les dernières évolutions des technologies, découvrez le blog technique de The Coding Machine.

REACT NATIVE MEETUP : BIEN DÉMARRER SUR MOBILE

Vous souhaitez tout connaître de React Native, la technologie en vogue en conception d’application ?
Jérémy Dollé, chef de projet chez TheCodingMachine, vous explique tout pour construire une application mobile React Native sur des bases solides.

REACT NATIVE : QU’EST-CE QUE C’EST ?

React Native est une technologie Open Source développée par Facebook qui permet, avec un seul langage (JavaScript), de pouvoir compiler des applications sous IOS ou Android. Elle est surtout connue pour sa communauté qui fait grandir ce projet et lui permet d’évoluer très rapidement.

REACT NATIVE BOILERPLATE 

Découvrez notre boilerplate, une base de démarrage Open Source, que vous pouvez retrouver sur notre page de projets Open Source.
Pourquoi avoir développé un boilerplate ? Par expérience on reprend souvent les mêmes applications avec les mêmes bases, alors pourquoi pas construire un starter kit.
Ce boilerplate est conçu avec une « separation of concerns » et une documentation détaillée, ainsi qu’une présentation de toutes les dépendances contenues dans notre boilerplate.
En prime, on vous dévoile les différentes briques définies en concerns : Assets, Components, Config, Containers et bien d’autres.

POUR EN SAVOIR PLUS

CAS CLIENT : MILLEIS BANQUE

Nouvelle identité, nouvelle stratégie… en mai 2018 Barclays France a laissé place à Milleis Banque. La nouvelle banque affirme son projet et affiche de grandes ambitions en proposant « un maximum d’interactions digitales ».
Elle nous a fait confiance pour assurer la partie technique de la refonte de son site public.

À PROPOS DE MILLEIS BANQUE

Milleis Banque est un nouvel acteur du secteur bancaire en France, qui a pour ambition de devenir le leader indépendant de la gestion patrimoniale. En se positionnant en tant que « Banque de toutes les réussites », Milleis entend offrir à ses clients le meilleur du conseil financier pour les conduire à opérer les choix de placements les plus adaptés à leur situation.
Milleis compte aujourd’hui un réseau d’agences bancaires présent sur l’ensemble du territoire national. Lancée officiellement en mai 2018, Milleis est détenue par le fonds d’investissement AnaCap, premier fonds européen du secteur financier.

PROBLÉMATIQUES ET OBJECTIFS

En 2017 Milleis Banque nous a sollicité pour une modernisation et une refonte de leur site public dans l’objectif de répondre aux évolutions des besoins clients :

  1. Moderniser l’image de leur banque : Offrir une solution totalement responsive avec une organisation des contenus optimisée pour faciliter le taux de transformation.
  2. Améliorer les performances et les services : Mettre à disposition des services digitaux à la hauteur de la réputation d’excellence de Milleis.
  3. Fluidité des processus métiers : Donner une certaine indépendance au service IT de Milleis pour gérer en interne les opérations commerciales par le développement de mini-sites.

LES SOLUTIONS MISES EN OEUVRE

Nous avons basé notre réponse sur 4 axes principaux :

  1. Avoir une application la plus sécurisée possible : Développement d’un CMS spécifique pour éviter la publication de failles publiques et la séparation technique du site web avec le back-office, qui communiquent chacun avec une API.
  2. Avoir un outil qui s’adapte au mieux aux besoins métiers : Développement d’une interface de gestion des contenus adaptée à l’équipe en charge de l’édition, du système de validation des contenus avant publication, de la gestion d’une médiathèque, de la gestion multi-langue et multi-site dans la même interface d’administration, de la gestion fine des rôles et des droits utilisateurs
  3. Avoir un outil qui respecte les standards : Malgré le fait que l’outil soit développé en spécifique, il a fallu mettre en place des technologies robustes, éprouvées et qui ne demanderaient pas un gros travail de formation pour développer dessus.
  4. Avoir un outil performant : Requêtes optimisées avec une API GraphQL et la mise en place d’un cache Varnish.

ENTRETIEN AVEC JEAN-MARIE CAILLEAUX, RESPONSABLE DU MARKETING DIGITAL

  1. Bonjour Jean-Marie, pouvez-vous vous présenter?

Bonjour. Je suis Jean-Marie Cailleaux, responsable du Marketing Digital chez Milleis Banque. Milleis Banque est une banque haut de gamme pour une clientèle aisée. Notre ambition est de devenir le leader indépendant de la gestion patrimoniale en France.
Je travaille sur les déclinaisons digitales des actions marketing de la banque. Je peux intervenir sur les thématiques du SEO, du SEA, de l’analytics, des campagnes en ligne. Je suis également responsable du site public www.milleis.fr et par extension de l’outil de publication des contenus, le CMS.

  1. Vous nous avez confié la mission de vous accompagner dans l’intégration de votre changement de marque. Quelles étaient vos attentes ?

Nous savions que le passage de l’ancienne marque Barclays à Milleis serait un projet complexe qui devrait être mené dans des délais très courts. J’ai donc décidé de « préparer le terrain » quelques mois auparavant en m’équipant d’un nouveau CMS taillé sur mesure. Dans les grandes lignes, l’outil devait offrir un haut niveau de sécurité, des fonctionnalités de workflow et d’archivage poussés en sus des fonctions classique de publication de contenu. Il devait être multisite et bien entendu nous permettre de faire évoluer la charte et les templates aisément.

  1. Pourquoi avoir choisi TheCodingMachine ?

Pour l’anecdote, j’ai découvert TCM en regardant un jour le code source d’un site que je trouvais très réussi. Le code m’a semblé très efficient. Par chance, les références de TCM étaient présentes sur le site. Je me suis donc renseigné plus longuement sur l’entreprise de développement. Le positionnement m’a séduit : des spécialistes de la « tech » pour développer les projets. Nous les avons intégrés dans l’appel d’offre. Leur réponse à l’expression de nos besoins était pertinente et financièrement cohérente. Ils ont su rassurer les parties prenantes IT chez nous et rester clairs pour le business. Nous les avons choisis.

  1. Vous vous positionnez comme la banque «de toutes les réussites », est-ce que l’expérience TheCodingMachine en est une ?

Clairement oui. Les étapes du projet ont été clairement définies, les équipes se sont montrées impliquées et disponibles. Nous avons opté pour un cycle en V un peu stressant car il implique une période durant laquelle le client ne voit pas l’avancée du projet, mais les délais ont été tenus et le résultat tout à fait conforme à nos attentes. Et, point très important également, le projet m’a donné l’occasion de rencontrer des gens très agréables et enrichissants humainement.

  1. Cette nouvelle stratégie impose de prendre un grand virage digital. Dans cette volonté d’allier le meilleur du digital au meilleur de la relation humaine, quelle a été la valeur ajoutée de TheCodingMachine ?

 L’écoute, la compréhension des besoins et l’expertise technique. Dans le projet, TCM s’est posé en véritable partenaire, apte à adapter son offre à nos particularités. La démarche de TCM est une vraie démarche d’ingénierie : ils cherchent à bien comprendre les problématiques pour trouver les solutions les plus adaptées. Le digital est affaire de communication. On ne peut pas perdre de vue que les outils sont faits pour être utilisés, pas pour servir de vitrine technologique.

  1. Si vous deviez résumer en une phrase notre relation, quelle serait-elle ?

C’est une relation de confiance mutuelle qui nous rend tous ensembles extrêmement efficaces avec le même objectif en tête : servir au mieux nos clients.