.

Comment composer une équipe de développement web pour créer un grand site web ?

Pour les projets plus petits, vous pouvez utiliser des outils sans code ou le travail d'un seul programmeur. Il ou elle doit être full-stack, c'est-à-dire capable de créer la couche backend et frontend. Créer un site web de cette manière est tentant en raison de la gestion simplifiée et des coûts réduits. Cependant, le développement web est un processus compliqué, et la difficulté peut augmenter de façon exponentielle avec la complexité du site. Par conséquent, nous réunissons une équipe complémentaire pour les projets plus importants qui pourra gérer la complexité supposée.

Qu'est-ce qu'une équipe de projet ?

Une équipe de projet est un groupe de personnes qui travaillent ensemble pour créer un logiciel, dans notre contexte – un site web. Ce travail est complexe, créatif et nécessite de l'adaptabilité lorsque de nouveaux défis technologiques apparaissent et que les exigences commerciales changent.

Une équipe peut être constituée de personnes assignées à un projet donné et impliquées à 100 % de leur temps, ou de spécialistes qui partagent leur temps et leur expertise entre différents projets. Selon le choix d'une méthodologie de gestion de projet (par exemple, le Waterfall ou Scrum), les membres de l'équipe peuvent être nécessaires uniquement à certaines étapes (par exemple, les architectes ou les designers UI/UX – uniquement au tout début) ou tout au long du processus de développement web.

Pour les projets complexes qui sont par nature difficiles à entièrement spécifier, les méthodologies agiles offriront une valeur bien plus élevée que le Waterfall. Grâce à l'approche itérative, le projet est réalisé par étapes, ce qui nous permet de vérifier si nous progressons de manière adéquate, ainsi que d'ajuster le prochain périmètre de travail aux besoins susceptibles de changer. Au lieu de créer une longue spécification pendant plusieurs semaines ou mois, qui risque de devenir obsolète (puisque nous opérons dans des conditions en évolution rapide), nous créons des incréments de travail qui nous rapprochent de l'objectif, même s'il évolue (par exemple en raison des conditions du marché ou des nouvelles exigences commerciales).

Structure de l'équipe de développement web

Une équipe de développement logiciel chargée de créer des sites web peut inclure divers rôles. D'habitude, elle comprend les rôles que nous décrivons ci-dessous.

Chef de projet

Chef de projet est une personne qui rassemble tous les aspects du projet. Le chef de projet est responsable de l'organisation, de la planification, de la communication et de la mise en œuvre du projet dans le cadre du calendrier, du budget et de l'étendue adoptés. Bien que chaque projet soit différent, plusieurs caractéristiques des chefs de projet seront particulièrement importantes dans les entreprises complexes.

  • Adaptabilité – les projets complexes peuvent évoluer de nombreuses fois avant d'être considérés comme terminés, donc la capacité de travailler avec des hypothèses et des objectifs changeants est très souhaitable.
  • Capacité à travailler en parallèle avec des équipes ou des individus, tant au sein de l'entreprise que du côté du client ou du co-exécutant.
  • Un mode de communication clair, responsable et transparent.
  • Compétences en gestion de projet – sélection des méthodologies, connaissance des outils, savoir-faire.
  • Leadership et responsabilité. Un chef de projet est un rôle qui n'a pas d'autorité sur les autres membres de l'équipe de développement web. Une telle personne doit être capable de gérer, motiver et prendre la responsabilité des succès avec l'équipe, mais aussi être en mesure d'accepter les retours du client, de les analyser correctement et de mettre en œuvre les améliorations suggérées dans le travail quotidien.
Travailler dans une équipe de développement web, un chef de projet a besoin de nombreuses compétences différentes

Source : Educba

Architecte logiciel

C’est une personne responsable des décisions de haut niveau liées à la structure globale et au comportement du système. Ce rôle est généralement occupé par un développeur très expérimenté qui a la compétence de créer une vision d'une solution complémentaire adaptée aux contraintes du projet.

Développeurs

C’est une équipe d'ingénieurs logiciels avec des compétences adaptées aux besoins du projet. Les équipes de ce type peuvent représenter des caractéristiques variées. Pour les projets complexes, les plus importantes sont : l'expérience de travail sur des solutions extensives ou complexes, les compétences en communication (non seulement au sein des structures internes mais souvent aussi des externes), et la capacité à résoudre efficacement les problèmes.

Designer UI/UX

Ce sont des rôles qui combinent des compétences artistiques avec des compétences techniques et artisanales. Les personnes dans ces postes sont responsables d'une communication visuelle cohérente qui met en œuvre les objectifs du client tout en prenant soin des aspects invisibles au premier regard. Un designer expérimenté se rappelle des bonnes pratiques concernant l’utilisabilité, l'expérience utilisateur, le respect des normes d'accessibilité (par exemple, pour les malvoyants), la conception de solutions pour qu'elles fonctionnent sur différents appareils (par exemple, téléphone, tablette, ordinateur portable, un grand moniteur), et des limitations techniques imposées par le projet ou son groupe cible.

Équipe QA (testeurs)

L'équipe QA (testeurs) s'occupe de l'assurance qualité. Ce travail implique de réaliser divers tests pour détecter les défauts, de compiler une liste de ceux-ci et de la partager avec les développeurs afin qu'ils puissent effectuer les corrections nécessaires. Parfois, en corrigeant un bug, un programmeur en crée un autre dans une autre partie du code. Ensuite, nous parlons de régression. Détecter cela dans des projets complexes peut être délicat. Un QA expérimenté sélectionne les méthodologies de test appropriées adaptées aux spécificités du projet. Par exemple, ils créent un ensemble de tests automatisés (de petits programmes) qui sont exécutés lorsque certaines conditions sont remplies, par exemple, lorsqu'un développeur termine son travail sur sa tâche.

Autres membres de l'équipe de développement web

Dans des projets plus complexes, il peut être nécessaire de faire appel à des spécialistes supplémentaires, tels que :

  • Chercheurs UX. Ils réalisent des tests de focus et d'utilisabilité, le suivi oculaire (suivi des mouvements oculaires pour vérifier la perception d'un élément donné), puis fournissent des informations sur la perception du produit par les utilisateurs.
  • Analystes d'affaires. Ils se chargent de la collecte et de l'analyse avancée de données et travaillent généralement avec le propriétaire du produit. En analysant de grands ensembles de données, ils sont capables de présenter des conclusions qui peuvent avoir une importance capitale pour les décisions commerciales.
  • Spécialistes SEO. Ils aident à l'optimisation correcte du site pour les moteurs de recherche.
  • Spécialiste du marketing ou du content marketing. Ils participent aux tâches liées à la stratégie de marketing du site ou au contenu.
  • Spécialistes ML/IA. Ils s'occupent de l'apprentissage automatique et de l'intelligence artificielle. Ils analysent et traitent d'énormes ensembles de données (téra- /pétabits) et créent des textes, des images et même des vidéos basés sur le contenu consommé d'Internet.

À lire aussi : Pas uniquement des développeurs. Découvrez les rôles d'une équipe de développement de logiciels

Comment composer une bonne équipe de développement web ?

Une équipe correctement sélectionnée augmente significativement les chances de réussite d'un projet. Comment bien faire ? Nous devons connaître les besoins du client, choisir la méthodologie de gestion de projet optimale, définir l'implication du client dans le processus de développement web, sélectionner les rôles appropriés dans l'équipe, puis trouver et attribuer des personnes spécifiques à ces rôles.

Analyse des exigences du projet

Cette activité devrait avoir lieu au cours de l'une des premières étapes du travail. Une métaphore pour l'analyse des exigences peut être un pont reliant les affaires et l'informatique. Grâce à l'analyse, nous apprenons les exigences fonctionnelles (par exemple, si l'utilisateur télécharge des photos depuis un ordinateur ou directement depuis un téléphone mobile), ce qui entraînera certaines solutions informatiques (les solutions présentées dans une application mobile seront différentes de celles d'un site destiné aux ordinateurs). Plus nous comprenons ces exigences, mieux nous serons en mesure d'anticiper les rôles nécessaires dans l'équipe.

Détermination des compétences requises

Nous savons déjà ce dont le client a besoin, et nous avons défini les rôles qui seront nécessaires dans l'équipe de développement web, il est donc temps de nous demander si nous sommes capables de construire une telle équipe. Nous pouvons trouver des personnes dans notre entreprise qui répondent à toutes les exigences de compétence, mais cela ne signifie pas nécessairement qu'elles seront disponibles pendant la mise en œuvre du projet. Par conséquent, il peut être nécessaire d'embaucher ou de consulter des spécialistes tiers.

Désignation des parties prenantes

Dans le cas des projets web plus importants, il sera crucial de nommer un seul intervenant qui recevra et acceptera les étapes successives du travail. Il devrait être convenu formellement avec cette personne combien de temps elle a pour accepter ou rejeter de nouvelles parties d'un projet. Si nous n'assurons pas cela, il peut y avoir des retards qui affecteront négativement le rythme de travail (par exemple, le cours des sprints Scrum).

Établissement de la taille de l'équipe de développement logiciel

Les grands projets impliquent soit un temps plus long pour les terminer, soit l'emploi de grandes équipes. Il y a certaines limites que nous ne pouvons pas surmonter. Les équipes Scrum se composent généralement de 6 à 9 personnes, et ce sont le propriétaire du produit, le scrum master et les développeurs. Dans le cas de projets plus importants, nous pouvons assembler davantage d'équipes scrum qui peuvent travailler sur différentes fonctionnalités du site en parallèle.

En travaillant avec un client, nous joignons souvent nos forces avec leurs spécialistes. Par exemple, lors de la création d'une page de destination pour une campagne marketing, nous travaillons avec une personne du département marketing qui fournit des informations sur le secteur, effectue des tests et accepte le travail réalisé. Nous pouvons travailler en même temps avec une autre entreprise spécialisée dans un domaine étroit qui est nécessaire pour nous dans le projet. Plus il y a d'entités différentes impliquées dans le projet, plus il doit être bien coordonné, avec une communication, des attentes, des délais et des responsabilités bien synchronisés pour les différents composants.

Indication de tous les spécialistes impliqués du côté du client

Si nous coopérons avec des spécialistes du côté de client, nous devons établir des règles claires et transparentes pour cette coopération :

  • Comment communiquerons-nous? Par e-mail, Slack ou peut-être Teams ?
  • Où allons-nous créer les tickets, et comment allons-nous nous informer mutuellement à leur sujet ? Dans l'outil Jira ou Asana ?
  • Quand pouvons-nous attendre des réponses aux questions, et à quelle vitesse pouvons-nous nous-mêmes les fournir ?
  • Qui est responsable de prendre les décisions finales, surtout lorsqu'un compromis n'est pas possible pour une raison quelconque ?

Au début, il peut sembler que ces dispositions sont toutes du style plutôt que de la substance. Cependant, l'expérience montre qu'il s'agit d'une étape importante de la coopération, qui, si elle est mise en œuvre correctement, aidera à éviter de nombreux problèmes et retards.

Engagement d'une société d'externalisation

Si l'équipe manque de personnes ayant une connaissance dans un domaine étroit, nous pouvons rechercher ces spécialistes dans les agences d'externalisation. Elles disposent d'une base de données de spécialistes de divers domaines qui fournissent leurs services, généralement pour une période déterminée, rejoignant des projets en cours de route.

Comment choisir une agence d'externalisation ? Nous recherchons une agence qui offre le travail dont nous avons besoin, est capable de fournir ses services au moment qui nous convient, peut s'adapter à notre méthodologie de travail, et est dans notre budget. Si nous n'avons pas de relation antérieure avec l'une de ces agences, il vaut la peine de rechercher des avis à son sujet sur des sites comme G2 ou Trustpilot.

Planification du travail de l'équipe de développement web sur un grand projet de site web

Un projet qui dure six mois et implique une équipe scrum standard (7 personnes) est déjà complexe. Si nous ajoutons à cela la nécessité de coopérer avec 2-3 équipes ou des spécialistes externes (par exemple, du côté du client) et de nouvelles technologies, nous ferons face à un véritable défi. Nous minimisons la difficulté avec de l'expérience, des méthodologies de gestion de projet professionnelles, des outils et des processus qui réduisent les problèmes potentiels.

Lorsqu'on traite de grands projets, il faudrait prêter attention aux points suivants :

  • Travailler en groupe de développeurs vs travailler indépendamment. Dans le cas du travail d'équipe, nous utiliserons un outil de suivi des tâches (par exemple Jira) pour avoir un aperçu de qui fait quoi dans le projet. Plusieurs personnes travailleront sur le code en parallèle, donc l'utilisation d'un système de contrôle de version (par exemple, Git) sera différente. Lorsqu'on travaille avec une équipe QA, nous pouvons utiliser des environnements de test spécialement préparés qui seront séparés des environnements de production. L'organisation peut être bien plus facile dans le cas de travail indépendant, car il n'est pas nécessaire d'assurer la transparence ou de maintenir le bon rythme de travail parallèle.
  • Planification du travail. Nous devons prendre en compte le progrès des travaux parallèles. Parfois, lors de la répartition des tâches entre les personnes, il peut s'avérer que la tâche X ne peut pas encore être commencée, car la tâche Y, gérée par quelqu'un d'autre, doit d'abord être terminée. Ensuite, nous devons déplacer la tâche X dans les sprints et attendre que la tâche Y soit terminée.
  • Noter les dispositions. Tout devrait être décrit dans un outil de gestion de projet (comme Jira) et documenté (il y a diverses options ici). Dans le cas d'un projet de six mois pour trois personnes, personne ne se souviendra des dispositions convenues il y a six mois.
  • Communication. Nous ne ferons rien sans réunions quotidiennes et échanges d'informations sur qui fait quoi et sur quoi ils travaillent actuellement. C'est le bon moment pour vérifier si nous allons selon le plan ou si quelque chose doit encore être débloqué.

Si nous avons travaillé jusqu'à présent uniquement sur des projets plus petits, et que nous sommes maintenant confrontés à quelque chose de plus grand, il vaut la peine d’utiliser les services d'une société qui crée des sites web - par exemple une agence Drupal - afin de confronter notre vision avec leur expérience.

2. SEO for a Drupal website