La conception d’un projet web chez The Coding Machine

Qu’elle soit réalisée « au forfait », grâce à un « backlog » ou un « cahier des charges », la phase de conception d’un projet web est le point de passage obligé pour le succès de votre projet. Nous vous proposons d’amorcer ici le début d’une courte série d’articles ayant pour but de vous présenter les méthodologies que nous mettons en place chez The Coding Machine pour assurer la réussite de nos projets de développements sur-mesure. Nous commencerons ainsi cette chronique par la présentation globale des phases de conception d’un projet web.


1. Le lancement de la phase de conception d’un projet web

La phase de pré-conception web

Avant d’envisager le lancement d’un projet web, chez The Coding Machine, nous prenons le temps d’échanger avec nos clients sur leurs besoins et leurs objectifs. Que ce soit sur la base d’un cahier des charges web déjà établi ou d’un accompagnement pré-conception, nous cherchons à identifier les différentes briques structurelles et à comprendre la vision à long terme de votre projet pour vous proposer une approche personnalisée et une stratégie digitale sur-mesure.

Grâce à notre expérience de plus de 15 ans dans la conception de projet web, nous pouvons estimer avec une marge d’erreur très faible le nombre de jours total pour le développement et l’accompagnement projet. Vous êtes ainsi sécurisés quant au délai et au budget nécessaires pour votre projet digital.

Malgré tout, à l’issue de cette réflexion commune, il subsistera encore des incertitudes sur des éléments extrêmement localisés de l’application. Sauf dans de très rares cas, ces éléments du micro périmètre ne feront pas varier l’estimation financière présentée. Ils pourront être de l’ordre des modalités de gestion d’une interface (contrôle de saisie sur un champ, précisions des droits de certains types d’utilisateurs, etc.) ou concerner des précisions sur les maquettes design fournies (itération sur l’existant).


2. Préciser ses besoins et ses contraintes

Concrètement, la phase de conception d’un projet web est organisée en « ateliers ». Ces ateliers seront divisés en courtes périodes et seront chacun consacrés à l’étude des thématiques identifiées dans le micro périmètre. Nous vous exposerons alors les différentes problématiques repérées et une recommandation sur la manière de les résoudre. L’atelier aura pour but de recueillir vos avis, de les discuter et d’intégrer le fruit de ces échanges dans un document formalisé : « les specs ».

En plus d’éclaircir les derniers points d’ombres du périmètre applicatif, la conception d’un projet web nous permettra de rédiger les spécifications techniques et fonctionnelles de votre outil. C’est-à-dire que nous allons vous proposer un ensemble de documents qui traduit l’expression d’un besoin en feuille de route technique précise. Nous y décrirons notamment le comportement de chaque champ, la composition précise de chaque partie de l’application.


3. La finalisation de la conception d’un projet web

Une fois les documents techniques réalisés, nous vous les soumettrons pour validation afin de commencer la phase de développement.

→ Comment faire si je n’arrive pas à formaliser mes besoins ?

Dans certains cas, il peut être extrêmement compliqué pour vous d’identifier clairement ses besoins : soit parce qu’ils sont susceptibles d’évoluer très rapidement, soit parce que vous avez besoin d’une expertise sur la faisabilité de votre projet et la manière de le mener.

Il nous arrive alors de proposer une phase de conception projet « isolée ». Son but est exactement le même que pour un forfait complet, mais l’approche se fera en entonnoir. Nous étudierons d’abord le macro périmètre (définition des utilisateurs, de leur comportement, de leurs différents espaces) et nous affinerons la description du besoin au fur et à mesure des ateliers.

L’issue de ces ateliers sera exactement la même pour vous : vous disposerez de spécifications fonctionnelles et techniques précises décrivant le comportement de votre application. Nous pourrons alors arbitrer ensemble sur les fonctionnalités à intégrer dans la première version de l’application et définir une phase de développement sur-mesure.

Finalement, l’objectif principal de la phase de conception d’un projet web est de travailler étroitement avec vous pour définir tous les contours de votre application ou de votre plateforme et d’en sécuriser le développement : elle est donc l’étape indispensable pour le succès de votre projet.

Alors, si après avoir lu cet article il vous prend une furieuse envie de concevoir une application mobile ou de créer une plateforme web, et que vous souhaitez vous faire accompagner par des professionnels tout au long de ce processus : n’hésitez pas à nous contacter. Nos bureaux de Lyon, Paris et Hong Kong seront ravis de vous aider !

Tendances UI 2022

Une bonne interface est une interface intuitive et qui se démarque visuellement. La première impression est décisive, d’où l’importance d’être au fait des dernières tendances. Laissez-moi vous présenter quelques tendances UI 2022 qui vous inspireront peut-être !


Design Memphis

Le style Memphis est caractéristique des années 80, il se distingue par ses associations de motifs, de couleurs et de formes diverses.

Né du design et de l’architecture Milanais, le design Memphis s’était établi en rejet par rapport au minimalisme, et à l’élitisme du style bourgeois de l’époque. L’objectif du groupe Memphis était alors de rendre le design à la fois plus coloré, plus accessible et plus aventureux qu’il ne l’avait été jusque-là. En bref, une tendance qui a pour volonté de créer avec une grande liberté.

Le Design Memphis, dans les Tendances UI 2022  pour créer avec une grande liberté

Les tendances UI 2022 : Les Bannière typographique

La première image que les visiteurs voient sur un site web doit être marquante. En 2022, les polices géantes se font une place dans les conceptions web. On réduit ou on élimine complètement les images d’en-tête pour laisser place à un message qui créera une hiérarchie visuelle forte. La technique est audacieuse de par sa simplicité, quant aux images, elles attirent l’attention comme le ferait un gros titre dans un journal. C’est une tendance passe-partout, ainsi qu’un excellent moyen de mettre en avant son style typographique tout en communiquant un message efficacement.


Bords visibles

Les bords visibles font partie des grandes tendances de cette année 2022. Le principe est de révéler les fondations d’un site, en laissant apparaître de simples bordures et cadres, dit « squelette » de la page. L’avantage de cette technique résulte de la hiérarchisation de chaque élément. Ainsi, l’utilisateur aura plus de facilité à distinguer les sections les unes des autres. Cela permet également d’ajouter du contenu sans pour autant surcharger les pages. Par ailleurs, ces simples bordures donnent aux interfaces une subtile touche rétro qui s’accorde très bien avec une autre trend de cette année, le grand retour des années 90…


Néo-brutalisme

En 2022, le style brutaliste de l’année passée est devenu plus discret… place au « néo-brutalisme ». Une alliance entre la rudesse du brutalisme et la sobriété du minimalisme. Cette tendance permet de créer des interfaces dépouillées de fioritures, non stylisées, avec des fonds unis, des polices informatiques par défaut et des photos très peu retouchées voire non-traitées. Comme en architecture, on doit comprendre rapidement quelle est la fonction de chaque composant, d’un seul coup d’œil. Et cela se traduit par un graphisme rudimentaire. Ce style qui ne fait pas l’unanimité, présente toutefois des avantages, à savoir : réduire le coût d’un site web, avoir une présence digitale distincte, interpeller l’utilisateur et l’inviter à se concentrer uniquement sur le fond plutôt que sur la forme. Pour voir des exemples du style graphique du néo-brutalisme, jetez un coup d’oeil sur Pinterest


Typo en mouvement

Véri­table outil de commu­ni­ca­tion, la typographie peut faire bien plus que de transmettre des informations. Elle peut également susciter des émotions et véhiculer une puissante identité de par des animations engageantes. Avec une typographie audacieuse, animée et interactive comme pièce maîtresse, de nombreux sites Web se passent d’images d’arrière-plan. Même s’il s’agit d’animations simples, comme des rotations ou de nouveaux défilements latéraux, ces petites touches permettent à la typographie d’occuper le devant de la scène sans submerger les visiteurs. Cette tendance conci­lie esthé­tisme et lisi­bi­lité. Lorsqu’elle est utili­sée effi­ca­ce­ment, elle peut faire toute la diffé­rence dans l’ex­pé­rience que vous allez offrir à vos utili­sa­teurs.

Exemple de typo en mouvement en gif animé

Tendances UI 2022 et ? Rétro design

Le style rétro repose sur l’utilisation d’éléments populaires inspirés des années 80 et 90. Une époque qui marque son grand retour sur nos écrans ! Il est temps de ramener les motifs colorés, texturés, les placement d’objets hors grille sur la page, d’inviter le pixel-art, les typographies rétro (comme les monospaces)… En somme, les codes et les couleurs d’une période faste, imprégnée par les jeux vidéo. Ce sont des designs qui apportent de la personnalité aux interfaces et un style décalé, et évoquent une certaine nostalgie. En effet, choisir un design rétro est un bon moyen de capitaliser sur l’émotion de l’utilisateur. Ce style rassure et offre un peu de familiarité tout en créant une association positive avec votre produit ou service, à condition que votre design soit adapté à votre audience cible.

Démonstration du style Rétro Design dans les tendances graphiques 2022

Sketching

Exemple d'une bannière verticale dans le style Sketching

Le « sketching », ou le dessin fait à la main, permet de gommer les froideurs du numérique en proposant des interfaces plus conviviales, plus humaines. Les illustrations sont devenues un élément essentiel de l’identité de la marque.

Il peut s’agir de griffonnages, de collages imprécis ou encore de textures analogiques comme le ferait la mine d’un crayon ou la pointe d’un pinceau. L’important est de combler le fossé entre le monde virtuel et le monde réel, de relier ces écrans trop souvent froids. Au-delà de contribuer à l’esthétique de la page, le sketching enrichit le contenu, capte l’attention de l’utilisateur et facilite la compréhension d’un produit ou d’un service. Le cerveau humain a plus de facilité à déceler une information, un message-clé au travers d’une image ou d’un dessin, plutôt qu’un paragraphe.


Interactions au scrolling

Pour parles des tendances UI 2022, on devait aussi parler des interactions. Les designers intègrent davantage d’interactions animées dans leurs designs. Bien conçu, le « scrollytelling » apporte une narration et encourage un engagement plus actif de la part des visiteurs ; elle suscite la curiosité, comme le fait de cliquer, de glisser ou de faire glisser des éléments sur l’écran ou les effets de parallaxe. Visuellement attrayante, elle doit également être intuitive afin d’encourager l’action de la part de l’utilisateur, qui devra apprendre à naviguer sur la page, sans confusion. Cette expérience invitera le visiteur à prolonger son séjour sur le site.

Exemple d'une interaction au scroll présentée en gif animé

Vous avez un projet Web ? Contactez les équipes de The Coding Machine

Maîtriser le vocabulaire Tech : Découvrez les 15 mots clés

Dans un secteur innovant, en perpétuelle évolution, difficile de s’y retrouver parmi tous les termes utilisés par les professionnels. Pour vous aider à y voir plus clair, voici 15 mots incontournables du vocabulaire tech !

15 notions incontournables du vocabulaire tech

  • Adresse IP (Internet Protocol) : c’est un numéro qui permet d’identifier un ordinateur, un smartphone ou tout autre support informatique connecté à un réseau.
  • Blockchain, chaîne de blocs en français : technologie qui permet de stocker et de transmettre des données de manière sécurisée, directe et transparente. Les utilisateurs ont ainsi accès aux informations inscrites dans la blockchain (titres de propriété, transactions, contrats), sans que ces données ne puissent être modifiées ni supprimées. Utilisée en premier lieu pour la monnaie numérique : le Bitcoin, la technologie de la blockchain se développe dans de nombreux domaines, notamment celui des NFT (Non-Fungible Token – Jeton non fongible).
  • DNS : Domain Name System, système de noms de domaine en français. Il fait le lien entre un nom de domaine (ex : thecodingmachine.com) et une adresse IP. Il s’assure que le nom de domaine pointe bien vers le site web.
  • CMS : Content Management System, ou système de gestion de contenu. Ce sont des logiciels qui permettent de concevoir, gérer et structurer les sites Web et d’attribuer à chaque catégorie d’utilisateurs (administrateur, gestionnaire…) des autorisations particulières. Un CMS peut être Open Source, comme WordPress, ou un CMS Propriétaire.
  • Cloud : technologie web qui permet de stocker et d’accéder à des ressources informatiques virtuelles quel que soit le support de connexion (ordinateur, tablette…). Parmi les fournisseurs de Cloud, les plus utilisés sont Dropbox, Google Drive et OneDrive.
  • Code source : texte qui traduit dans un langage de programmation (Java, Python, JavaScript, C++, Ruby, PHP…) compréhensible par l’Homme les instructions laissées par le programmateur lors de la conception d’un programme informatique. Ces instructions précisent notamment le fonctionnement et le rendu visuel d’une application ou d’une page web (style et couleur du texte, images, animations…).
  • IoT : Internet of Things ou Internet des objets : dans le vocabulaire tech, ce terme désigne les objets du quotidien qui deviennent connectés grâce au digital par exemple les montres et bracelets connectés, les capteurs pour optimiser sa consommation d’électricité…
  • Open source : code d’un site, d’une application, d’un logiciel ou d’une page web ouvert à tous. Il peut être consulté et modifié par tous les développeurs. Cela permet de mutualiser les compétences et de regrouper les efforts pour optimiser un logiciel.
  • Personas : il s’agit d’une représentation fictive des utilisateurs potentiels d’un site web ou d’une application. La création de Personas permet d’adapter le contenu du site aux besoins des utilisateurs.
  • Plugin : il permet d’ajouter des options, des fonctionnalités nombreuses et variées (lecture de certains formats vidéo, vérificateur d’orthographe…) à un logiciel. Un plugin est donc toujours adosser à un logiciel, il ne peut pas fonctionner seul. On parle aussi d’extension ou add-on.
  • Responsive design : un site web « responsive » est conçu pour que son contenu (images, textes…) s’adapte à toutes les interfaces (ordinateur, tablette, smartphone) et à toutes les tailles d’écran utilisées par le visiteur.
  • UI : User interface, ou interface utilisateur en français : dans le vocabulaire tech, cela correspond au dispositif qui permet à l’utilisateur d’interagir avec un appareil informatique : écran, clavier, souris…
  • UX, User experience, ou expérience utilisateur : elle désigne l’expérience vécue par un utilisateur lorsqu’il recourt à un service ou à une interface que ce soit un site web ou une application mobile.
  • URL : Uniform Resource Locator. Il s’agit de l’adresse web d’une page ou d’un site.

Un vocabulaire tech riche et évolutif

Loin d’être exhaustif ce lexique vous permet toutefois d’avoir certaines bases pour mieux comprendre le domaine de l’informatique et du numérique. Comme les technologies ne cessent de se développer et d’évoluer, le vocabulaire tech continue lui aussi de s’enrichir de nouvelles notions. Votre apprentissage ne fait donc que commencer !

Et pour aller plus loin dans la découverte du secteur et du vocabulaire tech, The Coding Machine a élaboré un livre blanc « Do you speak technique ? »

Livre Blanc - Do you speak technique ? 
Vocabulaire tech

Connaissez-vous les notions de base en informatique ?

Loin d’être réservé aux seuls « geeks », l’informatique s’est immiscée partout dans notre quotidien. Difficile dès lors de passer à côté du vocabulaire spécifique lié à ce secteur. Pour que vous aider à vous y retrouver parmi tous ces termes techniques, voici quelques notions de base en informatique.

7 notions de base en informatique

  • Device : ce terme regroupe tous les appareils et les équipements de communication digitale : smartphone, ordinateur, tablette, télévision, objets connectés…
  • Interface : correspond à l’ensemble des moyens de communication entre un utilisateur et un équipement ou un programme informatique. L’écran est par exemple l’interface entre l’utilisateur et l’ordinateur. De la même façon, l’interface d’un programme correspond à ce que l’utilisateur voit sur l’écran.
  • Périphérique : il s’agit de l’une des principales notions de base en informatique. Il désigne un équipement branché sur l’ordinateur comme un clavier, une souris, une imprimante, ou un modem.
  • Pilote (driver en anglais) : programme informatique permettant l’identification et l’utilisation des périphériques connectés à un ordinateur. Pour pouvoir utiliser un périphérique sur un ordinateur, un simple branchement ne suffit pas. Il faut en plus installer sur l’ordinateur le pilote qui correspond au périphérique et qui est adapté au système utilisé par l’ordinateur.
  • Ports : il s’agit des prises équipant les appareils informatiques et servant à les relier entre eux. Il existe différents types de ports : USB, Ethernet, HDMI…
  • Processeur : c’est un élément essentiel pour le fonctionnement du matériel informatique. Le processeur organise, interprète et exécute les instructions des programmes. Véritable « cerveau » de l’ordinateur, sa puissance est exprimée en gigahertz (GHz).
  • Serveur : il participe au bon fonctionnement correct des services informatiques en réseaux, qu’il s’agisse du réseau Internet ou d’un intranet. Il peut notamment contribuer à la mise en commun des imprimantes, au stockage et au partage de banques de données, au contrôle des accès des utilisateurs, à l’hébergement de sites web…

6 termes techniques en informatique

  • API : Application Programming Interface, ou interface de programmation d’application en français. Il s’agit d’une solution informatique qui permet à plusieurs logiciels de communiquer entre eux et de s’échanger des données. Une API permet d’utiliser le contenu et les fonctionnalités d’un logiciel, d’un site ou d’une application pour enrichir un autre programme, et ce, sans avoir à dupliquer les contenus sur chaque plateforme.
  • Framework, ou infrastructure logicielle en français : en programmation informatique, il s’agit d’un ensemble d’outils et de composants qui est à la base d’un logiciel ou d’une application. Un framework fonctionne avec un ou plusieurs langages de programmation (JavaScript, Python, PHP…). Il permet au développeur de structurer le code source d’un logiciel. Parmi les frameworks utilisés : React JS, Symfony, Angular, Django, Ruby on Rails, jQuery…
  • FTP, File Transfer Protocol : protocole pour transférer des fichiers d’un ordinateur vers un appareil à distance (hébergeur, serveur).
  • Mémoire cache : elle stocke les fichiers et données auxquels un système fait le plus souvent appel. Elle permet de réduire et d’optimiser les temps de chargement des fichiers sauvegardés.
  • Système d’exploitation ou Operating System – OS en anglais : ensemble des programmes informatiques qui pilote et établit les relations entre les dispositifs matériels (disque dur, processeur, mémoire vive, périphériques…), les applications et l’utilisateur. Actuellement, les systèmes d’exploitation les plus répandus sont : Mac OS et iOS d’Apple, Windows de Microsoft, Android de Google.
  • Peer-to-peer, P2P, ou pair-à-pair en français : système de connexion informatique directe entre ordinateurs qui ne passe pas par un serveur. Ces réseaux en peer-to-peer permettent de faciliter et d’accélérer le partage de fichiers entre plusieurs ordinateurs.

Si les principales notions de base en informatique ont été détaillées dans cet article, il en existe de nombreuses autres ! Pour obtenir plus d’informations sur des termes plus techniques, n’hésitez pas à lire notre livre blanc « Do you speak technique ? » ou à regarder notre vidéo !

PHP 8 & 8.1 : nouveautés, compatibilités et migration

PHP 8 a été officiellement lancé le 26 novembre 2020, cela fait donc un peu plus d’un an que nous avons pu expérimenter les différentes nouveautés introduites par cette version très attendue ! Comme pour toute montée de versions majeures, celle-ci est venue avec son lot d’incompatibilités avec les anciennes versions.

Nous vous proposons dans cet article de récapituler tout d’abord les différentes nouveautés apportées par PHP 8 et PHP 8.1. Nous aborderons ensuite les incompatibilités et risques de bugs en cas de montée de versions depuis PHP 7. Enfin, nous vous donnerons notre checklist pour une montée de version réussie et les outils permettant de l’effectuer simplement et rapidement.

Mais pourquoi passer à PHP 8 ?

La première question que l’on se pose lors de la sortie d’une nouvelle version majeure est de savoir si les nouveautés apportées par celle-ci justifie de consacrer plus ou moins rapidement du temps à la mise à jour de son code et dans la gestion des risques associés.

De notre propre expérience, passer à PHP 8 présente des avantages considérables :

  • L’argument majeur est que PHP 8 vient avec une amélioration de performance non négligeable. Sans rentrer dans les détails niveau machine, PHP 8 permet d’effectuer de 20 % à 30 % de requêtes en plus par seconde par rapport aux versions antérieures (cela est précisé ici).
  • PHP 8 vient renforcer grandement l’aspect « typé » du langage PHP, PHP peut donc garantir que les bons types soient passés au lieu de faire des checks manuels. Cela vient renforcer la maintenabilité du code et ainsi passer à PHP 8 permet donc de réduire votre dette technique à long terme.
  • Enfin, PHP 8 a mis un accent majeur sur le fait de rendre le code PHP plus lisible et documenté ce qui facilitera la montée en compétence de vos équipes.

Ainsi, chez TheCodingMachine nous sommes persuadés que vous ne regretterez pas le temps consacré à la montée de version de votre environnement ! Et pour les éventuelles complexités, pas de soucis cet article est là pour vous aider.

Les nouveautés introduites par PHP 8 et PHP 8.1 :

PHP 8 et 8.1 ont introduit de nombreuses nouveautés, voici les plus notables :

Nullsafe operator : introduction d’un opérateur logique s’écrivant « ?-> » permettant de vérifier simplement à la chaîne si des variables sont nulles au lieu de faire plusieurs boucles if.

PHP 8 - Nullsafe operator
PHP 8 – Nullsafe operator

Named arguments : les arguments nommés permettent de passer des arguments à une fonction en fonction du nom du paramètre, plutôt que de la position du paramètre. Cela simplifie la documentation et la compréhension du code, rend les arguments indépendants de l’ordre et permet de sauter arbitrairement les valeurs par défaut (pour ne fournir que certains paramètres à une fonction). Ex : positional arguments : array_fill(0, 100, 50) ; named arguments : array_fill(start_index: 0, num: 100, value: 50).

Attributes : les annotations (/** @Annotation() */), sont très couramment utilisées en PHP afin de rajouter des métadonnées au code (classes, fonctions, propriétés… ). PHP 8 propose à présent des attributs (#[Attribute]) permettant de définir ces métadonnées directement grâce au langage. Ainsi, au lieu des annotations PHPDoc ou d’utiliser des outils comme la librairie Doctrine Annotations, vous pouvez désormais utiliser des métadonnées structurées avec la syntaxe native de PHP.

Lambda function : permet d’avoir une syntaxe simplifiée pour les fonctions anonymes afin de gagner en lisibilité.

Match expression : l’expression match est similaire dans son rôle à switch mais contrairement à switch, match ne repose que sur des comparaisons strictes (ce qui évite certains résultats surprenants), son résultat peut être stocké dans une variable ou retourné (en utilisant return) et chaque branche de l’expression match ne nécessite pas l’écriture d’un break; (celui-ci est implicite, un match n’exécute qu’une seule branche, il n’y a pas de « fall-through »).

Union types : la prise en charge des Union types dans le langage permet de déplacer plus d’informations anciennement dans la documentation (phpdoc) vers les signatures de fonction : les types sont en fait appliqués, de sorte que les erreurs peuvent être détectées tôt et que la dette technique est réduite.

PHP 8 - Union Types
PHP 8 – Union Types

[PHP 8.1] Enums : constantes typées fortes, empêchant les valeurs non souhaitées pour des variables de type string or integer sans aucune vérification nécessaire.

[PHP 8.1] Call new in initializers : il est à présent possible d’instancier un objet lors de l’initialisation. Cette initialisation peut concerner les paramètres par défaut d’une fonction, ou la valeur par défaut d’une propriété de classe,… Cela facilite la documentation et la recherche d’information grâce aux annotations directement dans le code. Cela permet aussi de renseigner directement une valeur par défault, plutôt que « null« , et débloque l’utilisation d’attributs dans d’autres attributs (ex : #[new Validalidation(new Integer())]).

Bien sûr il y a d’autres nouveautés, la documentation complète de PHP 8 est disponible sur le site officiel de PHP en cliquant ici et il en va de même pour PHP 8.1 ici.

Les incompatibilités pour une montée de version vers PHP 8

Bien qu’il soit difficile, voire impossible, d’anticiper toutes les complexités pouvant apparaître lors d’une montée de version, une partie des problèmes récurrents peuvent être anticipés. En effet, PHP 8 a renforcé l’aspect typé du langage PHP et par exemple certains conditionnements sont devenus stricts. Ainsi, certains codes, qui étaient souvent faux, vont à présent émettre des exceptions.

Voici, une petite liste des erreurs que nous avons rencontré lors de nos propres expériences et comment les éviter :

  • Associativité des opérateurs ternaires : les opérations arithmétiques dans une string ne sont plus autorisées, ex : var_dump(12 + ‘a’); // int(12) => Uncaught TypeError: Unsupported operand. De même, l’utilisation de plusieurs opérateurs ternaires (par exemple ?:?:) sans parenthèse émettra une « Fatal error ».
  • Comparaison non-stricte : les comparaisons entre des nombres et des chaînes de caractères non numériques retournent à présent false.
  • New match keyword, il n’est plus possible de déclarer le keyword match en tant que symbol parcequ’il est réservé par PHP, ex : function match() { // => Parse error: syntax error, unexpected token « match ».
  • Calling non-static class methods statically result in a fatal error : une « non-static » méthode est une méthode qui n’est pas déclarée avec le mot clé static. Elle peut donc dépendre de l’instance de l’objet ($this), or si elle est appelée dans un contexte static (sans instance d’objet) cela renvoie une erreur car $this n’existe pas.
  • Value Error : cette erreur est émise lorsque le type d’un argument est correcte mais que sa valeur ne l’est pas (ex : un nombre négatif pour une longueur). Pour éviter de telles erreurs, vous pouvez utiliser notre outil Open-Source Safe.
  • Strong typing for resources : dans les versions antérieurs PHP manipulait souvent des « resource »s, beaucoup sont maintenant typées comme le montre le tableau ci-dessous :
ExtensionResource (PHP < 8.0)Object (PHP >= 8.0)
Curl
Curl
Curl
GD
Sockets
Sockets
OpenSSL
OpenSSL
OpenSSL
XMLWriter
XML
GD
FTP
IMAP
finfo
PSpell
PSpell
LDAP
LDAP
LDAP
PgSQL
PgSQL
PgSQL
Curl
curl_multi
curl_share
gd
Socket
AddressInfo
OpenSSL key
OpenSSL X.509
OpenSSL X.509 CSR
xmlwriter
xml
gd font (integer)
ftp
imap
file_info
pspell (int)
pspell config(int)
ldap link
ldap result
ldap result entry
pgsql link
pgsql result
pgsql large object
CurlHandle
CurlMultiHandle
CurlShareHandle
GdImage
Socket
AddressInfo
OpenSSLAsymmetricKey
OpenSSLCertificate
OpenSSLCertificateSigningRequest
XMLWriter
XMLParser
GdFont
FTP\Connection
IMAP\Connection
finfo
PSpell\Dictionary
PSpell\Config
LDAP\Connection
LDAP\Result
LDAP\ResultEntry
\PgSql\Connection
\PgSql\Result
\PgSql\Lob
PHP 8 – Resource Strong Typing

Les étapes clefs pour réussir sa migration et les outils recommandés

Réaliser une montée de version apparaît toujours comme une tâche fastidieuse mais, comme expliqué plus haut, passer à PHP 8 en vaut la peine. Pour vous accompagner dans votre démarche, voici les étapes clés et les outils associés afin de gagner en efficacité :

  • Effectuer une analyse statique, vous pouvez vous aider d’outils comme PHPStan ou PhpCodeSniffer,
  • Appliquer un typage fort,
  • Vérifier que vos dépendances sont mises à jour pour PHP 8,
  • Vérifier vos logs pour repérer tout avertissement d’obsolescence (Deprecated notice),
  • Vérifier les dépréciations répertoriées,
  • Exécuter votre suite de tests.

Les outils que nous recommandons : PHPStan (outil d’analyse statique, TheCodingMachine est fier d’y contribuer), PhpCodeSniffer (Outil permettant de maintenir un code clair et cohérent), Rector (propose une montée de version « quasi » automatique), 3v4l.org (pour tester du code sous différentes versions de PHP).

Bonus : exemple de code reprenant les nouveautés !

Pour les plus passionnés d’entre vous, une « mixtape » des nouveautés PHP 8 composée par nos soins !

class User
{
    public function __construct(
        public string $firstName,
        public string $lastName,
        public ?Address $address = null
    ) {}
}

class Address
{
    public function __construct(
        public string $number,
        public string $street,
        public string $city,
        public string $country
    ) {}
}

enum Undefined
{
    case Undefined;
}

class UserRepository
{
    /** @var array<User> */
    private array $users;

    public function find(
        string|null $firstName = null,
        string|null $lastName = null,
        string|null|Undefined $country = Undefined::Undefined,
    ): array/*<User>*/ {
        $users = $this->users;
        if ($firstName !== null) {
            $users = array_filter($users, fn(User $user) => $user->firstName === $firstName);
        }
        if ($lastName !== null) {
            $users = array_filter($users, fn(User $user) => $user->lastName === $lastName);
        }
        if ($country !== Undefined::Undefined) {
            $users = array_filter($users, fn(User $user) => $user->address?->country === $country);
        }

        return $users;
    }
}

// ...

$userRepository->find(); // Retrieve all users
$userRepository->find(firstName: 'Gandalf'); // Retrieve users whose first name is Gandalf
$userRepository->find(country: 'UK'); // Retrieve users living in UK
$userRepository->find(country: null); // Retrieve users living in no known country (as far as we know)
$userRepository->find(country: null, lastName: 'Troy', firstName: 'Castor'); // Use all arguments you want

A vous de retrouvez dans cet échantillon de code les différentes nouveautés : null-safe operator, lambda function, union type, named arguments et enum !

Cahier des charges web : Les conseils pour une rédaction réussie

Vous souhaitez lancer un site, une plateforme ou une application et vous devez rédiger un cahier des charges web ? Véritable socle de votre projet, ce document doit décrire de façon claire et détaillée vos idées et vos objectifs, afin d’informer au mieux les prestataires qui pourraient intervenir dans le développement du projet.

Voici quelques conseils pour rédiger un cahier des charges web complet et efficace pour mener à bien votre projet.

Présenter le contexte de votre projet web

Dans votre cahier des charges web, vous pouvez présenter de nombreux éléments permettant au prestataire de comprendre votre besoin :

  • L’identité des différentes parties prenantes (présentation de l’entreprise, des responsables du projet…),
  • L’histoire du projet,
  • Votre vision et votre stratégie,
  • Vos cibles,
  • Les objectifs fixés (développement de la présence en ligne, conversion des visiteurs du site Internet, fidélisation des clients, notoriété de votre entreprise…),
  • Vos besoins pour mener à bien ce projet,
  • Les contraintes (délais et processus à respecter…).

crire clairement tous vos besoins

Pour développer un projet web, les besoins sont multiples. La tentation est donc grande de n’en sélectionner que quelques-uns. Or, pour que votre cahier des charges reflète parfaitement votre idée, vous devez y lister tous vos besoins :

  • Besoins organisationnels : le planning imposé, les recrutements éventuellement nécessaires, l’organisation de votre équipe et la gestion des prestataires,
  • Besoins techniques : les technologies utiles pour le projet (système informatique, logiciel…),
  • Besoins fonctionnels : les fonctionnalités attendues pour votre site, votre plateforme ou votre application web. À ce stade, pensez également à détailler les besoins propres à chaque catégorie d’utilisateurs : les visiteurs, les clients, les gestionnaires et les administrateurs. Les gestionnaires et les administrateurs auront par exemple souvent besoin de fonctionnalités supplémentaires sur leur espace pour piloter efficacement l’activité (chiffre d’affaires, édition de contrats, nombre de commandes…).

Pour vous aider à présenter l’ensemble des besoins, vous pouvez utiliser des mockups, comme balsamiq, des tableaux ou des schémas illustrant les différents parcours des utilisateurs. Vous pouvez également hiérarchiser les différents besoins. Cela vous permettra de tester plus rapidement votre plateforme web avec les fonctionnalités essentielles (approche Minimum Viable Product ou MVP), puis d’augmenter au fur et à mesure les possibilités.

Grâce à une énumération claire et à une hiérarchisation de vos besoins, vos prestataires pourront ainsi connaître vos priorités et faire une réponse pertinente.

Oser parler technique

Difficile de parler technique lorsque ce n’est pas notre métier. Pourtant, la solution technique choisie pour votre projet web est essentielle. Elle vous permettra d’avoir un site fonctionnel, adapté aux besoins des utilisateurs et qui optimise votre référencement naturel. Pour cela, avant de rédiger un cahier des charges web, vous devez penser à l’architecture technique de votre site et vous poser les bonnes questions :

  • Quels outils d’analyse marketing souhaitez vous utiliser ?
  • Mon site internet doit-il être responsive ?
  • Comment modéliser mon tunnel de transformation ? Avec quels moyens de paiement ?  
  • Quel est le type d’hébergement web souhaité ?
  • Avez-vous une préférence pour une solution technique (un CMS par exemple) ?
  • Souhaitez vous privilégier un environnement cible (LAMP par exemple) ?

Toutes ces précisions permettront de cadrer votre projet et de rédiger un cahier des charges web complet, mais aussi de choisir plus facilement le prestataire qui répondra le mieux à vos demandes.

Être accompagné pour rédiger un cahier des charges web

Le cahier des charges étant un document essentiel pour développer un projet web, il peut être inquiétant de se lancer seul dans sa rédaction. Et pourtant, vous êtes le mieux placé pour décrire votre projet, vos objectifs, vos priorités et vos exigences. De plus, rédiger un cahier des charges web vous permettra de vous approprier votre projet, d’en préciser les contours et peut être de le faire évoluer.

Mais pour ne pas vous laisser seul face à une page blanche et pour éviter que vous oubliez des étapes clés, chez The Coding Machine nous avons créé un modèle de cahier des charges de plateforme web. Vous pourrez ainsi rédiger un cahier des charges web en suivant les différentes étapes retracées dans ce livre blanc. À vous de jouer !

Créer une plateforme web : analyse des intérêts et contraintes

Dans le cadre de la digitalisation de votre entreprise, créer une plateforme web apparaît souvent comme LA solution, mais de quoi s’agit-il exactement ?

Découvrez à travers cette infographie et cet article, l’essentiel à savoir avant de vous lancer dans la conception d’une plateforme web.

Infographie sur créer une plateforme web : intérêts et contraintes
Créer une plateforme web : intérêts et contraintes

Qu’est-ce qu’une plateforme web ?

Une plateforme web est un espace d’échange entre l’interne, votre entreprise, et l’externe, vos clients ou partenaires.

Contrairement à un simple site vitrine, la plateforme web repose sur des processus interconnectés entre le traitement côté back-office (interne) et la mise à jour des données côté front-office (externe).

Ainsi, une plateforme web est une application constituée de plusieurs briques qui communiquent entre elles et qui peuvent être catégorisées de la manière suivante :

  • Un site web public avec des contenus qui présentent vos services et vos produits. Il permet de vous faire connaître du public et de fidéliser vos clients.
  • Un tunnel de transformation, ou tunnel de conversion, qui peut notamment prendre la forme d’une page avec vos offres ou d’une page permettant la collecte de données.
  • Un espace connecté, le minimum étant de permettre de retrouver les interactions entre votre entreprise et vos clients : commandes, documents contractuels, etc. L’espace connecté de votre plateforme web peut aussi être beaucoup plus complexe et comprendre de véritables outils métiers. Cela peut aller d’un outil permettant d’effectuer des commandes jusqu’à des tableaux de bord très complexes. Il peut aussi adresser différentes parties prenantes : clients, partenaires, prestataires etc.
  • Un espace administrateur, ou back-office, qui permet de gérer les différents contenus, de paramétrer les éléments associés à vos offres, de faire le lien avec les données du système d’information et de proposer différents tableaux de bord pour piloter votre activité.

Pourquoi créer une plateforme web ?

La conception d’une plateforme web peut répondre à différents besoins :

  • Développer une nouvelle offre,
  • Cibler de nouveaux prospects,
  • Fidéliser vos clients,
  • Améliorer l’expérience utilisateur,
  • Booster le taux de conversion des visiteurs du site en clients,
  • Accroître votre chiffre d’affaires,
  • Améliorer la qualité de l’information délivrée,
  • Gagner en productivité en facilitant le travail de vos collaborateurs.

Quel que soit l’objectif recherché en développant une plateforme, l’essentiel est que vous le définissiez précisément, et ce, dès le début de votre projet web et avant même la rédaction de votre cahier des charges web.

Quelles sont les caractéristiques d’une plateforme web réussie ?

Pour profiter de tous les avantages d’une plateforme web, celle-ci devra être à la fois : 

Fonctionnelle : il s’agit de soigner au maximum l’expérience utilisateur (UX) de votre produit pour répondre parfaitement à vos besoins et d’optimiser les échanges d’informations au sein de votre entreprise, avec vos prestataires et vos clients.

Design : la plateforme web est votre vitrine, elle véhicule une certaine image de votre entreprise. Son design (aussi appelé UI ou interface utilisateur) doit donc être soigné, et ce, même si elle n’est pas utilisée par votre client final.

Simple, car vous n’aurez pas forcément le temps de former vos collaborateurs et partenaires à l’utilisation de votre plateforme et vos clients n’auront pas envie de passer des heures pour essayer de comprendre son fonctionnement. La plateforme web doit donc être la plus intuitive possible. Pour cela, il est important d’aller à l’essentiel en intégrant des fonctionnalités simples, notamment pour les utilisateurs occasionnels. Vous pourrez ensuite y ajouter des fonctionnalités avancées qui ne seront accessibles qu’aux utilisateurs les plus expérimentés.

Quelques conseils pour mener à bien votre projet de plateforme web

Bien que TheCodingMachine aurait de nombreux conseils à vous prodiguer pour réussir votre plateforme web, voici les plus importants à nos yeux.

Trouvez la méthodologie adaptée

Chez TheCodingMachine nous recommandons de commencer par le strict nécessaire (ce qu’on appelle le MVP – Minimum Viable Product) qui répond à la problématique la plus simple identifiée (ex : traiter un dossier). Il s’agit de sécuriser ce socle via une approche classique en cycle en V au forfait. Il sera ensuite possible d’adopter une méthodologie plus souple, agile, pour faire évoluer ce socle suite aux retours utilisateurs sur une base saine et évolutive.

Bien former vos utilisateurs et préparer au changement

De nombreux outils ne sont pas utilisés ou sont seulement exploités au minimum de leur potentiel à cause d’un manque d’adoption ou de maîtrise des équipes.

Or, l’adoption d’une nouvelle plateforme web commence dès le début du projet, il s’agit de fédérer vos équipes autour d’une problématique simple et commune comme par exemple : « nous souhaitons réduire le temps de traitement par dossier de 15mn à 10mn » ou « nous souhaitons diminuer le nombre de retours client et augmenter la satisfaction de tant ».

Ensuite, la participation de vos équipes lors de la recette/le testing de votre application est une bonne manière de la responsabiliser dans la qualité finale de la plateforme web. Enfin, il s’agit de ne pas négliger l’organisation de session de formation lors du lancement de la nouvelle plateforme web ainsi que les différents supports (guide utilisateur mais aussi des tutoriels vidéos qui fonctionnement particulièrement bien).

Mettre en place une logique d’amélioration continue

Il est intéressant de constater que si l’analyse de comportement et l’optimisation de parcours utilisateur se sont généralisées côté client avec Google Analytics, c’est souvent beaucoup moins le cas pour la dimension interne des outils.

Or, il est tout aussi souhaitable de mesurer si votre outil répond bien à vos besoins internes ! Pour cela, il s’agit de mettre en place des indicateurs de performances clairs pour votre outils (temps de traitement, satisfaction) et aussi un moyen de récupérer les feedbacks de vos employés (un simple formulaire peut suffire). Des outils comme Hotjar permettent aussi d’analyser le comportement des utilisateurs via l’enregistrement anonyme de sessions.

Quels sont les pièges à éviter lors de la conception d’une plateforme web ?

Pour créer une plateforme web et mener à bien ce projet, vous devez être vigilant sur certains points.

Prenez le temps de la réflexion pour bien cadrer votre projet

Pour quelle utilisation la plateforme est-elle créée ? Cet objectif est-il mesurable et quantifiable ? Quels sont vos besoins et vos contraintes (budget…) ? À défaut, vous risquez d’avoir des difficultés à rédiger votre cahier des charges et à fédérer vos équipes.

Attention à la superposition de fonctionnalités dès le premier projet

A titre d’exemple, il vaut mieux commencer par développer une plateforme web qui traite un type de dossier représentant 80 % des dossiers et traiter les 20 % de cas limites/spécifiques plus tard que de vouloir sortir le produit parfait et complet dès le début. Cela permettra de concentrer vos efforts, sécuriser plus facilement votre projet et faciliter la formation de vos équipes. Bref, commencez simple !

Évitez le simple copier-coller d’outils internes ou de sites web qui existent déjà

Il s’agit de créer une plateforme web personnalisée et adaptée à votre activité et à vos objectifs tout en mobilisant vos équipes sur une cause commune.

Faites vous accompagner par des professionnels

Créer une plateforme web est complexe et nécessite une expertise technique. Il est donc recommandé de choisir des prestataires spécialisés et expérimentés dans la conception de projet web pour vous guider et vous proposer des solutions techniques qui répondent à vos besoins, et ainsi créer une plateforme web optimale. Depuis de nombreuses années, The Coding Machine mène à bien des projets web, alors n’hésitez pas à nous contacter !

Projets NFT : 5 applications concrètes de l’art au gaming

NFT, blockchain, crypto-monnaies

NFT, Blockchain, Crypto-monnaies sont aujourd’hui souvent des buzzwords qu’on retrouve dans toutes les conversations ou articles tech. Mais que se cache t-il derrière ces mots ? Dans cet article, nous vous proposons d’expliquer (rapidement) ces concepts mais surtout d’illustrer les réalisations pratiques que ces technologies permettent. 

Par ailleurs, de nombreux fournisseurs ont émergé et simplifient beaucoup la mise en oeuvre des projets qui exploitent ces technologies.

Au cours des derniers mois, les équipes de TCM ont été appelées sur de nombreux projets impliquant ces technologies… spécialement à Hong-Kong où le marché est très actif.

Nous allons donc vous présenter les projets réalisés ou en cours afin d’illustrer les idée, les business-model et les défis technologiques.

NFT, Blockchain et crypto-monnaies… Quelques explications

Schématiquement, la blockchain permet de sécuriser et de certifier des transactions grâce à la cryptographie. Cette sécurisation permet de faire quelque chose qui était jusqu’à présent impossible : certifier l’unicité, la véracité et l’origine d’un actif entièrement digital qu’il s’agisse d’une crypto-monnaie ou d’un NFT (autrement dit, un actif digital).

La blockchain, réputée infalsifiable, a apporté la confiance qu’il manquait pour avoir la notion de propriété autour d’un actif 100 % digital. Cette propriété se traduit par l’émission d’un jeton unique, une crypto-monnaie ou un NFT (Non Fungible Token), dont la légitimité en matière de propriété repose sur la blockchain. 

En bref, ce qu’il faut retenir c’est qu’un NFT, une sorte de “certificat de propriété digital”, ne peut exister sans une blockchain pour le certifier. Heureusement, aujourd’hui de nombreuses technologies blockchain, comme Hyperledger Fabric ou Ethereum,  sont devenues accessibles et utilisables librement pour de nombreux projets ce qui explique l’essor des applications potentielles et l’effervescence autour du secteur. Il n’y a plus besoin de développer sa propre blockchain.

Note : évidemment, nous ne pouvons pas tout vous révéler mais nous allons tenté de vous faire découvrir par des exemples de projets l’étendue de la lame de fond que représentent ces technologies !

Quelques exemples concrets d’application : découvrez la diversité des projets NFT et Blockchain !

1 – Plateforme d’enchères d’énergie

TCM a développé une plateforme d’enchères d’énergie qui permet aux fournisseurs de proposer des enchères et de recevoir les contrats associés en cas de succès. 

Afin d’améliorer la transparence des enchères, nous avons permis au client la mise en place une blockchain privée pour héberger l’enchère et numériser son processus d’approvisionnement.

Défis

  • Intégration de Hyperledger Fabric 
  • Conception de smart contracts

2 – Plateforme de prédiction en ligne

TCM développe une plateforme de prédiction peer-to-peer décentralisée qui permet à la communauté de soumettre de nouveaux événements et de placer des paris sur tout résultat d’événements futurs. Les utilisateurs peuvent placer leurs paris en connectant directement leur portefeuille de crypto-monnaies. Les gains sont immédiatement perçus sans aucun délai.

Les avantages résident dans la sécurité de la transaction et la rapidité de la collecte des gains.

Défis

  • Construire un MVP pour mettre en ligne rapidement et recueillir les commentaires de la communauté.
  • Mise en œuvre d’un smart contract
  • Connexion au portefeuille crypto-monnaies

3 – Portefeuille crypto-monnaies

Le premier portefeuille de crypto-monnaies disponible pour les utilisateurs de KaiOS, principalement situés dans les marchés émergents. KaiOS est le troisième système d’exploitation après Android et iOS, il est supporté par les populaires téléphones Nokia. Téléchargeable depuis l’app store, tout utilisateur de KaiOS a accès à son portefeuille de crypto-monnaies.

Alors que dans les pays émergents – ouvrir un compte bancaire n’est pas accessible à tous, ce portefeuille décentralisé permet aux utilisateurs de stocker de la valeur et d’effectuer facilement des transactions entre portefeuilles. En outre, les pays émergents comptent également sur les envois de fonds. Les proches travaillant à l’étranger ont tendance à envoyer une somme d’argent à leur famille restée au pays. Cependant, des frais administratifs s’appliquent aux services d’envoi de fonds, en plus des longs délais de traitement.

Ce porte-monnaie cryptographique vise à réduire les frais de transaction tout en augmentant la vitesse de transaction. De plus, les monnaies des pays émergents ont tendance à être plus touchées par l’hyperinflation qui – à son tour – a un impact négatif sur le pouvoir d’achat des gens.

Des pays comme le Salvador ont donc décidé d’adopter les crypto-monnaies comme monnaie nationale.

Défis :

  • Construire un MVP en un mois
  • Etude technique des solutions tierces disponibles
  • Connexion aux réseaux blockchain ERC-20 et Bitcoin

4 – Place de marché NFT à enchères en direct 

Une place de marché virtuelle qui permet aux artistes de transformer leurs œuvres en NFT et de les vendre lors de ventes aux enchères en ligne, sans qu’il soit nécessaire de faire confiance aux parties ou à une autorité centralisée.

Pendant le concours de dessin, les équipes travaillent ensemble pour dessiner leur propre œuvre d’art. À la fin de la session, les créations sont exposées, permettant aux gens de voter pour leurs œuvres préférées. Elles sont ensuite transformées en NFT en étant téléchargées sur la place de marché dédiée, afin que les enchères puissent avoir lieu. Grâce à la NFT et à la technologie blockchain sous-jacente, les droits de propriété sont transférés en quelques secondes et enregistrés sur la blockchain peer-to-peer.

Défis :

  • Concevoir une expérience utilisateur transparente, du téléchargement de la collection à la gestion des actifs.
  • Étude technique des solutions tierces disponibles
  • Connexion à la Polygon chain

5 – Plateforme d’investissement immobilier tokenisée

Une plateforme d’investissement immobilier où les acheteurs peuvent acheter une fraction de la propriété et recevoir des loyers au prorata. Pour les vendeurs, cela leur donne accès à plus de liquidités puisque les tickets d’investissement sont considérablement abaissés. La blockchain accélère la vitesse de transaction grâce à l’utilisation de jetons tout en garantissant l’enregistrement des documents juridiques.

Alors, si vous réfléchissez à un projet sur ces technologies, n’hésitez pas à nous contacter !

6 bonnes raisons de recruter des stagiaires

Le statut de stagiaire au sein d’une entreprise peut être vu de manière négative : « de la main d’œuvre pas chère », leur attribuer uniquement des tâches non intéressantes/stimulantes (« on a tous ces dossiers à archiver ! »), ne pas les intégrer pleinement à la vie de l’entreprise, l’idée reçue d’étudiants pas très motivés, … 

Et pourtant, chez TheCodingMachine, nous faisons le pari chaque année de recruter des stagiaires que nous embauchons dans 90% des cas en CDI par la suite. 

Face à la difficulté de recrutement de collaborateurs expérimentés dans notre domaine d’activité, ce modèle s’est inscrit très rapidement dans la croissance de nos effectifs et nous sommes depuis bien longtemps convaincu que leur embauche est efficace : nous accueillons chaque année des étudiants intégrés, formés, motivés et investis dans la vie quotidienne de l’entreprise. 

À travers cet article, nous allons challenger votre vision du stagiaire et vous démontrer pourquoi les recruter apporte de la valeur ajoutée à votre structure.

Les points forts du recrutement de stagiaires

  • Vous êtes leur première entreprise (ou presque !) et avez la possibilité de les former à vos processus et méthodologies sans qu’ils soient “pollués” par d’autres manières de faire. 
  • Recruter un stagiaire permet également de profiter de leur œil neuf sur vos sujets internes, que ce soit sur vos projets ou sur votre fonctionnement d’entreprise !
  • À la fin du stage, vous pourrez intégrer des CDI déjà formés sur les projets menés mais également sur les outils/technologies utilisés au quotidien.
  • Lorsque vous recruterez un stagiaire, vous aurez déjà eu l’opportunité de tester leur adéquation avec la culture d’entreprise en amont de leur arrivée en CDI. En effet, il ne faut pas oublier que le stage va prendre la place à votre « période d’essai » (sauf si l’embauche en CDI se fait sur un poste différent) : dans un sens comme dans l’autre, vous saurez donc rapidement si ça colle ou pas avec l’esprit de votre entreprise et si vous vous projetez ensemble dans le futur. 
  • Recruter vos stagiaires va avoir un impact direct sur leur fidélisation pour les années à venir ! On s’en souvient tous, la première entreprise dans laquelle vous vous épanouissez professionnellement devient un peu comme votre premier amour : vous n’avez certainement pas envie de la quitter tout de suite (lorsque tout se passe bien, bien entendu). De plus, leur ancienneté démarrant au premier jour de leur stage (et non pas au premier jour de leur CDI), ils auront déjà accès à une bonne partie des bénéfices réservés aux collaborateurs plus anciens (ex : les accords de participation, l’accès au comité d’entreprise, …) et ça c’est aussi super bénéfique pour eux !
  • Recruter vos stagiaire ou comment rester jeune à tout âge 😉 
    Chez TheCodingMachine, notre moyenne d’âge est de 28 ans : un vrai élixir de jeunesse pour notre entreprise et qui fait pleinement partie de notre dynamisme et de notre envie de nous renouveler sans cesse. 

Malgré tous les avantages du recrutement de vos stagiaires, il faut savoir anticiper les éventuels risques qui y sont liés et mettre en place des solutions : 

  • Gérez en amont une éventuelle fuite des cerveaux/des connaissances lors du départ de vos “seniors”
    Chez TheCodingMachine, dès leur arrivée nos stagiaires suivent un cycle de formation complet d’une vingtaine de modules en présentiel (ou à distance cette année avec le confinement), et sont ensuite formés au quotidien notamment grâce à notre Direction Technique ou via l’intervention d’organismes de formation externe pour la certification de certaines compétences.  Nous suivons également l’évolution des compétences de chacun et de l’entreprise de manière plus globale via notre carte des compétences. Celle-ci est complétée lors des bilans annuels et de mi-année : ce système nous permet d’être dynamiques dans notre gestion et de trouver des solutions rapidement en cas de départ.
  • Gérez les potentielles inquiétudes de vos clients sur la jeunesse de vos collaborateurs concernant la gestion de leurs projets
    Chez TheCodingMachine nous composons toutes nos équipes de la manière suivante : un Directeur de projet, un ou deux Chef de projets (en CDI ou en stage) et un ou deux Coders. En effet, mettre en place une équipe solide permettra de rassurer vos clients même les plus réticents.

    C’est aussi pour cela que nos équipes sont encadrées au quotidien par la présence de notre Direction technique, et nous renforçons également le suivi des projets avec des QA (Quality Assessment) : évaluation des risques à un instant T par un Chef de projet expérimenté et externe au projet. 

Avoir le point de vue de l’entreprise est important, mais si vous voulez également connaître l’avis de nos stagiaires sur leur intégration au sein de nos équipes et que vous n’êtes pas encore tout à fait convaincu de pourquoi recruter un stagiaire ? Foncez regarder l’interview de Yassine HADARI ! Intégré début 2019 en stage, il est depuis maintenant un an en CDI et nous raconte son parcours et sa vision depuis son arrivée chez TheCodingMachine.

N’hésitez pas à nous suivre au quotidien sur nos réseaux sociaux pour découvrir la vie chez TCM et ne louper aucune actualité !

Et pour échanger plus amplement sur le sujet, écrivez-nous sur recrutement@thecodingmachine.com 

Posted in TCM

Peer-coding : Guide pour la montée en compétence de vos développeurs

Que nous soyons en présentiel ou en télétravail comme depuis un an, l’intégration de nos collaborateurs est un élément clé au sein de votre entreprise. Les premières semaines lui permettront rapidement de savoir s’il se projette ou non chez vous. De manière naturelle, les premières heures sont souvent celles sur lesquelles nous nous concentrons le plus pour soigner son arrivée… Mais tout ça peut vite retomber comme un soufflé si vous n’avez rien prévu d’autre pour le projeter dans la durée. 

C’est pourquoi, nous avons mis en place un système d’accompagnement de nos nouveaux collaborateurs allant au-delà de l’accueil dit “classique”. Celui-ci se fait directement sur le cœur de métier technique de nos collaborateurs , passe notamment par le suivi de plusieurs sessions de peer-coding aussi appelé peer-programming.  

Posons les bases : d’où vient le terme peer-coding ?

La traduction française de peer-coding est “programmation en binôme” (programmation par pair ou également binômage). Vous pourrez cependant retrouver le terme aussi sous peer-programming ou bien encore le pair- programming. 

Comment ça marche ?

Selon les entreprises et leurs besoins, le peer-coding ne va pas se traduire tout à fait de la même manière. Il existe 3 grands types de peer-coding : 

  • Le jumelage conducteur / observateur : le conducteur exécute une tâche en autonomie pendant que l’observateur observe pour lui faire ensuite ses retours, 
  • Le jumelage traditionnel : avant d’exécuter son idée, le conducteur doit attendre l’avis et l’accord de l’observateur pour pouvoir lancer la tâche. Dans ce cas de figure, les rôles peuvent être inversés. L’objectif étant de laisser développer la personne ayant eu une idée au départ.
  • Le jumelage “ping pong” : ici le conducteur et l’observateur vont se challenger à tour de rôle. Le conducteur va demander un test de comportement et c’est l’observateur qui a le rôle de développer le code. Une fois que cela est fait, on inverse les rôles !

Chez TheCodingMachine, nous optons pour le jumelage “conducteur / observateur”. Nos nouveaux entrants seront conducteurs du code, et un Chef de projet senior sera observateur. L’objectif est simple : pouvoir observer nos noobs en conditions réelles, afin de leur donner des axes de progression à la fin de la session.

Qui y participe ?

Nous avons déterminés 2 cibles principales pour ces peer-codings :

  • Nos nouveaux entrants, autrement appelés “Noobs”,
  • Nos Coders (cf. article de notre Captain Coders Sophie). Ce peer-coding ne se fait pas de manière systématique, mais uniquement lorsque qu’un besoin se fait sentir. 

Mais que vous soyez un Noob ou un Coder, le principe restera le même !

Comment se déroule une session de peer-coding ?

Une demie journée est dédiée à la session de peer-coding entre le Noob et le Chef de projet plus expérimenté. 

Pendant la session de peer-coding, le Chef de projet expérimenté va compléter une fiche d’évaluation, pour se concentrer sur :

  • les compétences techniques de manière générale,
  • l’algorithmie et la logique qui en découle,
  • l’adaptation du code au projet.

Chaque point est noté sur 5, et des axes d’amélioration sont donnés par le Chef de projet à la fin du peer-coding pour synthétiser son retour. 

Et ensuite, qu’est-ce qu’il se passe ?

La fiche de notation est à la fois communiquée au nouvel entrant, mais également à son tuteur de projet. L’objectif est de pouvoir s’appuyer sur ces retours, pour mettre en place des actions permettant la montée en compétence. Celle-ci va en effet être à la fois de la responsabilité du nouvel entrant par son investissement personnel mais aussi de son tuteur, de par son accompagnement quotidien. 

À savoir que deux sessions de peer coding sont prévues pour chaque nouvel entrant. La première a lieu 2 semaines environ après son arrivée, et la seconde après 3 mois de présence au sein de l’entreprise. Cela permet de constater l’évolution et d’aider à s’améliorer si certains points sont encore à travailler par la suite. 

Concrètement, quels sont les objectifs du peer-coding ?

Le peer coding s’intègre dans un parcours complet au sein de TheCodingMachine dès l’arrivée du nouvel entrant :  

  • C’est un complément aux formations noobs : on allie la théorie à la pratique,
  • Il permet d’avoir un retour concret et précis sur le travail effectué, 
  • Il permet également de se projeter sur son évolution professionnelle et sa montée en compétences sur les semaines à venir,
  • Et c’est un bon moyen d’évaluer la performance au niveau du code de la personne tout au long de son intégration.

Quels sont les vrais « plus » cachés du peer-coding ?

  • Le peer coding permet de mettre l’accent sur le travail d’équipe. L’objectif est d’avancer ensemble vers de meilleures performances techniques. Une fois que votre nouvel entrant est évalué, il s’agira de l’accompagner pour lui permettre d’avancer et de progresser. 
  • Il vous permet également d’appuyer sur la responsabilisation des seniors. L’autonomie et la responsabilisation de chacun font partie des facteurs clés qui encouragent vos salariés à rester chez vous ! Leur montrer votre confiance, en s’appuyant sur eux pour intégrer les nouveaux entrants est un vrai plus. 
  • Dans la prolongation de cette idée, le peer coding permet de vous assurer que vos compétences internes restent en interne. Et ce, même si certains collaborateurs seniors finissent par vous quitter ! La passation des savoirs est un sujet phare à ne pas négliger pour assurer la gestion optimale de vos compétences internes.  
  • Je vous ai parlé ici du peer coding sur la partie technique, mais ce système peut être appliqué à tous les métiers ! Il vous suffit de faire travailler en binôme un junior et quelqu’un de plus senior sur le même métier. L’un et l’autre pourront alors se donner des feedbacks et progresser par la suite. Un système auquel on ne pense pas assez et qui peut faire toute la différence !

Et si on allait au-delà du peer-coding ? Voici la TCM Academy !

Bien entendu pour être efficace, cette notion de peer-coding doit s’inscrire dans une démarche complète de montée en compétences de vos collaborateurs. C’est pourquoi, pour répondre à ce besoin en interne, nous avons créé la TCM Academy

La TCM Academy ce sont des formations bien sûr, des points hebdomadaires communs pour la veille (nos fameux “points du vendredi”) et le peer-coding. Grâce à ce parcours à 360 degrés, nos collaborateurs sont accompagnés au quotidien pour évoluer et avancer dans leur développement professionnel. 

Pour rejoindre l’aventure chez TCM, envoie-nous ton CV sur recrutement@thecodingmachine.com. On recrute tout au long de l’année sur des postes techniques, en stage de pré-embauche ou en CDI pour les profils expérimentés !

Et pour recevoir des contenus exclusifs de la TCM Academy, inscris-toi ici.