Les pièges à éviter lors d’un projet : sous-estimer l’importance des choix techniques


Dans notre série d’articles consacrés aux erreurs à éviter lorsqu’on se lance dans un projet d’application, le thème du jour est axé sur les choix techniques. Que l’on soit une entreprise bien établie ou un porteur de projet et que l’on fasse développer en interne, par un freelance ou une agence de développement comme Nartex: il ne faut jamais les sous-estimer !

Le développement d’une application mobile ou web est un processus complexe qui peut facilement se transformer en un véritable piège si des erreurs pourtant évitables sont commises par manque d’attention ou de compréhension. Rassurez-vous, avant de se lancer, il n’est pas si difficile de lister les pièges à éviter et les points à garder à l’esprit. Pour vous aider à établir cette liste, voyons déjà un thème majeur: les choix techniques.

Une négligence aux conséquences désastreuses

Beaucoup de clients laissent entièrement et aveuglément les décisions et orientations techniques de leur projet au prestataire de développement sans se soucier des effets à long terme. Cela peut partir d’une bonne intention et d’une parfaite confiance, mais l’expérience nous montre qu’une expression de besoin peut engendrer des perceptions bien différentes. Volontaire ou non, cette négligence peut conduire à des applications difficiles (voire impossible) à maintenir, à faire évoluer, ou à transférer à un autre développeur en cas de besoin. Sans parler des potentiels blocages qui pourraient arrêter purement et simplement votre activité.
Comment éviter ça ? Soyez curieux ! Posez des questions ! … Et ça peut paraître logique, mais écoutez les réponses et explications ! Inutile de rentrer dans des détails bien entendu, ce n’est ni votre rôle, ni bénéfique pour une avancée correcte du projet. Mais si vous ne développez pas l’application vous-même, il est essentiel de rester informé des principaux choix techniques faits par votre prestataire en réponse à vos besoins (exigences fonctionnelles et non-fonctionnelles). Ceci dans le but d’anticiper les conséquences et de mieux comprendre les coûts associés.
Un peu comme pour l’achat d’un véhicule: si vous n’êtes pas garagiste, vous vous assurez pourtant de points très précis avant d’acheter et pas uniquement de la couleur ! La fiabilité du modèle visé, la taille correspondante à vos besoins, le type de moteur, son carburant, ses performances… Surtout si vous souhaitez le garder un moment. Voici quelques aspects techniques clés à considérer dans le cadre de votre projet d’application:

La Technologie et les Langages de programmation

On peut obtenir une appli mobile de type native, hybride ou encore cross-plateform (découvrez les différences dans cette page détaillée). Ce premier choix conditionne tout le développement et scelle l’avenir de votre application (sa maintenabilité, les garanties de performance et d’évolutivité) il faut donc avoir conscience des avantages et inconvénients de chaque type par rapport à vos objectifs et besoins.
Demandez aussi à votre prestataire quels langages de programmation et frameworks seront utilisés pour développer votre application. Assurez-vous qu’ils sont largement utilisés et bien documentés car cela facilitera la maintenance et la mise à jour de l’application par d’autres développeurs.

Qualité du Code

En principe ça ne devrait pas être nécessaire en faisant appel à une agence spécialisée, mais soulignez l’importance de suivre les bonnes pratiques en matière de qualité de code. Cela inclut la plupart du temps l’utilisation de conventions de codage claires, la documentation du code ou encore l’écriture de tests unitaires pour s’assurer que chaque partie de l’application fonctionne correctement. Quoi qu’il en soit, un code propre et bien structuré est plus facile à maintenir et à transmettre à d’autres développeurs.

Choix et gestion des Dépendances

Lorsqu’on développe une application, il est extrêmement rare car inutile et coûteux, de réaliser 100% du code sur mesure “à la main”. Les développeurs utilisent donc différentes possibilités pour ne pas réinventer la roue et profiter de morceaux de codes, librairies, frameworks existants. Le tout selon ce qui est autorisé par les licences actives, par leur entreprise et par vos besoins/moyens. Ils peuvent aussi faire appel à des API ou des logiciels tiers dans le même principe et avec votre aval. On appelle tout cela les “Dépendances” d’un projet. Exemple: vous souhaitez un module de signature électronique agréé dans votre projet: il est courant d’utiliser YouSign ou DocuSign. Autre exemple: pour afficher une carte il est peu probable de se passer des services d’Openstreetmap, Google Map et semblables. Assurez-vous que les Dépendances utilisées dans le projet sont à jour, largement supportées et offrant les meilleures garanties pour la suite. Cela minimise les risques de conflits, d’obsolescence irréversible ou de vulnérabilités à l’avenir.

Méthodes de Développement

Liée à la foi à la gestion de projet, au développement et aux tests finaux, renseignez-vous sur la méthodologie de développement utilisée (par exemple, Agile, Scrum, ou Kanban). Une bonne méthodologie garantit une communication régulière, une transparence sur l’avancement du projet, et la flexibilité nécessaire pour ajuster les priorités en cours de développement. Nartex utilise une méthode “maison” basée sur Scrum-Agile.

Documentation et Transférabilité

Ce n’est pas toujours facile ni possible si vous ne faites pas la demande initialement à votre prestataire mais vous pouvez réclamer une documentation complète du projet, incluant non seulement le code, mais aussi les processus de développement, les outils utilisés, et les spécifications techniques. Cela facilitera la reprise du projet par un autre développeur si nécessaire. De plus, il est crucial de s’assurer que les droits d’accès et les fichiers de configuration sont bien organisés et faciles à transférer.

Choix de l’Hébergement et de l’Infrastructure

Pour les applications nécessitant une infrastructure “backend”, il est important de comprendre les choix en matière de serveurs, de bases de données et de services cloud. Opter pour des solutions sûres, évolutives et fiables peut garantir la performance et la disponibilité de votre application à long terme. Nartex par exemple propose des solutions détaillées en fonction de vos besoins, de vos budgets et des contraintes du projet. Le tout afin que vous gardiez toutes les clés en cas d’arrêt de la collaboration (c’est vous qui êtes titulaire des locations de serveur effectuées). L’hébergement des données est un point très important ne serait-ce que pour le respect des règles en vigueur (RGPD notamment).

Respect des conditions des éditeurs

En matière de développement logiciel, on ne peut pas toujours faire ce que l’on veut. Outre les règles dictées par les lois et règlements propres aux pays, il faut aussi se conformer aux conditions et guidelines des éditeurs tiers auxquels on peut faire appel. L’exemple le plus parlant concerne les stores d’applications officiels : App Store pour iOS et Google Play pour Android. Chacun impose de très nombreuses règles qui évoluent constamment. Ne pas s’y conformer durant le développement c’est la garantie de ne jamais être présent sur les stores d’application. Les développeurs de Nartex sont spécialisés par technologie et sensibilisés aux guidelines et à leurs évolutions pour conseiller les clients au plus tôt de ce qu’on peut faire ou non.

En conclusion, les choix techniques et technologiques faits avant et pendant le développement de votre application auront un impact direct sur sa performance, sa maintenance, sa capacité à évoluer, sa sécurité ou encore sa conformité. En restant impliqué dans ces décisions et en exigeant des explications claires de la part de votre prestataire, vous vous assurez que votre application est conçue pour durer et qu’elle correspond vraiment à vos besoins. Chez Nartex, nous prenons soin de faire des choix techniques judicieux et adaptés à la situation en communicant le plus possible avec vous afin de garantir un produit de qualité sur le long terme.