Développeur web chez Schwann
SOMMAIRE INTRODUCTION 3 SCHWANN 4 LE STAGE 9 BILAN 24 REMERCIEMENTS 27 LEXIQUE 28 BIBLIOGRAPHIE 30 WEBOGRAPHIE 31 ANNEXES 32 2/33
INTRODUCTION Je suis étudiant en deuxième année de DUT* SRC à l'iut de Champs-sur-Marne, à l'université de Marne-la-Vallée. Le DUT* SRC (Services & Réseaux de Communication) est une formation visant à fournir des compétences dans les domaines du multimédia et de l'informatique. Pour conclure ma seconde année, il m'a été demandé d'effectuer un stage d'avril à juin, stage que j'ai choisi d'effectuer chez Schwann et pour une durée allongée jusqu'à août. Le présent document vise à vous faire part de mon expérience en tant que stagiaire développeur web dans une agence à part et des conditions à part. En effet, Schwann est une agence atypique à plusieurs égards et ses bureaux se situent à Pékin, à des milliers de kilomètres de Paris. Ce stage a plusieurs objectifs : il s'agit d'une occasion pour me frotter au monde professionnel et quitter le travail académique pour acquérir une expérience pratique. La frontière théorique / pratique, bien que faible en DUT* SRC, existe tout de même, dans la mesure où concevoir un site web pour un enseignant et une note n'est pas la même chose que le concevoir pour un client réel, dans une situation qui impose certains enjeux. * l'astérisque sur un terme renvoie au lexique 3/33
SCHWANN En quelques mots Schwann est une agence créative et indépendante. Concrètement, cela se traduit par une atmosphère unique et un travail de réalisation de sites web pour des clients, parfois internationaux et voulant se frotter au marché chinois et à son immense potentiel. Les locaux Géographiquement, Schwann se trouve au cœur de Pékin : Sky & Sea Business Plaza, à une minute à pied de la station de métro Beixinqiao, dans le district Dongcheng. Les locaux se situent au 5e étage d'un immeuble (le rez-de-chaussée est l'étage 1). Il s'agit de bureaux temporaires, partagés avec une autre agence, et constitués d'une seule salle, en open space*. En raison de cette organisation des lieux, le CEO est à portée de vue du project manager, 4/33
et designers et développeurs se font face. Cela permet des échanges très directs entre les uns et les autres dans une atmosphère détendue. Par exemple, si un programmeur a besoin d'une ressource graphique trouvée dans une des maquettes d'un site à réaliser, il lui est facile de s'adresser à son collègue tout proche et de lui exprimer son besoin. L'équipe L'équipe de Schwann, riche de 12 à 13 personnes, compte des profils extrêmement variés. La moyenne d'âge y est approximativement de 30 ans, et l'agence n'hésite pas à embaucher de jeunes têtes. Ayant eu l'occasion de discuter avec un collègue, j'ai appris qu'il avait commencé à travailler chez Schwann dès sa sortie de l'université, voilà cinq ans. En termes de nationalités, outre le fait que le CEO soit un suédois et que le business manager vienne de Québec, l'agence compte parmi ses développeurs et ses stagiaires des français et une américaine. Le reste des effectifs sont composés de chinois, dont certains connaissent l'anglais et d'autres non. Cette diversité de profils pourrait théoriquement être source de problèmes, mais ce n'est 5/33
absolument pas le cas dans cette agence où tout le monde se côtoie et s'entend très bien, sans problème de communication majeur. Lorsqu'un échange se fait par email, lorsque tous les correspondants sont francophones, il n'est pas rare que l'expéditeur rédige son message en français, autrement, les échanges se font en anglais (et certainement en mandarin de chinois à chinois, mais je ne suis pas bien placé pour le savoir). Installations Schwann dispose de son serveur local, sur lequel un nombre incalculable de documents sont stockés et partagés. Ce serveur a de multiples usages : Serveur de fichiers, utilisé pour s'échanger des ressources, des maquettes, tout ce qui peut être enregistré sur un ordinateur en somme. Un développeur travaillant sur un site sait que pour trouver les ressources dont il a besoin créées par les designers, il n'a qu'à explorer le dossier portant le nom du projet en question. Il sert aussi d'espace de dépôt pour les backups*. Serveur web, sur lequel sont hébergés tous les sites réalisés ou en cours de réalisation, en plus d'un intranet permettant de connaître l'état des différents projets et les rôles de chacun. Serveur SVN*, utilisé par les développeurs travaillant à plusieurs sur un site pour rester synchronisés en termes de code. Les clients Les clients avec lesquels traite Schwann sont divers et variés, à l'image de l'équipe. Parmi le carnet de commandes de l'agence, on trouve des entreprises internationales ou étrangères de 6/33
poids mais aussi des compagnies chinoises de dimensions plus modestes. Je citerais par exemple Audi, Volkswagen, Burger King... Services L'équipe de Schwann peut proposer différents services à ses clients : Réalisation de sites web, parfois avec Drupal. Il peut s'agit de quelques pages au seul rôle de vitrines, ou bien de sites requérant de longs mois de travail et d'une complexité bien supérieure. Installation de serveurs web et de serveurs de mail, généralement dans le cadre d'un contrat incluant la réalisation d'un site web. Conseils et stratégies de branding et d'advertising. Cette diversité mène à des projets de longueurs très variées, entre celui qui ne prend que quelques jours et celui dont la durée se chiffre en mois. Réunions Un certain nombre de réunions sont régulièrement organisées chez Schwann : Une réunion environ chaque semaine, entre le CEO et les employés, pour rendre compte de l'avancement des projets sur lesquels ceux-ci travaillent, mettre au jour les problèmes éventuels ou avérés. Une réunion en tête à tête chaque mois, à l'occasion de la remise du salaire, au cours de laquelle le CEO voit chacun en privé et lui demande s'il y a des choses qui ne vont pas, qui posent problème, ou s'il a des suggestions pour améliorer le fonctionnement de l'agence. 7/33
Des réunions spontanées ont lieu de temps à autre, si l'un ou l'autre a besoin de clarifier un point ou de faire le point sur la situation. 8/33
LE STAGE Mes tâches En tant que stagiaire chez Schwann, j'ai dû réaliser différentes missions et m'acquitter de diverses tâches, dont voici un concentré : Développer des sites web, en m'appuyant sur le CMS* Drupal. Intégrer des maquettes en pages HTML statiques. Faire des recherches et des estimations dans une démarche de conseil Développer des sites web Il s'agissait de ma principale activité chez Schwann, qui ne compte que deux autres développeurs, à plein temps. La pierre angulaire des sites créés par Schwann s'appelle Drupal. Drupal est un CMS* très extensible et disposant d'une très large communauté de contributeurs et d'utilisateurs. En général, à chaque fois que l'on se pose une question relative à un problème rencontré, il est fort probable que quelqu'un y ait déjà été confronté bien avant et qu'une simple recherche sur le web soit suffisante pour trouver la solution. Drupal est donc la pile logicielle sur laquelle les développeurs de Schwann s'appuient en priorité pour construire des sites parfois très complexes. Le premier site web qu'il m'ait été donné de concevoir, avec un autre développeur, était destiné à un client japonais pour un public chinois des possesseurs de chiens, d'animaux de compagnie 9/33
a fortiori. Ce site comprenait un espace d'e-commerce et devait gérer différents types d'utilisateurs, entre le membre disposant d'un compte gratuit ou à * 100 et le membre inscrit dans un hôpital chinois et bénéficiant d'un abonnement à 2000 ou 2500 l'année, chaque type de compte apportant un certain degré de privilèges. Intégrer des maquettes Avant de commencer le véritable développement d'un site web, il était question de réaliser des pages statiques à partir des maquettes créées par les designers. Ce travail, à destination du client, avait pour objectif de lui montrer un aperçu de ce à quoi devrait ressembler le vrai site web et de recueillir son appréciation. Si le client exprimait son insatisfaction sur un point, mon devoir était de corriger ou de changer ce point en fonction de ses souhaits. Bien que ce travail permette au client d'avoir une meilleure idée du site fini, j'ai quelques reproches à exprimer face à cette méthode. Je pense qu'à force de modifier et de proposer encore et encore de nouvelles versions au client, les graphistes et le développeurs perdent du temps qu'ils pourraient exploiter autrement. D'un autre côté, cette méthode permet de cerner au pixel près la vision qu'a le client d'un site parfait. Elle a donc des avantages et des inconvénients. Faire des recherches et des estimations Chaque projet pour lequel travaille Schwann requière une étape de réflexion et pose des questions sur lesquelles l'agence doit pouvoir conseiller son client. Le premier cas sur lequel j'ai été appelé à m'exprimer concernait celui d'un client souhaitant montrer plusieurs centaines de vidéos sur son site. En conséquence, il lui fallait avoir une idée des mensurations de l'hébergement web nécessaire pour proposer cette expérience de streaming dans les meilleures conditions. J'ai donc été chargé de fournir une estimation de l'espace disque requis, en effectuant des calculs à partir de données 10/33
approximatives relatives au poids des vidéos d'une qualité moyenne et d'une durée de dix minutes ou plus. Il a également fallu estimer la bande passante et les caractéristiques techniques du serveur sur lequel tournerait le site final, en tenant compte de la proportion de visiteurs potentiels et des réalités géographiques et politiques. Par exemple, il a été envisagé de faire appel à un service d'hébergement de contenu multimédia situé hors de Chine. Cela posait certains risques : il suffirait qu'une seule vidéo hébergée par le service déplaise au gouvernement chinois pour que l'accès à la totalité du contenu hébergé à la même enseigne soit bloqué en Chine. À partir de ces réflexions, nous avons été en mesure de guider le client vers une offre d'hébergement adaptée à ses besoins. Autres tâches Des tâches plus annexes m'ont été confiées de temps à autre. Par exemple, on demandé de réaliser un court manuel pour expliquer au client comment utiliser un site sur lequel j'avais travaillé afin que ce dernier soit en mesure d'ajouter, éditer et supprimer du contenu, des articles plus précisément. Travaux Voici les projets les plus importants et sur lesquels j'ai eu l'occasion de travailler chez Petbaby et qui m'ont occupé pendant de longues périodes. J'ai travaillé sur ces projets en compagnie d'un développeur senior, français installé à Pékin. 11/33
Petbaby Ce projet consistait à réaliser un site internet pour une entreprise japonaise souhaitant partir à la conquête d'un marché encore sous-exploité en Chine, celui des possesseurs de chiens. Grâce à son développement économique, la Chine a vu naître et croître une tranche de sa population ayant les moyens de posséder un animal de compagnie et de l'entretenir, localisée dans les villes les plus riches telles que Pékin et Shanghai. Le client souhaite donc exploiter ce nouveau marché potentiel en s'adressant à de telles personnes. Le site doit principalement présenter des articles sur le thème des animaux de compagnie (entretien, santé et médical, micro puce, etc) rédigés par le client et une partie e-commerce permettant aux visiteurs d'acheter toute sorte de biens de consommation pour leurs animaux (nourriture, accessoires, etc). Il doit également présenter les partenaires du client, tels que des hôpitaux vétérinaires ou des boutiques pour animaux de compagnie. Le site propose quatre types de comptes aux visiteurs : le compte email, gratuit, le compte membre à 100 par an, le compte à 2000 par an et celui à 2500 par an. Ces différents types de membres ont accès à différents niveaux de privilèges et requièrent différents processus pour être créés : Type Email 100 2000 Inscription Privilèges Gratuite Directement sur le site Lire les articles en entier Gérer les informations de ses chiens Ajouter un article à ses bookmarks Payante Règlement sur le site Acheter sur l'e-commerce Payante En visitant un hôpital vétérinaire Bénéficier de réductions Lien étroit avec un hôpital vétérinaire 12/33
2500 partenaire du programme Accéder à un espace restreint En termes de technologies, le site est bâti autour de Drupal 7 et utilise un très grand nombre de modules externes. Il interagit également avec certains services, tels que : Salesforce, une offre de CRM*, utilisée notamment pour stocker diverses informations sur les membres du site Petbaby et qui doit rester synchronisée avec le site internet. Par exemple, si un membre s'inscrit en ouvrant un compte à 100 par an, ses informations doivent être envoyées aux serveurs de Salesforce. China UnionPay, un organisme de regroupement de banques chinoises, au fonctionnement similaire à Visa. Au tout début, il avait été décidé de recourir à la plate-forme Paydollar, une solution de paiement en ligne, prenant en compte de nombreuses devises, dont le yuán chinois ( ) en s'interfaçant avec China UnionPay. Cependant, à la suite d'une série d'imprévus, il a été décidé de se passer de l'intermédiaire Paydollar. L'intégration de ces services passe, là encore, par l'utilisation de modules pour Drupal. Paydollar ne disposait pas de module complet et à jour pour la version 7 du CMS* mais le développeur senior avec lequel j'ai travaillé s'est chargé d'en créer un. Ci-dessous, une capture de la page d'accueil du site. Nombre d'entrées étaient encore en anglais au moment de la prise de la capture d'écran, car la traduction complète en chinois n'a été faite qu'à la toute fin, lorsqu'il était certain que plus rien ne bougerait. 13/33
Les tuiles réparties en colonnes représentent des articles, des partenaires (hôpitaux, commerces et autres) et des objets disponibles dans l'e-commerce. Leur nature est indiquée par la présence d'un symbole en haut à gauche. Le menu latéral propose, dans l'ordre, trois onglets contenant les articles recommandés, les articles les plus populaires et les articles promus par les rédacteurs de contenu. Ici, la partie présentant les articles placés bookmarkés par le visiteur n'apparaissent pas car celui-ci n'est pas connecté. En-dessous sont mis en avant deux des objets disponibles dans la partie ecommerce. Parmi les impératifs du site, il y avait celui de le rendre compatible avec Internet Explorer 6 et 7. En effet, il s'agit encore des navigateurs les plus utilisés par les internautes chinois, avec environ 24 % des internautes utilisant Internet Explorer 6. Il est donc important que le projet Petbaby ne néglige pas cet aspect pour ne pas se fermer à une partie de ses destinataires. 14/33
La même page sur Internet Explorer 6, avant correction. L'adaptation à Internet Explorer 6 par l'ajout de feuilles de style CSS spécifiques s'est faite tout à la fin, lorsqu'il était certain que le site ne subirait plus de grosse modification ou de lifting. Afin de s'assurer d'un rendu correct sous Internet Explorer, toutes versions, la seule solution était d'installer plusieurs machines virtuelles, Windows 7 (versions récentes d'internet Explorer) et Windows XP (Internet Explorer 6) entre lesquelles il fallait ensuite jongler. Ce travail étant rendu plus difficile par l'absence d'outils de développeur dans les versions les plus anciennes du navigateur de Microsoft. Autre impératif du site : sa traduction intégrale en chinois (chinois simplifié, par opposition au chinois traditionnel). Sachant que le stagiaire que j'étais et le développeur senior chargés de travailler sur le site avaient une compréhension limitée du chinois écrit (nulle dans mon cas), nous avons d'abord développé tout le site en anglais. Puis, lorsqu'il était certain que peu de choses et de textes seraient modifiés ou ajoutés, nous l'avons entièrement basculé en chinois. Drupal rend la localisation (la traduction) de sites web très simple. Certains modules, 15/33
tels que Localization Update, rendent le processus encore plus simple, en proposant de télécharger et d'installer automatiquement toutes les traductions disponibles pour Drupal et tous les modules installés. Cependant, cela n'est pas suffisant pour avoir un site entièrement traduit, car tous les modules et tous les morceaux de Drupal ne disposent pas forcément d'une traduction, encore moins lorsque le langage cible est exotique. Le chinois simplifié restant tout de même le système d'écriture privilégié d'une famille de langues (mandarin, cantonnais, etc) pratiquées par plus d'un milliard de personnes, il bénéficie quand même d'une bonne couverture dans le monde Drupal, bien que moindre que celle du français ou de l'allemand. Quant à tous les mots et phrases ne disposant pas déjà d'une traduction, nous avons demandé à un membre de l'agence de les traduire. La traduction a ensuite été validée du côté du client et ses défauts et quelques impairs corrigés. Notre cas de figure demeurait cependant simple, car nous n'étions pas tenus de réaliser un site multilingue anglais et chinois. Un tel cas de figure aurait rendu la tâche autrement plus ardue. Petbaby webapp Une webapp est est une forme d'application rendue par un navigateur web. Dans son sens le plus basique, c'est un site web, mais son intérêt est de s'intégrer à une plate-forme (ipad, tablette Android) plus profondément qu'un simple site web, suffisamment pour être qualifiée d'application. Le concept d'application web est en opposition à celui d'application native, codée en Java pour Android ou en Objective-C pour ios. Bien que moins bien intégrée au système, une webapp présente de nombreux avantages non dégligeables : elle peut se mettre à jour simplement en la visitant à son adresse web, s'utiliser sans connexion internet, et peut tourner sur n'importe quel système pourvu d'un navigateur. Bien qu'il fasse partie du projet Petbaby, le projet Petbaby webapp représente un travail 16/33
différent à plusieurs échelons. D'abord, il cible les hôpitaux vétérinaires partenaires du client et les possesseurs de chiens qui s'y rendent, et non les internautes à domicile. Ensuite, il se présente sous la forme d'une application pour tablette, une webapp, destinée à être affichée et utilisée dans ces hôpitaux partenaires, et ne s'adresse pas au même public et n'a pas les mêmes objectifs. Voici ce à quoi la webapp se destine : Présenter l'hôpital local avec une galerie d'images, d'une vidéo et d'une page de présentation. Offrir une interface pour permettre l'inscription, sur place, d'un client souhaitant ouvrir un compte à 2000 ou 2500. Présenter le projet Petbaby dans son ensemble, là encore au moyen d'une galerie, d'une vidéo et d'une page d'introduction. Pour réaliser la webapp, nous avons cependant décidé d'utiliser le même site que Petbaby et la même base de données. Il suffit donc d'ajouter le suffixe site/ à L'URL pour accéder à la webapp depuis n'importe quel poste informatique. Les pages ne sont simplement pas du tout les mêmes que celles du reste du site, car celles-ci sont faites pour des tablettes avec une définition d'au moins 1024x768 pixels. L'interface est également pensée dans ce sens, avec de larges boutons et des images qui occupent une place majeure. 17/33
Le site Petbaby est donc composé d'un site général, accessible par tout le monde, permettant de lire des articles, de visiter un espace e-commerce, et une webapp visitée à partir d'une tablette dans les hôpitaux partenaires. Les imprévus Le projet de webapp Petbaby a rencontré plusieurs difficultés indépendantes de la volonté de l'agence Schwann au cours de son développement : le processus de paiement. En effet, dans l'optique d'une utilisation en hôpital pour créer des comptes à 2000 ou 2500, il est nécessaire que le visiteur paie avec sa carte bancaire. En Chine, il y a un passage obligé pour payer par de tels moyens : China UnionPay. Il s'agit plus ou moins de l'équivalent de Visa ou Mastercard pour l'empire du milieu 18/33
et il est obligatoire de passer par celui-ci pour régler des paiements dans la devise nationale locale, le yuan. C'est-à-dire qu'un espace d'e-commerce s'adressant aux internautes chinois devra recourir à China UnionPay. Or la webapp Petbaby est destinée à être utilisée sur une tablette, un ipad à l'origine, et la seule interface proposée par UnionPay pour les paiements requière l'installation d'un plugin, disponible uniquement sous Windows avec Internet Explorer et éventuellement Firefox, sous forme de contrôle ActiveX. Cette technologie exclue donc entièrement les navigateurs pour tablettes et leurs utilisateurs. La seconde difficulté vient d'une singularité chinoise peu connue des entreprises étrangères de prime abord : l'icp license. Concrètement, il s'agit d'un permis octroyé par le gouvernement chinois à une entreprise. Sans ce permis, il lui est impossible de faire certaines choses, comme avoir un site avec un nom de domaine.cn, un espace e-commerce utilisant le yuan comme devise. Il y a également d'autres restrictions, entre autres au sujet de l'hébergement de sites web sur le territoire chinois qui nécessite une autorisation de même. Il existe différents niveaux d'icp, mais celui requis pour un business peut prendre 6 à 7 mois pour être obtenu. Le client de Schwann n'ayant commencé les étapes de demande d'icp que tardivement, le site Petbaby et la webapp ne pourront être réellement considérés comme complets qu'une fois la licence obtenue. Sans cela, ils ne peuvent pas être hébergés en Chine et disposer d'un nom de domaine chinois, et ne peuvent pas proposer un espace d'ecommerce dont la devise serait le yuan. Une fois l'icp obtenu, le site concerné l'affiche généralement en bas de page. Cidessous, le footer du réseau social chinois Kaixin. Au milieu figurent les lettres ICP accompagnées du numéro de la licence octroyée par le gouvernement chinois. Ces deux problèmes ont causé des retards impossibles à éviter pour l'équipe de 19/33
Schwann. En conséquence, les deux principaux projets sur lesquels j'ai eu à travailler depuis avril 2013 ne seront réellement achevés à 100 % qu'une fois ceux-ci réglés, donc bien après que mon stage se termine. Une solution temporaire a été trouvée pour l'hébergement, celle de placer le site sur des serveurs de Honk-Kong à une adresse.com : http://chonganbj.com/. L'idéal et l'objectif serait de pouvoir l'héberger en Chine à terme. Un léger imprévu a eu des conséquences nulles mais aurait pu faire bien davantage de dégâts : un soir début Juin, le serveur web de Schwann a simplement cessé de fonctionner. Après un redémarrage, le système (Ubuntu 12.04) montrait des difficultés à monter certaines partitions des deux disques durs de la tour. La plus grosse frayeur que nous avons eue fut celle de perdre l'équivalent d'une journée de travail, voire plus. Heureusement, la catastrophe a été évitée pour plusieurs raisons : la première, c'est que des backups* sont automatiquement orchestrés chaque soir, vers un disque dur situé sur une autre tour située à quelques centimètres seulement du serveur web. La seconde raison pour laquelle la catastrophe a pu être évitée est simplement que le serveur a finalement accepté de fonctionner correctement après une mise à jour plus que nécessaire. Cependant, j'ai appris à cette occasion que l'état de santé des disques durs n'avait pas été vérifié depuis plus de 250 jours. Difficultés rencontrées C'est du chinois pour moi Cette formule résume bien quelle fut ma première difficulté en arrivant : la barrière linguistique. En effet, le mandarin est la langue parlée à Pékin et la langue des sites internet réalisés par Schwann. Cela entraîne quelques contraintes : lorsque je travaille sur une page, je dois m'assurer de comprendre le sens du texte qu'elle contient et ne pas le retranscrire sans réfléchir car cela peut mener à 20/33
des problèmes regrettables comme un non-respect de la sémantique et un fond complètement détaché de la forme. Du côté de la communication, je n'ai pas ressenti cette différence linguistique comme un obstacle. En effet, bien que certains membres de l'agence ne connaissent pas l'anglais, il ne s'agit pas de ceux avec lesquels j'ai besoin d'échanger en priorité pour mon travail. Dans le cas où j'ai besoin de m'adresser à l'un d'entre eux, je peux demander à quelqu'un d'autre de faire l'interprète. L'inexpérience En théorie, il est relativement simple de se former à un CMS* ou une technologie grâce à Internet, mais en pratique, bien que bénéficiant de l'aide de mes collègues, mon manque d'expérience sur l'utilisation de Drupal m'a ralenti à certaines occasions. Je ne m'en suis pas inquiété outre mesure car cela fait partie du processus d'apprentissage, mais en de telles occasions, j'ai compris qu'il était important que je communique au moindre problème avec les personnes susceptibles de pouvoir m'aider, sans toutefois tomber dans le piège de les laisser se charger de tout le travail complexe, ce qui m'aurait empêché de vraiment me faire les dents sur Drupal. L'inexpérience me rendait aussi difficile d'estimer la durée d'une tâche, chose que l'on me demandait parfois de faire. Dans de tels cas, je préférais m'en remettre à l'avis du développeur senior, car il m'était difficile d'estimer la durée de développement d'un module Drupal sans jamais en avoir créé un. La communication J'ai également dû m'habituer à agir comme membre d'une équipe : être capable de demander un service au designer si j'ai besoin qu'il découpe un bouton dans une maquette, lui demander conseil sur la manière d'organiser une interface ou une page, faire des suggestions ou 21/33
questionner le project manager sur un point ou une fonctionnalité. Tout ceci n'était pas dans mes gènes mais il m'a fallu m'y faire peu à peu. L'organisation du travail Tandis que pendant les études, y compris post-bac, il est courant de se voir assigner une tâche précise par un professeur, avec des consignes strictes, ce stage m'a montré comment l'inverse pouvait être concilié avec la création de sites web pour un client. J'ai d'abord été surpris par le fait de ne pas recevoir tout le temps de tâches et d'objectifs fixes. Pendant de nombreuses périodes, il me fallait m'organiser en coopération avec le développeur senior pour décider qui devait faire quoi, estimer quel était le plus urgent, ce qui pouvait attendre et combien de temps prendrait telle ou telle tâche. Un lâcher dans la nature, en d'autres termes. J'ai également découvert que le chef de projet n'est pas forcément un expert en informatique et que le client risque encore moins de l'être. Bien que cette perspective ne me soit pas totalement étrangère, j'en ai tout de même senti les effets, à travers le fait de se voir accorder plus de confiance mais aussi plus de responsabilités de la part de ces personnes. La relation au client Tandis que mes cours de gestion de projet et mon professeur de l'époque m'avaient habitué à l'idée qu'un projet devait être mené selon des règles carrées et strictes pour éviter les délais et les mauvaises surprises, les désaccords avec le client, le terrain m'a montré qu'il pouvait en être autrement. D'abord, j'ai enfin pu expérimenter les effets de ce qui arrive lorsqu'un client change un point important d'un site pendant la réalisation du projet, parfois tardivement, ou encore lorsque celuici, sous des pressions externes, fait part à l'agence de son désir de lancer un site à moitié prêt sans 22/33
espace e-commerce, ce qui implique de masquer certaines parties du site sans oublier aucune des pièces à cacher. J'ai également pu constater qu'une deadline, malgré la majesté que je veux bien reconnaître à ce terme, n'est pas toujours tenue et que cela ne signifie pas l'arrêt de mort, et que les délais et les imprévus peuvent parfois être introduits par le client lui-même. Enfin, j'ai compris qu'il fallait savoir faire preuve d'une certaine flexibilité lorsque les circonstances l'exigeaient, par exemple dans l'éventualité où un client serait tenté d'aller voir chez la concurrence. Cela ne signifie pas abandonner toute lucidité et bon sens mais demande parfois de faire des concessions et des sacrifices, comme par exemple d'être prêt à réaliser puis adapter quarante fois le prototype d'un site pour être sûr qu'il convienne parfaitement au client, quitte à ce que cela paraisse être une perte de temps au tout début. 23/33
BILAN Mon stage n'est pas encore terminé, car il me reste encore un mois et demi à passer chez Schwann. Bien qu'étant à mi-parcours, je peux déjà dresser un bilan de cette expérience : Ce que j'ai appris Grâce à ce stage, j'estime avoir appris un grand nombre de choses et acquis une nouvelle expérience dans divers domaines. J'ai d'abord appris à créer des sites internet complexes avec Drupal. Drupal, qui au tout début peut paraître n'être qu'un CMS* parmi tant d'autres, s'est révélé beaucoup plus vaste, flexible et puissant que je ne le croyais. J'ai découvert qu'il était possible, en s'appuyant sur ses très riches interfaces à clic, son API* et la liberté de coder qu'il laisse, de construire des sites sans commune mesure, tout en faisant abstraction de plusieurs couches de complexité. Tandis que j'étais du genre à préférer réinventer la roue pour tous mes projets personnels et projets d'études, je sais maintenant que pour mes projets futurs, j'envisagerai sans défiance l'utilisation de solutions telles que Drupal. Travailler en équipe, pour des enjeux réels et forts. Côté technique, cela implique de partager la même base de code en s'aidant d'un VCS* (un logiciel de gestion de versions), SVN* pour l'occasion, et d'utiliser une base de données et des outils communs. Côté humain, cela demande de communiquer avec son entourage, autant sur les problèmes que les succès. Hors champ programmation, il m'est aussi arrivé de devoir demander conseil aux graphistes sur une page ou un élément d'une l'interface qui ne me semblait pas clair ou sur lequel je manquais 24/33
d'informations. Penser non-informaticien. Cela passe par exemple par la réalisation d'un manuel pour expliquer comment créer un article, même lorsque cela semble complètement évident à l'informaticien vivant dans une cave que je suis, ou encore par la prise en compte de tous les facteurs externes au code mais qui influent cependant sur le projet. L'informatique doit s'adapter à l'utilisateur et pas l'inverse, et cela est d'autant plus vrai sur un projet visant l'utilisateur lambda. Il faut penser code mais également marketing, accessibilité. Savoir se mettre dans l'inconfort. On ne glisse aucun problème sous le tapis, encore moins si on est le seul à l'avoir remarqué. Faire des remarques si on les estime justes, donner son avis quand il est attendu mais peut-être aussi quand il ne l'est pas, s'il s'agit d'un apport que l'on estime pertinent. Pour le dire crûment, un développeur n'est pas là pour «pisser du code» comme un automate. Mes erreurs L'expérience vient aussi en faisant des erreurs. J'ai identifié plusieurs erreurs que j'ai commises au cours de ce stage et que je m'efforcerai de ne plus faire à l'avenir : Me diriger d'instinct vers le développeur senior au moindre problème. Je n'avais jamais eu l'occasion de construire un site web entier avec Drupal avant d'arriver chez Schwann. J'ai donc pris la fâcheuse habitude de demander à mon collègue comment résoudre x ou y problème au lieu de commencer par faire des recherches par moi-même. Au tout début, j'étais également poussé par la peur de perdre du temps et de me mettre en retard en faisant des recherches tandis que mon collègue serait susceptible de déjà connaître la réponse à ma question. Il m'était d'autant plus facile d'agir de la sorte que ce dernier est lui-même français. En conséquence, j'ai 25/33
pris ce mauvaise réflexe, que j'ai heureusement progressivement abandonné par la suite. Heureusement, car cela représentait une perte de temps pour mon collègue qui cherchait donc la solution à mes problèmes à ma place, et une nuisance pour le développement de mon propre esprit d'initiative. Une anecdote pour la circonstance : j'ai appris de la bouche de ce même collègue développeur qu'il n'avait pas plus de huit mois d'expérience de Drupal. Le fait de peu connaître ce CMS* n'est donc pas une excuse valable. Me rabattre vers les tâches les plus simples et habituelles en priorité. Ce fut mon second mauvais réflexe au début de mon stage, car devant l'inconnu que représentent la création de vues pour Drupal ou de fichiers templates, il était bien confortable de se réfugier dans l'intégration de maquettes de pages web et d'autres tâches auxquelles j'étais fourbu. Ma curiosité a cependant rapidement repris le dessus. Communiquer avec tout le monde. Ce n'est décidément pas inné chez moi mais c'est, là encore, un point que j'ai eu l'occasion d'améliorer depuis avril. Lors d'un travail en équipe, il est impensable de ne rien partager avec les autres, de ne pas leur dire régulièrement ce que l'on fait ou ce que l'on a fait, l'avancement du travail. C'est une habitude qui me vient graduellement mais qui demandera encore un peu de temps avant de devenir un comportement naturel chez moi. En conclusion Je dois dire que j'aurai passé quatre excellents mois au sein d'une équipe composée de gens sympathiques, à travailler sur des projets intéressants et enrichissants, dans une atmosphère sereine. Il s'agit donc pour moi d'une expérience réussie et d'un défi relevé avec succès. J'espère donc avoir de nouvelles opportunités de ce type à l'avenir. 26/33
REMERCIEMENTS Je tiens à adresser mes remerciements à un certain nombre de personnes pour avoir contribué, de près ou de loin, à rendre cette expérience possible : À Martin Couture pour avoir été mon interlocuteur principal pendant les préparatifs du stage et m'avoir permis de découvrir l'agence ; à Masaki Gunnarsson pour m'avoir accueilli chez Schwann et accordé sa confiance en m'acceptant comme stagiaire. À toute l'équipe de Schwann. Français ou chinois, qu'ils parlent anglais ou non, tous ont faire preuve d'une grande cordialité et ont été des collègues que j'aurais eu plaisir à fréquenter pendant toute la durée du stage. À Martine Thireau pour sa patience face à mon impatience lorsqu'il s'agissait de préparer les papiers nécessaires et pour son aide, et à Marianne Cardin pour m'avoir accompagné pendant tout ce temps-là et avoir encouragé ses élèves à partir à l'étranger. À Sophie Matray du service des relations internationales, pour avoir pris soin de mon dossier de bourse et m'avoir tenu au courant des différentes procédures requises pour le départ. À mes parents pour avoir supporté mon projet de stage et de délocalisation. Merci! 27/33
LEXIQUE Le symbole monétaire utilisé pour le yuan chinois (et le yen japonais). API Application Programming Interface. Lorsque l'on utilise des services tiers, ceux-ci mettent à disposition des programmeurs une API, c'est-àdire un ensemble de fonctions ou de méthodes leur permettant d'interagir avec le service. Les entreprises qui souhaitent bien faire les choses proposeront systématiquement une documentation de leurs API afin que n'importe qui puisse apprendre à s'en servir. Backup Dans le milieu informatique, c'est le terme utilisé pour faire référence à la sauvegarde de données. Cette sauvegarde est généralement automatisée et peut être exécutée à diverses fréquences (tous les jours chez Schwann). Il peut s'agit du backup d'un disque dur entier ou bien d'une base de données, du code source d'un projet, etc. CMS Content Management System. Les CMS les plus basiques peuvent être dédiés à des besoins précis tels que la création et l'entretien d'un blog, d'un espace photographique en ligne. Les plus gros CMS et les plus extensibles, à l'image de Drupal, permettent théoriquement de réaliser n'importe quel site web, mais cela va de pair avec une courbe d'apprentissage plus longue et plus raide. Certains CMS ne s'administrent que par le biais d'interfaces figées et non modifiables, d'autres permettent de mettre les mains dans le code pour pratiquement tout changer de A à Z. CRM Customer Relationship Management. Il s'agit d'un service ou d'un ensemble d'outils donnés pour traiter et analyser des informations sur des clients, un atout précieux pour de nombreux business. DUT Diplôme Universitaire de Technologie. Préparé en deux ans après le bac, il offre de nombreuses possibilités de poursuite d'études, comme la troisième année de licence, la licence professionnelle ou l'école d'ingénieur. Open space Un espace de travail où les bureaux ne sont pas séparés par des cloisons. En conséquence, les personnes se voient et s'entendent entre elles. Source : Wikipédia SVN Un logiciel de gestion de versions développé par la fondation Apache. 28/33
Parmi ses concurrents, on compte Git et Bazaar. Le fonctionnement de SVN est le suivant : un serveur contient une copie centrale du code source d'un projet, et les développeurs ont chacun une copie locale de ce dépôt de code source. VCS Version Control System, ou logiciel de gestion de versions. C'est un programme qui permet de gérer un ensemble de fichiers et de conserver l'historique de toutes les modifications subies par celui-ci. Il s'agit d'un outil essentiel pour les développeurs travaillant en équipe voire même seuls. Dès qu'un développeur a effectué une ou plusieurs modifications prêtes à être partagées avec les autres, il effectue un commit (l'ensemble de ces modifications accompagnées d'un message indiquant de quelles modifications il s'agit). Un VCS permet également de résoudre les conflits entre fichiers. Par exemple, si chaque développeur a travaillé de son côté sur une même page web, ont ajouté et retiré des choses différentes, il est probable qu'il y ait un conflit. Le VCS va alors les en avertir dès que ceux-ci mettront à jour leur dépôt local de code source, en proposant diverses solutions pour résoudre le problème. 29/33
BIBLIOGRAPHIE Using Drupal O'Reilly Media Angela Byron, Addison Berry, Bruno De Bondt Atelier Drupal 7 Framasoft Cyprien Roudet Ce livre explique, à travers l'utilisation d'exemples concrets, comment exploiter tout le potentiel de Drupal pour créer des sites web de tous types. Il ne s'adresse cependant pas aux développeurs et autres adeptes des lignes de code, mais m'a permis de me familiariser avec le CMS* avant le commencement de mon stage, bien que le manque de temps m'ait empêché d'en lire plus que la moitié. Un bon support pour s'initier pas à pas à Drupal, en commençant par une utilisation basique d'administrateur de site pour ensuite s'avancer sur le terrain du véritable développement web. Je ne m'en suis pas autant servi que Using Drupal mais j'y ai parfois eu recours pour combler ma méconnaissance sur un aspect de Drupal. 30/33
WEBOGRAPHIE drupal.org Le site officiel de Drupal, la bible de tout développeur utilisant cette plate-forme. Il contient bien entendu la documentation du projet, la description de l'api* mise à disposition des programmeurs, mais aussi un forum et la base de données des modules existants. Un incontournable. drupal.stackexchange.com Un site dont le concept paraîtra familier aux coutumiers de Stack Overflow. En résumé, il s'agit d'une plate-forme sur laquelle tout un chacun peut poser une question ou apporter une réponse, l'unique sujet ici étant Drupal, Drupal sous toutes ses coutures. Pratique lorsque l'on fait face à un ennui, mais en raison du fonctionnement communautaire du site, il arrive parfois que certaines questions restent sans réponse... api.jquery.com La documentation de la bibliothèque Javascript jquery. Cette bibliothèque est nativement incluse dans Drupal et nous l'utilisons donc intensivement pour produire toutes sortes d'effets sur les sites que nous construisons. Tout le web Pourquoi se limiter à quelques sites? L'aura de Drupal dans le monde des CMS* est si grande qu'une simple recherche donne de nombreuses solutions aux problèmes que l'on se pose ou que l'on ne s'est pas encore posés. 31/33
ANNEXES 32/33
Merci d'avoir lu ce rapport de stage! 33/33