En tant que CTO d'une petite entreprise de développement de logiciels créant des solutions IoT personnalisées, j'aide mes coéquipiers à évaluer les coûts de développement d'applications lors de la préparation des estimations de projet pour nos prospects.
Comme nous travaillons principalement avec des startups, nos clients sont très sensibles à leur budget.
Idéalement, vous commencez chaque projet de développement logiciel par une phase de découverte et plongez dans les exigences fonctionnelles et non fonctionnelles d'un produit dès le début. En conséquence, vous pouvez définir l'ensemble des fonctionnalités du produit, des prototypes fonctionnels à un MVP en passant par un produit à part entière, et proposer une estimation réaliste et précise.
Idéalement, mais ce n'est pas le cas des startups qui fonctionnent avec peu de moyens, car la découverte coûte également de l'argent.*
Certains de nos clients peuvent également avoir des attentes irréalistes concernant le prix de développement d'une solution technologique. Nous avons tous entendu des blagues sur les startups cherchant à créer un clone de Facebook pour 10 000 $ - et le plus triste, c'est que certaines personnes pensent que c'est possible.
Par conséquent, je jouais avec l'idée de minimiser le travail d'évaluation de notre côté tout en donnant aux clients un prix approximatif pour donner vie à leur idée technologique avant même qu'ils ne contactent mon équipe. Une confrontation avec la réalité, si vous le souhaitez. 🙂
C'est ainsi que le concept du calculateur de coût logiciel s'est formé dans ma tête .
Geek dans l'âme et développeur mobile de profession, j'ai décidé de faire d'une pierre deux coups. Outre les objectifs mentionnés ci-dessus, j'ai également mis à l'épreuve mes connaissances sur Flutter. J'ai développé une application multiplateforme de calcul des coûts logiciels fonctionnant de manière transparente sur les appareils iOS et Android et dans les navigateurs sans recourir à JavaScript, ce qui, dans sa forme pure, me fait grincer des dents.
Flutter s'est avéré suffisamment stable et efficace pour cette tâche. J'envisage même de construire une calculatrice physique basée sur un ordinateur monocarte comme cadeau de Noël à nos fidèles clients. En outre, les autres développeurs peuvent utiliser la calculatrice pour évaluer le prix du développement d'une solution technologique particulière (ou d'un élément de celle-ci !) en dehors de leur expertise.
Quoi qu'il en soit, dans cet article, je détaille mon expérience dans la création de la solution - et les défis que j'ai rencontrés en cours de route.
Alors on y va.
Ok, ok, je sais ce que tu penses.
* Conception d'une solution logicielle, qu'il s'agisse d'une petite boutique en ligne ou d'une solution complète
système de back-office pour orchestrer des unités de cryothérapie , est une longue route venteuse avec des centaines de virages possibles et d'embûches à éviter.*
Et à moins que vous n'ayez préparé un document exhaustif de spécification des exigences logicielles (SRS) répertoriant l'ensemble des fonctionnalités du produit, les exigences UI/UX, la pile technologique optimale, le public cible, les dispositions de conformité et une douzaine d'autres problèmes, il est impossible de mettre un prix sur ton application.
C'étaient exactement mes préoccupations. J'ai donc décidé de vérifier comment d'autres ingénieurs en logiciel abordaient le problème de précision des estimations avant moi.
Après avoir testé plusieurs calculateurs de coûts logiciels, j'ai identifié plusieurs problèmes à retenir lors de la création de ma solution :
Les calculatrices des concurrents ignorent complètement les besoins d'un utilisateur non technique. Par exemple, comment diable suis-je censé savoir quels langages de programmation mon application utilisera si je débute en programmation ? Pour naviguer dans ce problème, je me suis assuré d'écrire un guide détaillé sur l'utilisation de ma calculatrice sur la page de destination qui l'accompagne.
Certaines solutions estiment le prix de la mise en place d'une équipe logicielle plutôt que de la création d'un produit logiciel. À moins d'avoir déjà travaillé avec des sociétés d'ingénierie logicielle ou d'en avoir dirigé une vous-même, vous ne connaissez probablement pas les entrailles du développement logiciel, y compris la composition optimale d'une équipe logicielle et les rôles au sein de celle-ci. C'est pourquoi je me suis concentré sur les fonctionnalités du logiciel plutôt que sur les responsabilités du développeur et j'ai implémenté le modificateur de taux mixte pour simplifier les calculs.
La plupart des calculatrices ne donnent qu'une estimation en échange d'une adresse e-mail professionnelle. Je suis un ingénieur logiciel, pas un spécialiste du marketing. 🙂 Je veux résoudre les problèmes des entreprises au lieu de les bombarder d'e-mails faisant la promotion de nos services ; s'ils ont besoin d'aide, ils nous écriront quand même ! C'est pourquoi ma calculatrice ne collecte aucune donnée et ne vous oblige pas à remplir de formulaire avant d'obtenir votre estimation. Nous savons seulement que quelqu'un a atterri sur la page de destination du calculateur de coût du logiciel, a coché toutes les cases et a reçu une estimation.
Ma calculatrice prend en compte la plate-forme cible d'une application et les fonctionnalités attendues pour produire des estimations précises des coûts du logiciel. Ensuite, divers modificateurs sont mis en œuvre pour réduire ou augmenter le prix des logiciels personnalisés en fonction de l'étape du projet et des implications spécifiques à l'industrie. Dans la dernière étape, les efforts de développement de logiciels, estimés en heures-personnes, sont multipliés par le taux mixte de l'équipe informatique.
Pour concevoir le dispositif d'évaluation, j'ai étudié plus de 20 projets réalisés par mon entreprise et une dizaine de projets issus des portefeuilles de nos partenaires. Ces projets variaient en taille et en complexité, allant des applications de réservation d'événements aux solutions de maison intelligente personnalisées. Certaines technologies et solutions, telles que l'intelligence artificielle et la réalité augmentée/réalité virtuelle, sont délibérément absentes de la calculatrice car je crée rarement de telles applications. Ainsi, la calculatrice reflète l'expertise de base de mon entreprise et je peux garantir l'exactitude de ses estimations.
Modificateurs. Les industries et les fonctionnalités logicielles ont des multiplicateurs de difficulté. Par exemple, j'ai augmenté le nombre d'heures de 20 % pour les projets informatiques de santé afin de résoudre d'éventuels problèmes de développement, tels que les intégrations avec les systèmes médicaux existants, la conformité, etc. Pour calculer les modificateurs de complexité, j'ai divisé la somme des fonctionnalités logicielles par l'heure totale. compter. Un modificateur constant ajoute les numéros de gestion de projet et d'assurance qualité à l'estimation. Lorsque les fonctionnalités d'une application et les plates-formes prévues ont été évaluées, le nombre est multiplié par 1,3, ce qui augmente le nombre d'heures de 30 %. Enfin, il y a le modificateur d'étape de projet, qui évalue le coût du développement logiciel en fonction de l'état de préparation du produit. Si un utilisateur souhaite uniquement concevoir l'interface de l'application, le devis final est multiplié par 0,16. Pour les prototypes fonctionnels, le modificateur est de 0,25. La version du produit minimum viable (MVP) d'une solution logicielle contenant juste assez de fonctionnalités pour être commercialisée a un modificateur de 0,5 à 0,75. Enfin, les efforts de développement en heures-personnes sont multipliés par 1 pour les produits prêts à être commercialisés.
Tarifs horaires des développeurs. Le prix de la création d'une solution logicielle personnalisée dépend de qui la fabrique. Les taux horaires des ingénieurs logiciels varient considérablement en fonction de la spécialisation, de l'expérience et du pays de résidence d'une personne. Selon
Vous trouverez ci-dessous une formule qui résume les facteurs mentionnés ci-dessus pour produire une estimation :
Si une fonctionnalité n'est pas liée au mobile et ne nécessite pas d'implémentation sur plusieurs plates-formes, elle sera marquée comme featurePrice.
avgFeatureComplexityMult augmente l'estimation en fonction de la pile technologique d'un projet et de l'industrie cible.
productStageMultiplier indique l'étape souhaitée du produit, c'est-à-dire les consentements de conception, un prototype, un MVP ou une solution prête pour le marché.
Les heures PM/QA sont obligatoires pour tous les projets sauf si le client s'occupe de la partie gestion et assurance qualité. Dans ce cas, cependant, aucun développeur ne peut garantir que des bogues ne se manifesteront pas dans le code. Une petite précision ici : certaines entreprises s'attendent à ce que leur fournisseur produise du code sans bogue dès le premier essai et se demandent vraiment pourquoi elles ont besoin d'une assurance qualité.
Les clients matures, au contraire, ont des attentes adéquates concernant la qualité du code de test et investissent tôt dans l'assurance qualité pour éviter de traiter les bogues après le lancement.
La question est de savoir quelle est la précision de ces estimations ?
Compte tenu de mon expérience en tant que CTO et développeur Android senior, le calculateur de coût logiciel fournit des estimations ponctuelles pour tous les projets simples et les projets de complexité moyenne.
Pour les projets plus ambitieux impliquant des technologies innovantes, telles que l'Internet des objets, le calculateur peut réduire l'estimation finale de 10 à 13 %. Dans de tels cas, nous révisons le prix après avoir décidé de la pile technologique et de l'ensemble de fonctionnalités de la solution. Des révisions sont également nécessaires si votre système informatique intègre des fonctionnalités et des technologies omises du calculateur, telles que l'intelligence artificielle et les intégrations avec des services tiers.
Un visiteur du site Web est tenu de renseigner les informations sur les caractéristiques suivantes d'une application :
Hourra, nous avons réussi !
Maintenant que l'utilisateur dispose d'une estimation approximative, il peut l'ajuster en supprimant ou en ajoutant manuellement des fonctionnalités logicielles, en spécifiant l'étape du produit, etc.
Lors de la rédaction de cet article, j'ai également rempli le formulaire, en sélectionnant les caractéristiques d'un produit IoT médical personnalisé conforme à la loi HIPAA prêt à être mis sur le marché. La calculatrice m'a donné une estimation de 3390,4 heures-personnes, ou 140 992 $ si multiplié par le taux de l'équipe mixte (41,6 $).
Augmentons l'estimation de 10 %, en tenant compte des éventuelles divergences enracinées dans le type de projet ( IdO ) et l'industrie cible (santé), et nous obtiendrons 150 000 $.
La suite logicielle de chambre cryogénique à laquelle j'ai fait référence au tout début de l'article aide notre client à gérer les unités cryogéniques connectées installées dans des dizaines de centres de fitness et de salons de spa à travers les États-Unis. Bien que le projet soit encore en développement et
Dans l'ensemble, je suis satisfait du résultat : j'ai testé Flutter avec succès, me rassuré sur ses solides capacités de développement multiplateforme, minimisé le travail d'évaluation de la part de mon équipe et permis à nos prospects d'obtenir des estimations réalistes de leurs projets logiciels avant contact avec une société de génie logiciel.
Mais comme je peux avoir toutes sortes de préjugés — après tout, c'est moi qui ai écrit le code ! — Je vous encourage à essayer la calculatrice et à partager vos réflexions sur sa fonctionnalité et sa précision !
Alors, appuyez sur la section des commentaires ci-dessous! Vos commentaires sont très appréciés !