Estimation détaillée du projet chez Jasoren

Nous expliquons ci-dessous comment nous créons l'estimation détaillée de nos projets.

Lorsque nous recevons une nouvelle demande pour un projet de développement de logiciel, nous préparons une estimation approximative pour donner au client un chiffre approximatif du coût du projet.

Cela est fait avant de signer un accord avec le client et de commencer le travail sur le projet.

Lorsque le contrat «times and materials» est signé, nous procédons à la préparation d’une estimation détaillée qui est une analyse plus approfondie du coût attendu du projet.

L’estimation détaillée inclut les mises à jour de la portée effectuées lors de l’approbation de l’estimation approximative.

 

La portée de l’estimation détaillée du projet

Notre estimation détaillée du coût de développement d’une application mobile comprend les éléments suivants:

  • Conception d’application
  • Développement IOS
  • Développement Android
  • Assurance qualité
  • Gestion de projet
  • Développement d’applications Web
  • Coût total du projet

Puisque les applications mobiles sont généralement développées simultanément pour les plateformes iOS et Android, nous prévoyons deux équipes de développement pour participer au projet.

Ainsi, nous invitons les développeurs des deux plateformes à participer à l’estimation détaillée du projet.

L’estimation détaillée est également examinée par les responsables d’équipe correspondants. Nous essayons d’engager les mêmes développeurs qui calculent l’estimation détaillée dans le développement réel du projet. Cela assure une plus grande précision des calculs d’estimation de projet et minimise le risque d’erreurs.

Veuillez prendre en considération que l’estimation détaillée ne comprend pas la planification du projet – le travail préliminaire s’effectue avant la première itération du projet. La planification du projet prend habituellement environ une semaine.

Pour plus d’informations sur la planification de projet, consultez cet article.

 

Comment nous estimons le développement de logiciel

La portée du projet est constituée de composants logiques ou de fonctionnalités à mettre en œuvre lors de son développement.

Dans le processus de préparation de l’estimation détaillée nous calculons le temps nécessaire pour concevoir et développer chacune des composantes du projet.

Les membres de l’équipe affectés à un projet particulier sont sélectionnés en fonction de la technologie et des outils à utiliser pour le projet.

Tous les participants de l’équipe de projet sont engagés à plein temps, ce qui garantit la plus grande productivité et l’efficacité des flux de développement de produits et la communication avec le client.

 

Comment nous estimons la gestion de projet

Chaque projet est livré sous la forme d’une séquence d’itérations de longueur égale.

Nous considérons que les itérations de 70 heures sont les plus efficaces. Sur chaque période de 70 heures, environ 20 heures sont allouées à la gestion de projet.

Cependant, ce chiffre peut varier en fonction de la taille et de la structure de l’équipe.

Les grandes équipes nécessitent plus de temps pour la gestion de projet. Dans le même temps, des projets incroyablement complexes peuvent également nécessiter une gestion de projet plus étendue, car ils impliquent plus de communication au sein de l’équipe.

En outre, nous ajoutons 35 heures de gestion de projet à la toute dernière itération d’un projet lorsque l’implication de chef de projet est particulièrement intense. Cependant, dans les projets d’augmentation d’équipe, la gestion de projet peut être quelque peu limitée.

Une communication efficace est l’un des facteurs de développement réussi.

Nous construisons nos flux de sorte qu’à chaque itération, un développeur dispose d’environ 15 heures de communication avec les autres membres de l’équipe ou le client.

La communication peut prendre la forme de présentations quotidiennes, de réunions d’équipe, de discussions sur la démonstration à la fin d’une itération ou d’appels.

 

Comment nous estimons la QA

Les processus d’assurance qualité devraient prendre environ 20% du temps total alloué au développement du projet.

 

Comment nous travaillons avec les demandes de modification

Veuillez prendre en considération que notre estimation détaillée ne comprend que les éléments du projet qui ont été approuvés positivement pour le développement.

Toutes les caractéristiques ou fonctions encore en discussion sont exclues du champ de l’estimation détaillée et peuvent être incluses plus tard et doivent être approuvées.

Toutes les caractéristiques ou composantes ajoutées au cours du développement du projet et qui ne sont pas incluses dans l’estimation détaillée sont susceptibles d’augmenter le temps et le coût totaux du développement, ce qui se traduira éventuellement par une date ultérieure de livraison du projet.

Pour cette raison, nous accordons une grande importance à la spécification de toutes les composantes du projet au stade de l’estimation.

 

Méthode d’estimation de projet

La portée du projet est souvent définie en analysant les captures d’écran des pages de l’application et en identifiant les éléments de l’interface utilisateur à implémenter.

Cependant, cette méthode échoue parfois à montrer la logique spécifique de l’interface utilisateur et fait que l’estimation omet certains composants critiques.

Par conséquent, dans le but d’atteindre la plus grande précision possible, nous utilisons l’approche basée sur les caractéristiques.

Au stade initial de l’estimation du projet, nous isolons ses principales composantes logiques que nous décomposons ensuite en entités distinctes. Au sein de chaque élément, nous définissons des tâches particulières qui servent de base pour la répartition du temps et des coûts aux fins de l’estimation.

Par exemple, pour une application, il est recommandé d’inclure la page «Termes et Conditions» que l’utilisateur doit lire et accepter avant de passer à l’application elle-même.

La fonctionnalité consiste en une fonctionnalité unique – l’utilisateur accède aux «Termes et Conditions». Pour implémenter la fonctionnalité, l’équipe doit effectuer les tâches suivantes:

  • Navigation depuis la page « Paramètres »
  • Création de l’écran « Termes et Conditions »
  • Création du contenu « Termes et Conditions »
  • Ajout de contenu à l’écran

La préparation d’une estimation de projet correcte prend également du temps. Si nous planifions un projet de 600 heures, nous avons besoin d’environ deux jours ouvrables (16 heures) pour établir une estimation détaillée basée sur les caractéristiques.

 

Estimations hautes et basses

Afin de couvrir tous les scénarios possibles et de prévoir d’éventuelles inexactitudes, nous préparons habituellement deux estimations par projet – haute et basse.

L’estimation haute décrit le scénario de développement de projet le plus optimiste, tandis que l’estimation basse prend en compte tous les problèmes et difficultés qui peuvent entraver le processus.

L’estimation négative tient également compte de la spécification incomplète du projet avec des caractéristiques ou des fonctions ajoutées après l’approbation du projet.

Par exemple, si le projet nécessite l’intégration d’une fonctionnalité tierce pour laquelle l’API n’a pas été fournie à temps, cela risque de provoquer des retards dans le flux de développement.

L’estimation négative couvre de telles situations.

Naturellement, nous nous efforçons de livrer le projet conformément à l’estimation haute.

En même temps, toutes les estimations de projet sont principalement axées sur l’effort de développement requis pour livrer l’application demandée, et la consommation de temps est de second temps.

Pour cette raison, nous calculons également l’estimation basse et conseillons au client de se préparer à ce scénario.

Voyons maintenant les types de tâches que nous incluons dans l’estimation détaillée du projet.

 

Liste de tâches

Ceci est la partie centrale de notre estimation détaillée car elle spécifie toutes les composantes de fonctionnalité du projet à développer.

La liste des tâches indique également les itérations requises pour compléter chaque entité avec le nombre d’heures qui lui est alloué.

Pour montrer comment la liste des tâches est construite, nous avons utilisé l’estimation détaillée de l’un de nos projets. Cette liste contient tous les types de tâches généralement effectuées dans la portée du projet.

1. Tâches préliminaires

Nous planifions les fonctions initiales au début de la chronologie du projet pour préparer l’environnement de développement.

Au cours de cette étape, l’équipe de projet étudie la documentation API disponible, si elle est utilisée, configure les cadres de développement et les outils, ajoute les bibliothèques nécessaires.

Pendant la phase préliminaire, les architectes du projet travaillent sur l’architecture.

Avant que le développement ne puisse commencer, les outils CI/CD et Crashlytics, la plateforme de reporting crush, sont configurés et intégrés.

2. Tâches de base

Indépendamment de l’objectif et de la portée du projet, il comprend toujours un ensemble de tâches de base qui sont exécutées à ses débuts – des méthodes de construction pour l’API, la base de données et le cache pour le projet.

3. Notifications push

La plupart des applications destinées aux clients utilisent des notifications push. Elles sont implémentées indépendamment du reste de la fonctionnalité, c’est pourquoi nous les sélectionnons dans un type de tâche distinct.

Pour les notifications push, notre application Android utilise Google Cloud Messaging (GCM). Cependant, d’autres services de messagerie peuvent également être intégrés.

4. Caractéristiques

Dans le cadre de la portée, nous distinguons les grandes fonctionnalités appelées Epics dans la terminologie Scrum. Le développement de chaque fonctionnalité est effectué dans plusieurs tâches.

L’estimation du projet montre le nombre d’heures requis pour l’achèvement de chaque tâche. Toutes les notes, commentaires ou questions liés à une tâche ou une fonctionnalité particulière peuvent être ajoutés dans le champ « Commentaires ».

Prenons l’exemple du composant de fonctionnalité « faire une photo ». Il se compose des fonctionnalités les plus petites suivantes:

  • Un utilisateur peut télécharger une photo à partir de la galerie de l’appareil photo ou faire une photo avec l’appareil photo de son gadget
  • Un utilisateur peut voir la photo téléchargée
  • Un utilisateur peut modifier la photo

Il peut y avoir plusieurs options pour implémenter la fonction «modifier la photo» – en utilisant l’appareil photo standard directement à partir de l’application ou en ajoutant un style unique à la photo.

Dans le premier cas, la mise en œuvre peut prendre environ huit heures, tandis que dans le dernier cas, le temps de développement peut être d’environ 16 heures ou même plus.

Si une fonctionnalité utilise des bibliothèques tierces, cela peut également influencer l’estimation du temps. L’intégration d’une bibliothèque prête à l’emploi ou le développement d’une bibliothèque à partir de rien prend un temps différent.

Par conséquent, ces caractéristiques doivent être estimées au cas par cas.

L’utilisation de composants tiers et les exigences similaires doivent être notées dans les commentaires de l’entité car elles affectent la portée totale du projet.

5. Tâches finales.

Les tâches finales sont destinées à compléter le développement et à livrer l’application.

La version finale doit être revue et finalisée avec des outils de protection et d’optimisation du code correctement configurés (nous utilisons ProGuard pour Android).

Dans le cadre des tâches finales, nous préparons également le contenu de l’application pour le téléchargement sur l’App Store et Google Play.

 

Les avantages de notre approche pour faire des estimations

À l’aide de l’estimation détaillée, nous avons démontré les principes généraux de la préparation des estimations basées sur les caractéristiques.

Les avantages d’un tel plan pour projeter des estimations sont suivants:

  • Précision supérieure. La décomposition du projet en fonctionnalités et en tâches plus petites rend le calcul du temps et des coûts requis plus précis. Une telle approche garantit également une réponse rapide à tous les problèmes découverts pendant le développement du projet.
  • Une meilleure transparence. En connectant les fonctionnalités aux user stories, nous créons une meilleure compréhension d’un objectif particulier. Si, par exemple, le composant « login » est exprimé par des fonctionnalités telles que « un utilisateur peut autoriser », « un utilisateur peut ajouter une image » et « un utilisateur peut réinitialiser le mot de passe », l’idée générale de la fonction est beaucoup plus claire. Cette approche permet d’éviter une utilisation excessive de la terminologie technique, ce qui simplifie l’analyse des estimations de projet pour le client.
  • Développement plus efficace. Lorsque le flux de développement est construit sur la base de tâches distinctes définies dans l’estimation détaillée, l’équipe de développement peut gagner du temps sur la planification complète de la conception et de l’architecture du projet. Les relations entre les composantes du projet peuvent également être vues à partir de l’estimation du projet.

Si vous avez besoin d’informations supplémentaires sur les principes d’estimation du projet adoptés chez Jasoren, veuillez nous contacter.