Le processus du développement des applications

Dans cet article nous montrerons comment nous organisons les processus de développement d'applications dans notre entreprise.

Il peut arriver que votre expérience de coopération avec une société de développement de logiciels ne soit pas entièrement satisfaisante.

Parfois, le produit développé est loin de votre vision initiale.

Ou les processus ne sont pas assez transparents, et vous vous sentez hors de contrôle.

Ce service peut difficilement être qualifié d’excellent et nous pensons qu’une telle coopération est inacceptable.

 

Nous savons ce que veut le client

Le client et la société de développement voient le processus de développement à partir de différents points de vue, et leur perception est parfois loin d’être la même.

Il est essentiel pour l’entreprise de développement de voir le développement à travers les yeux de son client et de comprendre toutes les exigences et préoccupations du point de vue du propriétaire du produit.

Nous essayons toujours d’identifier les caractéristiques du produit et les services les plus importants pour le client et de mettre l’accent sur les composants du produit que le client trouve essentiels.

Nous maintenons une communication étroite avec nos clients pour être sur la même longueur d’ondes avec eux en tout ce qui concerne le produit final.

 

Nous adoptons les principes Agile

La méthodologie Agile permet une livraison rapide de la valeur commerciale d’un produit, elle convient donc plutôt aux startups. Pour cette raison, nous utilisons des principes Agile dans notre développement.

 

Comment Agile peut-il aider les startups?

Avant de continuer, rappelons-nous pourquoi les startups sont lancées en tant que telles. Les startups sont créées pour résoudre un problème existant en trouvant une nouvelle solution pour cela. En outre, chaque startup s’efforce de faire un produit qui lui apporterait des bénéfices.

Par conséquent, les startups commencent par expérimenter avec une idée de leur produit. Avant de comprendre si leur vision aura du succèsou au moins sera commercialisable, ils doivent lui donner une forme «tangible».

C’est pourquoi les startups se tournent vers les sociétés de développement de logiciels – pour donner vie à leur idée. Pendant ce temps, leurs exigences changeront des dizaines de fois, car très souvent les propriétaires de startup n’ont qu’une idée de base du produit final.

En convenant de travailler ensemble sur un projet, la start-up et l’entreprise de développement prennent un long et sinueux chemin d’essais et d’erreurs, où plusieurs options vont être écartées à la recherche de la perfection.

Agile est une excellente méthodologie pour de tels scénarios de développement car elle assure une flexibilité de développement et permet de faire rapidement des modifications.

Le développement agile est également plus compréhensible et transparent pour les clients. Ils peuvent suivre le développement du produit étape par étape en évaluant les composants terminés au fur et à mesure et en suggérant des modifications si nécessaire.

 

Comment assurons-nous la transparence du développement?

Dans la collaboration à distance, la question de la transparence est l’une des plus critiques.

Nous sommes toujours ouverts avec nos clients dans divers aspects de notre collaboration.

Pour les nouveaux clients, nous sommes proactifs dans le partage d’informations sur nous-mêmes – ce que fait notre entreprise, comment elle le fait et quelle est notre philosophie.

Pendant le développement, nous communiquons avec les clients via des appels, des chats et des rapports réguliers. Nous accueillons les demandes d’information de nos clients et fournissons tous les contacts directs possibles avec l’équipe.

Nous partageons l’accès à nos outils et services de développement et invitons les clients à participer aux examens de produits, à la hiérarchisation des tâches et aux discussions d’idées.

Tous les employés de Jasoren parlent anglais ou français, donc il ne devrait pas poser un problème de parler à n’importe quel membre de l’équipe.

Après chaque réunion, nos clients reçoivent un mémo contenant un résumé des sujets discutés lors de la réunion. De cette façon, nous réduisons les risques d’incompréhension et nous assurons qu’aucun point crucial n’est oublié.

Outre la communication quotidienne avec notre équipe, nos clients reçoivent également des rapports hebdomadaires. Ces rapports indiquent ce qui a été accompli pendant la semaine, combien d’heures chaque tâche a pris, s’il y avait des écarts par rapport à la portée ou au calendrier.

À la fin de chaque sprint, nous organisons une démonstration et fournissons la compilation du code pour l’examen et les commentaires.

 

Comment est organisé notre développement?

Chaque projet est divisé en intervalles fixes appelés sprints. Chaque sprint suit le cycle déterminé et aboutit à la livraison d’un composant fonctionnel spécifique.

En général, nos sprints durent deux semaines et evoluent de la définition des exigences à la conception, au développement, aux tests et, enfin, au déploiement des composants.

A la fin de chaque sprint, nous avons quelque chose à montrer au client. Ils peuvent examiner le résultat de notre travail, suggérer des modifications et suivre le processus de développement à toute étape.

Nous commençons notre coopération avec la planification du projet et continuons avec autant de sprints nécessaires pour compléter l’ensemble de la portée du projet. Nous assistons le déploiement du produit et, sur demande, pouvons également fournir des services de maintenance et de support.

 

Phase de planification du projet

Après avoir discuté de l’estimation du projet et signé le contrat avec le client, nous commençons la planification du projet.

A l’étape de la planification du projet, nous finalisons le budget total du projet, l’étendue des fonctionnalités à fournir et le calendrier de développement ainsi que les délais finaux et intermédiaires.

La planification du projet comprend également une discussion sur la première version du produit ou le produit minimum viable (MVP).

Le développement d’un MVP réduit souvent les coûts du projet et permet de valider l’idée du projet avec un investissement minimum.

La planification du projet est en géneral terminée en une ou deux semaines, et à la fin de cette période, nous présentons au client les éléments suivants:

  1. Structure de l’équipe
  2. Concept de produit ou MVP.
  3. Wireframes.
  4. Conception d’application
  5. Documentation du projet composée d’user stories, d’estimation détaillée des coûts, de plan de projet, de plan de test, de spécifications techniques.

Les résultats de la planification de projet nous aident à rendre le développement plus clair et plus facile à comprendre pour notre client. Il traçe les grandes lignes du produit à livrer et montre quels composants seront implémentés dans chaque sprint.

Après la phase de planification du projet, nous commençons à développer le projet en fonction du calendrier défini des sprints.

 

Etapes de chaque sprint

  1. Définition des exigences

Nous définissons les exigences pour le produit avec le client. Ceci est généralement fait au stade de la planification du sprint.

Les exigences sont présentées via le backlog priorisé du produit et l’estimation détaillée du projet.

Chaque composant fonctionnel est décomposé en tâches distinctes avec un temps spécifique également affecté aux tests et à la correction des bugs.

Une telle approche permet de déterminer le résultat attendu du sprint et de planifier les intégrations entre les composants du build à livrer.

  1. Développement

Notre équipe de développement est un groupe de professionnels qualifiés qui travaillent ensemble. Chaque équipe de projet comprend deux ou plus de développeurs, un designer, un ingénieur en assurance qualité et un chef de projet. En outre, l’équipe de développement inclut généralement des développeurs backend.

En mettant en place une équipe de développement de projet, nous invitons les collègues ayant les compétences nécessaires pour garantir un produit final de haute qualité.

Une équipe de projet est typiquement composée de cinq à sept membres que nous trouvons les plus optimaux en termes de coordination, de communication et de productivité.

  1. Test et correction d’erreurs

Chaque caractéristique ou composant fini est soumis à l’ingénieur d’assurance qualité pour le tester.

Ils testent le logiciel en fonction des cas d’essais préparés pendant la phase de planification du projet et inclus dans la documentation du projet.

Chaque sprint comprend également des tests de régression destinés à détecter les bugs dans le code précédemment déployé qui pourraient apparaître après la mise en œuvre de la nouvelle fonctionnalité.

Les enregistrements de test sont fournis aux développeurs qui corrigent les bugs détectés. Après que les bugs ont été corrigés, l’ingénieur assurance qualité teste à nouveau le logiciel pour vérifier qu’aucune erreur ne subsiste.

En même temps, des «smoke tests» sont exécutés pour confirmer que les autres composants n’ont pas été affectés par la correction des bugs. Nous nous assurons toujours que nos versions finales sont exemptes de bugs critiques ou majeurs.

  1. Livraison d’une build

A la fin de chaque sprint, nous livrons une build au client. Nous préparons également une démo pour montrer au client ce que nous avons accompli et pour obtenir immédiatement leur retour.

Chaque livraison d’une build indique également l’estimation initiale du projet, les coûts et la consommation de temps jusqu’à présent et le temps restant jusqu’à la fin du projet.

Toute modification apportée aux exigences du produit pendant le développement est incluse dans le sprint après leur approbation.

 

Comment le développement est-il coordonné?

Le développement d’un projet complexe par une équipe à distance nécessite un effort de gestion considérable ce qui comprend la coordination des membres de l’équipe, le suivi du temps, le contrôle du budget du projet et la garantie qu’aucun détail important n’est omis.

C’est la responsabilité d’un chef de projet de s’assurer que le client sait toujours ce qui se passe avec son projet.

Le chef de projet se joint à l’équipe au début du développement. Il / elle participe à l’étude de marché, contribue à définir le concept de produit et à définir la portée de MVP, et si nécessaire, et livre le plan de projet.

Le chef de projet distribue les tâches entre les membres de l’équipe et s’assure que chaque tâche est claire et compréhensible.

De cette façon, est réalisé un processus de développement productif, et est établie une coordination efficace au sein de l’équipe.

Le chef de projet surveille également chaque sprint pour vérifier que toute la portée prévue a été correctement mise en œuvre et que le développement progresse conformément à son planning.

 

Avantages de la méthodologie Agile

La flexibilité
Le développement itératif permet de faire des changements sans interrompre le développement et d’avoir à refaire de grande quantité du code complété.

Transparence
Le client est régulièrement informé des progrès et peut évaluer les résultats intermédiaires.

Communication plus efficace
La communication au sein de l’équipe et entre l’équipe et le client garantit un développement efficace et une livraison de haute qualité.

Productivité accrue
Agile permet de se concentrer sur la conception et le développement plutôt que sur la documentation. De cette façon, tous les bugs ou problèmes sont identifiés rapidement, ce qui les rend plus faciles à corriger.

Risques réduits
Avec la méthodologie Agile, le risque de dépasser le budget ou la durée du projet est plus faible.

Le chef de projet maintient une communication régulière avec le client pour discuter les sprints suivants avant leur lancement afin que les modifications et les écarts par rapport au plan soient réduits au minimum.

Nous avons élaboré ce flux de développement d’applications dans le but principal de fournir un produit solide et fiable au client et de le rendre pratique et contrôlable.