Temps de développement d’une application : comment choisir la solution la plus rapide et la plus adaptée ?

Image de Boris Bembinoff

Boris Bembinoff

5 minutes de lecture
Qu'il s'agisse d'une application web ou mobile, la question du temps de développement d'une application revient souvent. Et pour cause ! Le temps de développement d'une application est généralement directement corrélé à son prix.

Table des matières

Qu’il s’agisse d’une application web ou mobile, la question du temps de développement d’une application revient souvent. Et pour cause ! Le temps de développement d’une application est généralement directement corrélé à son prix.

Seulement voilà, la réponse est relativement complexe car le temps de développement d’une application dépend de multiples facteurs : complexité du besoin, technologies employées, méthodologie de développement… Nous allons tout de même tenter de vous éclairer au mieux pour que vous puissiez faire les bons choix dans le développement de votre application.

Quoi qu’il en soit nous allons comparer relativement les techniques les plus ou moins rapides, et nous pourrons difficilement donner des indications chiffrées tant cela peut varier d’un projet à l’autre.

Selon la complexité du besoin

C’est surement la partie la plus complexe à approcher pour quelqu’un qui se lance dans le développement d’une application : qu’est ce qui est complexe ou ne l’est pas ? Dans le monde merveilleux des développeurs, la complexité se cache rarement là où on l’attend. Il est donc quasi impossible pour un néophyte d’estimer la complexité d’un projet sans en discuter avec une équipe de développement.

Le seul conseil que nous pouvons donner ici est de discuter rapidement avec des experts pour déterminer à quel point les fonctionnalités auxquelles vous pensez sont complexes ou non à développer. Vous vous rendrez peut être compte que celles qui vous paraissent les plus folles sont en réalités simples, et que de toutes petites fonctionnalités avec peu d’importance très complexes. Vous pourrez ainsi arbitrer très tôt dans votre processus sur lesquelles vous allez finalement vous fixer.

En outre, à complexité égale, le prestataire que vous allez choisir aura un grand impact sur le temps de développement d’une application.

Selon le type de prestataire

Que vous décidiez de faire cavalier seul, ou d’embaucher une armée de développeur, le temps de développement d’une application sera fortement impacté, ainsi que son coût.

Sans prestataire

Vous avez décidé de faire cavalier seul 🤪, voyons ce que cela peut donner !

Vous êtes développeur

Félicitation, vous savez de quoi vous parler et n’avez besoin de personne. 🤠

Mais ce n’est pas le cas de tout le monde !

Vous n’êtes pas développeur

Dans ce cas, il va falloir se retrousser les manches ! 😼

Plusieurs solutions s’offrent à vous, globalement toutes sur des technologies no-code, c’est à dire ne nécessitant pas de code dans le développement d’une application. On peut citer :

Chez Junr, nous pensons que ces solutions peuvent être bonnes dans le développement d’une application, à condition d’être vigilent sur quelques points :

  1. C’est OK si vous êtes chef d’entreprise, manager ou employé, et que vous créez une application pour vous. Ce n’est PAS OK si une agence vous propose une prestation à travers ces outils : ce ne sont pas des outils professionnels, ce sont des outils pour les néophytes avec des besoins ponctuels. Est ce que vous vous sentiriez en confiance si un chef 3 étoiles vous expliquez que le réchaud Campingaz, c’est ce qui est le mieux pour faire de la grande cuisine ? 🙄
  2. La qualité principale d’un développeur n’est pas d’écrire des lignes de code, mais de résoudre des problèmes tout en comprenant comment la machine s’exprime et réagit. Vous avez beau utiliser des technologies no-code, vous devez avoir des bases sur ces sujets, tout comme l’architecture logicielle.
  3. Vous ne serez certainement pas propriétaire du code généré par cet outil (sauf exception). Si un jour vous voulez migrer vers un autre (et ce sera le cas, croyez nous 🫣), vous devrez recommencer à zéro.
  4. Vous allez rapidement rencontrer une limite technique : une fonctionnalité que vous ne pourrez pas créer, du bricolage pour arriver à vos fins, et cela n’est pas tenable dans la durée dans le développement d’une application scalable.
  5. Vous accumulerez de la dette technique aka. des investissements à perte le jour où vous devrez migrer vers d’autres solutions.
  6. Vous allez y passer du temps, beaucoup de temps par rapport à un développeur chevronné!

Si vous êtes OK avec tous ces points, prenez le challenge ! 🙏

Avec un freelance

L’avantage du freelance c’est le prix! Enfin, c’est l’idée que l’on se fait du prix…

Embaucher un freelance dans un métier que l’on ne maitrise pas c’est toujours compliqué. Le développement d’une application est souvent stratégique à un instant t, le risque de faire le mauvais choix est donc grand.

Ajouté à cela qu’un freelance est toujours spécialisé, il sera rapide sur son domaine d’expertise mais très lent sur tous les petits à côté. Cela va augmenter la durée du projet, et, in fine, provoquer des coûts supérieurs.

Avec une agence

A l’inverse du freelance, les agences paraissent cher! Mais elles vont vite, très vite, dans le développement d’une application. En effet, elles cumulent un grand effectif, des compétences transversales, et peuvent donc jongler avec des experts de chaque micro-domaine de votre application. Confier le développement d’une application à une agence est certainement le choix le plus rationnel, et finalement le moins coûteux à long terme.

Ceci étant dit, la durée de développement est grandement impactée par les technologies qui vont être utilisées, que ce soit par vous, votre freelance ou votre agence!

Selon les technologies employées

On va rentrer un peu dans la technique, et on va essayer de rendre ça accessible!

Globalement il existe plusieurs types de langages de programmation, et plusieurs façon de générer le code :

  • Types de langages
    • Haut niveau : ce sont des langages relativement proches de celui de l’Homme. Ils sont donc plus rapides à implémenter.
    • Bas niveau: ce sont des langages très proches du langage machine, ils sont donc beaucoup plus complexes à comprendre et à implémenter.
  • Génération de code
    • Codage manuel: chaque ligne de code est écrite à la main.
    • Génération visuelle (No-Code) : aucune ligne de code n’est écrite à la main.
    • Génération mixte (Low Code) : on écrit à la main que les lignes qui sont des cas d’usage spécifique, on génère visuellement les process récurrents (login, affichage produits, etc..)

A partir de là, vous l’aurez compris, le plus rapide dans le développement d’une application est d’utiliser des langages de haut niveau en génération visuelle. Cependant, comme vu précédemment, le No-Code ayant de très lourdes limitations, nous privilégierons la génération mixte (Low Code).

Nous avons d’ailleurs déjà écrit un article Low-Code vs. No-Code ici.

Nous avons maintenant un bon trio qui se dessine pour accentuer la vitesse de développement d’une application : une agence, utilisant des langages de Haut Niveau en Low Code. Mais là encore, il reste une marge d’optimisation du temps de développement : la méthodologie.

Selon la méthodologie de développement

Il existe deux grandes méthodes de gestion de projet technologiques : l’Agile et le Waterfall.

Le Waterfall vous permet d’avoir un vision claire sur le plan d’exécution pour le développement d’une application. Cela semble idéal alors qu’en réalité cela va générer de la rigidité dans votre projet. Il sera très compliqué de modifier le plan en cours de route, ce qui pourtant est la volonté de 99% des porteurs de projet 🤣. C’est normal. C’est d’ailleurs pour cela que l’Agile à été créé!

A l’inverse, l’Agile vous promet un budget et un délai. Vous pouvez changer le plan quand vous le souhaitez, en ajoutant et retirant des fonctionnalités par rapport à ce que vous aviez prévu initialement, ou rester dans le même plan si celui ci convient tout le long (ça n’arrive jamais 🫢). En tout cas cette agilité vous permet de maximiser l’efficacité vers votre cible d’application, et donc d’en réduire le temps de développement. En plus, vous avez des livraison intermédiaire à chaque sprint, ce qui vous permet de lancer une version béta de votre application dès les premiers jours de développement.

Nous avons écrit un article pour vous expliquer tous les tenants et aboutissants d’une bonne gestion de projet Agile dont voici un petit aperçu:

Vous pouvez lire l’article en entier (on vous le conseille évidemment 🤐) ici.

Conclusion

Voici un petit récap de notre discussion, gardez le précieusement, c’est votre passeport vers l’efficacité dans le développement d’une application !

Si vous voulez discuter de votre projet de développement d’outil digital, c’est par ici!