outsourcing team

Externalisation Drupal - Comment trouver la meilleure équipe

html

Drupal est fantastique pour toutes sortes de sites web et d'applications. Drupal excelle surtout dans les grands projets de contenu complexes. Si vous savez ce que vous faites, vous pouvez souvent réduire considérablement le temps de développement par rapport à d'autres outils conçus pour le même objectif. 

La polyvalence de Drupal, cependant, est une épée à double tranchant. Avec une grande flexibilité, une API étendue et une abondance de modules créés par la communauté, il faut beaucoup de temps pour se mettre à niveau. Souvent, il n’y a pas assez de temps sur un projet pour parcourir la courbe d'apprentissage abrupte de Drupal. 

Plus votre équipe a d'expérience, plus vous récolterez les avantages de Drupal et moins vous accumulerez de dette technique, et plus votre projet sera couronné de succès à la fin.

À la recherche d'une équipe Drupal

Il y a quelques éléments critiques à considérer lorsque vous cherchez à sous-traiter le développement Drupal :

Expérience de l'équipe et de ses membres

Il faut du temps pour maîtriser Drupal. Si vous construisez une grande application, il est bon d'avoir au moins un développeur/architecte logiciel vraiment expérimenté (trois ans ou plus de travail avec Drupal), qui a livré dans ce temps quelques projets d'envergure. Cette personne travaillera comme votre architecte et gardien. La planification de l'architecture, le choix des modules contrib et les revues de code ainsi qu’aider les autres feraient partie de sa routine quotidienne.

Le reste de l'équipe devrait également avoir au moins une certaine expérience de l'utilisation de Drupal, sauf si vous avez le temps de les former. Drupal est un peu plus facile à prendre en main pour un développeur qui a auparavant travaillé avec un framework MVC comme Symfony ou Laravel, mais il est encore assez loin de permettre aux débutants de Drupal de simplement rejoindre et coder.  Six mois pour les plus petites applications à 1-2 ans pour les plus grandes constituerait une exposition appropriée.

L'équipe a-t-elle travaillé ensemble ?

Celle-ci n'est pas si critique, mais avoir une équipe qui utilise des outils et des standards similaires va loin pour garantir que votre application soit construite sans accroc. Les équipes assemblées "pour un projet" ont tendance à être beaucoup moins performantes que celles qui ont eu le temps de peaufiner leurs pratiques de coopération. 

Vous pouvez contourner de nombreux problèmes découlant d'une équipe distribuée par une automatisation bien établie du processus de développement logiciel. C'est difficile, mais beaucoup plus facile à introduire si tous les développeurs y sont déjà habitués.

Communication

Comment communiquerez-vous avec l'équipe ? Assurez-vous qu'il y aura une communication claire et facile entre vous et tous les membres de l'équipe directement. Il n'y a rien de pire sur un projet que des canaux de communication longs qui déforment les informations et allongent le temps de communication. 

Confiance

Pouvez-vous construire une relation de confiance ? Sur un projet long, il est essentiel de construire une relation de confiance entre vous et l'équipe.  Si vous sentez qu’il y a des problèmes ou des situations ambiguës, il est préférable de les clarifier avant que le projet commence.

Disponibilité et dimensionnement

L'équipe peut-elle évoluer si nécessaire ? Souvent, les projets commencent petits mais grandissent ensuite et nécessitent plus de ressources. L'équipe sera-t-elle capable d'augmenter sa taille ou devrez-vous chercher des personnes supplémentaires ?

L'autre côté de la médaille est le turnover. Un taux moyen de turnover dans une entreprise de logiciels est d’environ 10-20%. Si votre équipe se compose de 5 personnes pour un projet qui dure un an, il est presque certain que quelqu'un partira. L'équipe peut-elle fournir un remplaçant qui peut commencer rapidement ? 

Accès à la connaissance spécialisée

Si vous embauchez une équipe de développeurs Drupal, il vaut également la peine de vérifier s'ils vous fourniront un accès facile à d'autres services ou expertises qui pourraient s'avérer utiles pour le projet de temps en temps. Sur un projet typique Drupal, vous pouvez avoir des tâches qui pourraient nécessiter :
 - un spécialiste DevOps (par exemple, mettre en place des environnements, des serveurs ou une infrastructure CI)
 - des spécialistes UX/design
 - Assurance qualité (testeurs) qui peuvent effectuer des tests manuels ou rédiger des tests automatisés de votre application

Mise en place et livraison du projet

Une fois que vous avez choisi votre équipe, il est temps de mettre en place le projet.
J'ai écrit un article de blog approfondi sur l'organisation du travail sur un projet logiciel afin que la livraison puisse se dérouler sans accroc, même s'il y a plusieurs équipes indépendantes impliquées.  Nous sommes de grands défenseurs de l'automatisation. Cela réduit la charge de travail associée à la mise en conformité de tout le monde sur l'état actuel du code.

Nous recommandons également d'utiliser des méthodologies Agile, qui sont une approche fantastique pour gérer un projet logiciel. Vous pouvez en savoir plus sur la façon dont nous gérons les projets logiciels dans notre article de blog à propos de équipes SCRUM à distance.

Résumé

Externaliser le logiciel peut apporter de nombreux avantages, y compris une réduction des coûts, un accès à une expérience spécifique ou combler simplement un manque de spécialistes sur votre marché.

Choisir la bonne équipe pour le travail n’est pas un processus facile. Il est logique de chercher la bonne, plutôt que d'engager la moins chère ou la première que vous trouvez. Avec la bonne équipe, vous serez capable de réduire de nombreux risques liés à l'embauche d’un prestataire externe, comme une incompatibilité culturelle, des problèmes de communication, un manque de motivation et de livrer votre projet beaucoup plus rapidement et à un coût réduit.
 

3. Best practices for software development teams