budget

20 mai, 2021

Comment établir un budget pour le développement d’un logiciel sur mesure?

On vous avertit dès le départ, le coût pour le développement d’un logiciel sur mesure est un véritable casse-tête pour tout le monde. Les coûts peuvent varier du simple au triple selon l’ampleur de la demande! C’est pour cette raison qu’avant de vous lancer dans ce type de projet, vous devez vous poser les bonnes questions et faire une analyse de vos besoins :

— Quels sont vos besoins opérationnels?
— Quels sont les problèmes engendrés par votre logiciel actuel?
— Quelles sont les fonctionnalités indispensables?
— Quel est votre budget? Est-il flexible?
— Est-ce que vous avez du temps et de l’énergie à mettre dans un tel projet?

Il est très complexe pour les entreprises de développement informatique de vous fournir un devis des coûts exacts puisque dans ce type de projet, une petite fonctionnalité peut être particulièrement ardue à développer ou encore, une simple modification de dernière minute peut avoir de lourdes conséquences (temps et argent) sur le reste. C’est pour cette raison que les entreprises vous proposent deux options pour budgétiser le développement d’un logiciel.

1 — Planifier de A à Z

Dans bien des projets, c’est très possible. Cependant, dans le domaine du développement de logiciels, c’est invraisemblable. Pourquoi? TOUS les projets de développement subissent des changements majeurs ou des contraintes non prévues qui freinent les développeurs. Si vous choisissez cette option, soyez préparé à ce que votre solution soit figée, comme prévue dans le plan de départ, que certaines fonctionnalités ne soient pas tout à fait conformes à vos besoins ou bien, à voir votre budget changer constamment.

2— Méthode Agile

Brièvement, cette option consiste à simplifier le processus de flux de travail. Les étapes du projet ne sont pas figées donc beaucoup plus flexibles, et les développeurs ne passent pas tout leur temps à réécrire des projections de fonctionnalités et à diffuser l’information aux membres de l’équipe. Par contre, la méthode Agile demande beaucoup de transparence, de communication et de la confiance de la part de tous les intervenants du projet.

Un peu plus loin, nous expliquerons en détail ces deux options afin d’éclairer votre choix.

Il existe des principes et des étapes qui reviennent à tout coup. Dans cet article, nous allons démêler les différents facteurs à prendre en compte au moment de la production d’un logiciel sur mesure.

frais de développement

Brièvement, voici la liste des coûts :

– Le travail effectué par le client
• Analyse de vos besoins
• Tests à l’interne
• Formation

– Le travail effectué par les développeurs
• Prise de besoins et analyse
• Définition de l’architecture
• Développement de la solution
• Déploiement et tests
• Déploiement en production

– Équipements et licences de logiciels
– Impact sur les activités quotidiennes
– Coûts de maintenance récurrente
– Coûts de formation

Les étapes d’un projet de développement d’applications Web ou logiciels

logiciel

1. Phase de découverte et définition de vos besoins

Dans un premier temps, nous devons apprendre à vous connaître et à identifier vos besoins commerciaux. Cette première phase est tout aussi cruciale que les prochaines afin de concevoir un logiciel qui répond à vos attentes. Nous devons, ensemble, définir quels sont vos impératifs et vos particularités liés à votre domaine. En règle générale, vous avez une assez bonne idée des processus d’affaires propres à votre entreprise donc notre rôle consiste à vous accompagner dans la révision de ces derniers dans le but de relever certains aspects qui pourraient être oubliés et qui pourraient jouer un rôle impératif lors de la création du logiciel.

Ces discussions permettent de :

  • Définir les lignes directrices du projet (architecture à mettre en place, client/serveur, Model View Controler, Cloud, etc.)
  • Vérifier la faisabilité (délais, éléments techniques, fonctionnalités)
  • S’assurer que les coûts correspondent à votre budget

 

2. Les détails du projet combinés à la méthode Agile

Il y a deux façons de faire :

1 — Planifier de A à Z

Dans la mesure du possible, les développeurs peuvent documenter toutes les démarches et essayer de tout prévoir, étape par étape. Toutefois, cette méthode possède plusieurs lacunes. À quelques exceptions près, si ce n’est pas pour dire toujours, en cours de route, le projet subira plusieurs modifications : une composante qu’on ajoute à la solution, mais qui s’avère déficiente ou trop complexe, les processus envisagés ne tiennent plus la route et changent drastiquement l’orientation du projet ou plusieurs obstacles non envisagés se manifestent devant nous ou simplement des oublis.

2— Méthode Agile

Dans l’intention d’éviter ce type d’embûches, l’univers des TI et du développement logiciel a donc créé la méthode « Agile ». Chez ProWinDev, nous avons choisi d’aborder chaque projet de cette manière.

Qu’est-ce que c’est la méthode Agile?

Ce modèle consiste à simplifier le processus de flux de travail ainsi qu’à créer une équipe beaucoup plus souple et capable de s’adapter aux exigences (souvent très changeantes) des clients et aux imprévues qui peuvent survenir. En bref, les étapes du projet ne sont pas figées donc beaucoup plus flexibles. Durant tout le processus de développement (même à la toute fin), il n’est pas rare qu’après une discussion avec le client que certaines fonctionnalités soient abandonnées (obsolètes ou superflues) alors que d’autres, qu’il n’avait pas encore imaginées, s’avèrent incontournables.

Objectifs :

  • Améliorer la satisfaction des clients
  • S’adapter et accepter le changement
  • Coopérer facilement avec tous les membres du projet
  • Créer efficacement des logiciels/solutions/applications opérationnels
  • Simplifier le processus de développement
  • Déployer plus rapidement les produits et des mises à jour

 

En adoptant cette méthode, nous ne passons pas tout notre temps à réécrire des projections de fonctionnalité et à diffuser l’information aux membres de l’équipe, nous misons plutôt sur la collaboration de tous. Nous attaquons un projet dans sa globalité! À cette étape, nous produisons un prototype de la solution afin de le valider auprès du client.

La méthode Agile demande beaucoup de transparence et de communication de notre part ainsi que de la confiance de la part de nos clients étant donné que nous ne pouvons déterminer un coût fixe dès le départ pour le développement de la solution.

En termes de coûts à anticiper à cette étape-ci, il faut calculer le temps que les développeurs mettront à concevoir un plan, et aussi, le temps que les employés de l’entreprise alloueront afin de superviser les développeurs, de communiquer et de valider l’approche de ce dernier. En incluant vos employés, vous obtiendrez une version beaucoup plus proche de votre réalité et vous réduisez les coûts d’analyse des développeurs.

application web

3. Développement du logiciel

Ensuite, les développeurs se mettent au travail! Donc il faut prévoir des frais assez importants pour le temps mis sur la production et l’expertise des développeurs.

 

4. Déploiement et tests

Lorsque la solution est terminée, nous la déployons sur un environnement test pour ensuite faire plusieurs essais. Nous vérifions si tout fonctionne, si nous devons faire des ajustements sur la version en développement, et on s’assure que les fonctionnalités souhaitées sont toutes présentes. De plus, vous nous donnez vos impressions et les modifications que vous voulez faire.

Selon l’ampleur du projet et le degré d’impact sur les opérations de l’entreprise, cette phase peut engendrer plusieurs frais que le client ne prévoit pas nécessairement dans votre budget.

Il existe différentes options :

Si la solution est très volumineuse, nous utilisons un outil de test que l’on programmera pour reproduire l’ensemble des opérations (automatisation des tests). Nous nous chargeons d’acquérir un tel outil (ou de payer à l’utilisation) et par la suite, une facture sera envoyée au client. Ça peut faire peur, toutefois, cette option est très profitable si nous devons faire plusieurs déploiements.

Pour les projets de plus petite envergure :

–   Vous pouvez monter une équipe à l’interne qui effectuera les tests. Choisissez des employés qui comprennent bien les enjeux auxquels votre entreprise fait face. Le désavantage est que vous utilisez des ressources au sein même de votre entreprise donc ces employés devront délaisser certaines de leurs tâches pour faire les tests et faire la documentation. En revanche, vous sauvez des sous en faisant le travail à l’interne.

–   Une équipe spécialisée en service à la clientèle qui travaille pour le développeur peut effectuer les tests et la documentation. L’avantage est qu’on vous libère d’une charge de travail supplémentaire. Néanmoins, les modifications seront teintées de la vision des développeurs puisque les tests seront faits selon leur propre compréhension des besoins. Bien sûr, il y a un certain budget à prévoir pour ce service.

 

5. Déploiement en production

Quand tous les tests sont effectués et l’application approuvée, nous installons une version officielle. Le premier déploiement, qui se fait dans un environnement quasi vierge, ne devrait pas poser trop de défis. Toutefois, il se peut qu’après une semaine, votre équipe et la nôtre se rendent compte qu’une des fonctionnalités n’est pas au point. Il faut donc que nos développeurs retournent au travail, on parle alors de redéploiement.

Le redéploiement à ce stade n’est jamais simple puisque des employés utilisent déjà le logiciel et des informations sont déjà présentes dans la base de données. Il faut donc déployer la nouvelle version sans perturber le travail des employés : soit en le faisant en dehors des heures de travail ou en faisant une pause le temps du déploiement. D’ailleurs, à cette étape, on ne peut pas simplement créer une nouvelle base de données, il faut altérer la structure ou les données à l’aide de script de modifications. Si les développeurs modifient la base de données et que l’application n’est pas encore mise à jour, vos employés observeront des erreurs de saisie. Pour éviter la compromission de données, le logiciel et la base de données doivent être mis à jour en même temps, avant que les activités reprennent.

Bien entendu, cela entraîne des coûts supplémentaires :

  • Temps de travail des employés
  • Temps de travail des développeurs pour corriger, retester et redéployer

Le déploiement en production n’est jamais parfait du premier coup (sauf quelques petites exceptions). Souvent, une simple mini correction peut demander à refaire tous les déploiements (tests et production) et donc, engendrer d’autres coûts.

 

6. Documentation et formation

Au moment où la solution est finie, vous devez former tous vos employés pour qu’ils sachent comment bien utiliser ce nouvel outil.

Ici, vous avez deux options :

1— Vous choisissez de faire appel à nous pour vous former. Cette option prévoit des frais pour la rémunération, la formation ainsi que des frais de location de salle (au besoin), l’élaboration d’un plan de cours et finalement, de l’équipement didactique.

2— Nous formons un ou des employés (ils deviendront les super-users) et par la suite, ils peuvent former toute l’organisation à l’aide de la documentation fournie ou qu’ils auront élaborée. Il faut donc prévoir un budget puisque le développeur doit former ces derniers. Les coûts de formation sont ainsi réduits au minimum, et l’équipe en place dispose d’un savoir-faire adéquat.

budget

7.  Maintenance de la solution

Pour les frais de maintenance, il faut prévoir un montant forfaitaire si votre entreprise désire s’assurer de la pérennité du projet, d’un support constant et d’une connaissance suffisante de l’infrastructure pour intervenir s’il y a des réparations à faire ou en ajout de fonctionnalités.

Facteurs à prendre en compte pour établir votre budget lors d’un tel projet :

— Le coût des fonctionnalités

Parfois, on ne se doute pas qu’une simple fonctionnalité exige du temps et des techniques complexes ce qui fait varier les coûts considérablement.

— Les délais de livraison

La création d’applications ou de logiciels sur mesure peut prendre beaucoup plus de temps qu’on s’imagine donc vous pouvez demander une estimation des délais. Lors de la phase de déploiement, vous pouvez demander une stratégie de découpage. C’est-à-dire que lorsqu’une fonctionnalité est prête, les développeurs peuvent rendre accessible celle-ci afin d’en bénéficier plus tôt à la place d’attendre jusqu’à la toute fin.

— Le nombre de postes informatiques

Dans certains projets, cela peut affecter votre budget.

— Maintenance du logiciel

C’est une chose à laquelle vous devez absolument penser dans votre budget! Une fois que le projet est terminé, vous devez aussi vous assurer que la maintenance et les mises à jour sont faites afin de vous assurer de la viabilité de votre logiciel ou de votre application.

Petit conseil 

Prenez votre temps lorsque vous vous embarquez dans un tel projet. Choisissez bien votre compagnie de développement puisque même si une entreprise vous offre de bons prix, mais qu’elle n’assure pas une relation durable et pérenne, vous risquez, un jour ou l’autre, de vous retrouver sans support et d’être dans l’obligation de développer une nouvelle solution.

Budget

Partage

Share on facebook
Share on twitter
Share on linkedin

Quelles sont les étapes d’un projet de développement d’applications Web? 

  1.  Phase de découverte et définition de vos besoins

La toute première étape est d’apprendre à vous connaître et à identifier vos besoins. Afin de concevoir une application Web qui répond à vos attentes, nous devons, ensemble, définir quels sont vos impératifs et vos particularités liés à votre domaine.  

  1. Les détails du projet combinés à la méthode Agile 

Auparavant, nous faisions des analyses complètes où nous essayions de tout prévoir, étape par étape. Cette méthode s’avérait neuf fois sur dix désastreuse puisque chaque projet est unique et évolue constamment. L’univers des TI et du développement logiciel a donc créé la méthode « Agile ». Chez ProWinDev, nous avons choisi d’aborder chaque projet de cette manière.

Mais qu’est-ce que c’est exactement la méthode Agile? En gros, ce modèle consiste à simplifier le processus de flux de travail ainsi qu’à créer une équipe beaucoup plus souple et capable de s’adapter aux exigences (souvent changeantes) des clients. Bref, les phases du projet ne sont pas coulées dans le béton.  

Les objectifs de la méthode Agile : 

  • Améliorer la satisfaction des clients
  • S’adapter et accepter le changement
  • Coopérer facilement avec tous les membres du projet
  • Créer efficacement des logiciels/solutions/applications opérationnels
  • Simplifier le processus de développement
  • Déployer plus rapidement les produits et des mises à jour

Cette méthode représente simplement le « gros bon sens ». C’est-à-dire que nous ne passons pas tout notre temps à réécrire des projections de fonctionnalité, mais plutôt nous misons sur la collaboration. Nous attaquons un projet dans sa globalité! Durant tout le processus de développement (même à la toute fin), il n’est pas rare qu’après une discussion avec le client que certaines fonctionnalités soient abandonnées (obsolètes ou superflues) alors que d’autres, qu’il n’avait pas encore imaginées, s’avèrent incontournables. 

La méthode Agile demande beaucoup de transparence de notre part et de la confiance de la part de nos clients étant donné que nous ne pouvons déterminer un coût fixe dès le départ pour le développement de la solution. 

  1. Développement de l’application Web 

Ici, c’est le moment où notre programmeur s’éclate! Il construit de A à Z votre application Web : il développe un prototype, il vous le présente, il résume les fonctionnalités et il l’améliore ou l’ajuste au besoin.

  1. Déploiement et tests

On y est presque! Lorsque l’application Web est terminée, nous la déployons sur un environnement test pour ensuite faire plusieurs essais. Nous vérifions si tout fonctionne et si nous devons faire des ajustements. De plus, vous nous donnez vos impressions et les modifications que vous voulez faire.

  1. Déploiement en production

Une fois les tests faits et l’application approuvée, nous installons une version officielle.

  1. Documentation et formation 

Rien n’est joué si personne ne sait comment utiliser votre nouvel outil! Soit vous faites appel à nous pour vous former ou vous choisissez un employé pour former toute l’organisation à l’aide de la documentation fournie.