enova content starts here

Process de développements web E-nova

Contrairement aux sociétés d'outsourcing web classiques qui se focalisent sur des projets faits à la va-vite et à moindre coût, l'Agence E-commerce E-nova technologies met avant tout l'accent sur la qualité de ses projets. Dans cette optique, pour assurer une qualité irréprochable à tous nos projets, nous avons mis en place un ensemble de procédés couvrant l'ensemble du processus de développement. Ces procédés et bonnes pratiques ont pour objectif de structurer et de clarifier le grand nombre de zones sombres pouvant être présents dans un projet. Ainsi, l'ensemble des facteurs est maîtrisé, il n'y a plus de place pour le hasard et c'est pour nos clients une garantie de qualité à toute épreuve puisque le client supervise toutes les étapes.

Ce document a pour objectif d'expliquer notre mode de fonctionnement et de détailler les étapes standards d'un développement de projet, étape par étape, de ses spécifications jusqu'à sa mise en production. Tout au long de ce document, nous vous expliquerons de quelle manière nous garantissons un suivi live des projets que nous développons, et comment nous assurons une qualité technique sans faille grâce à des méthodes robustes de testing et de développements.

Etape 0 : récolter les éléments préliminaires au projet

La première étape d'un projet est la récolte des précieuses informations qui permettront une fois le développement démarré d'avancer en suivant des guides précis et surtout en évitant toute surprise.

Entre autres, il est nécessaire de clarifier les points détaillés ci-dessous.

  • Definition des stakeholders

    Qui sont les personnes impliquées dans le projet côté client. Quels sont les personnes dont on a besoin la validation pour faire avancer le projet, et quelles sont les personnes impactées par le projet qu'il serait bon d'associer au projet dans une plus ou moins grande mesure.

  • Définition du scope du projet.

    Définition avec le client de ce qui fait partie du projet et ce qui n'en fait pas partie.

  • Définir les objectifs à atteindre

    Définir aussi clairement que possible les objectifs à atteindre, et définir des indicateurs quantifiables si possibles associés à ces objectifs. Ces objectifs pourront être associés à un degré de tolérance. A l'issue du projet, il sera possible de déduire le degré de réussite du projet en comparant les résultats obtenus par rapport aux objectifs fixés.

  • Identification des risques, et définition du seuil de tolérance

    Si cela est pertinent, étudier les risques associés au projet, et le degré de tolérance de ces risques.

  • Etude de faisabilité

    En prenant en compte les objectifs à atteindre et les contraintes à prendre en compte, vérifier que le projet est faisable. Dans le cas présent, une première version d'une étude de faisabilité technique a déjà été effectuée via l'étude sur le processus de Migration.

  • Planification de la communication avec le client

    A qui on communique, quoi, et à quelle fréquence ?

Etape 1 : la définition des spécifications

Une fois les tâches préliminaires achevées, la première étape inhérente à un projet est la définition des spécifications. Après le passage de votre commande à E-nova technologies, nous commencerons si besoin est par définir les spécifications techniques et fonctionnelles de celui-ci. Nous entendons par spécifications techniques et fonctionnelles la description des éléments suivants:

1. Spécifications fonctionnelles

 

  • Cas d'utilisation (Use Cases) :

    Il s'agit de comprendre comment l'utilisateur va interagir avec le système, et de répertorier les différents cas d'utilisation afin de synthètiser les différents scénarios sur ce que doit faire le système.

  • Définition des interfaces :

    Cela consiste à diviser la logique fonctionnelle en autant de rôles qui utiliseront le site web. Nous effectuons ici une liste des différents rôles et interfaces disponibles, ainsi qu'un résumé des droits pour chaque rôle.

  • Workflow :

    le workflow du projet consiste à décrire de quelle manière les différentes pages, fonctionnalités et rubriques de votre projet vont être liées les unes aux autres. Plus qu'une sitemap, le workflow d'un site représente sa logique fonctionnelle, l'enchaînement des écrans et les fonctionnalités qu'ils offrent.

  • Autres aspects fonctionnels :

    La partie pratique de l'application. Présenté sous forme de schémas UML, cette analyse fonctionnelle regroupe les différentes interactions, non listées dans le workflow ou les interfaces, entre les utilisateurs et le site web.

    • 2. Spécifications techniques

      • Technologies utilisées :

        Les choix technologiques sont listés dans cette partie. Les technologies majeures du projet sont décrites aussi bien que les éventuels plugins et add-ons nécessaires au développement des fonctionnalités du projet.

      • Architecture :

        Nous détaillons ici l'architecture qui sera ensuite mise en place lors de la phase de développement. Dans le cas d'une application basée sur un pattern MVC par exemple, il peut être utile de définir quelles seront les interactions entre les différentes classes composant le projet, ou encore quel sera le rôle de chaque serveur hébérgeant une partie différente de l'application, etc...

      • Détails techniques :

        Chaque application est différente et requiert de résoudre des problématiques différentes. Nous découpons ces problématiques aux travers de cas techniques que nous explorons et que nous résolvons au préalable sur papier avant tout codage.

      • MCD :

        Dans notre agence web offshore nous réalisons le modèle conceptuel de données correspondant au schéma de votre base de données tel qu'il devra être implémenté pendant les développements. Celui-ci respectera les standards et différentes normalisations en vigueur, ou dépendantes du framework utilisé.

         

        Toutes ces spécifications une fois rédigées nous aideront à encadrer le projet avec des jalons solides. Notez cependant que les spécifications peuvent comme c'est souvent le cas être soumises à des évolutions durant les étapes de développement en fonction des nouveaux besoins et nouvelles contraintes qui peuvent surgir une fois le développement lancé.

        Les spécifications, une fois arrêtées et validées par le client, doivent rester relativement stables et servir de cap pour le projet. Cependant le client aura la possibilité de proposer des modifications dans le cours du projet. Chaque demande de modification devra être étudiée pour en mesurer l'impact en terme technique, de temps et éventuellement de coût supplémentaire. Il appartiendra alors au client de choisir quelles modifications sont les plus justifiées.

        A l'issue de la rédaction des spécifications, nous avons déjà une bonne vision des tâches nécessaires pour l'achèvement du projet. Nous créons alors un Work Breakdown Strucure (WBS) présentant le découpage du projet en phases et tâches, avec une planification des dépendances entre tâches et les tâches qui pourront être effectuées en parallèle. Nous obtenons alors le calendrier des tâches et des ressources associées.

        Planification de l'Assurance Qualité Une fois le projet planifié, nous intégrons en préliminaire des développements des objectifs de qualité à atteindre et les procédures qualité associées. Il est à noter cependant que le niveau de qualité recherché a un impact direct sur le coût du projet. Il est important de trouver avec le client le juste équilibre entre Temps, Coût et Qualité

        Etape 2 : réalisation du design et patterns css

        1. Réalisation du design

        Une fois les spécifications gelées, il est alors possible de commencer avec la définition du design graphique de l'application. Le design graphique définit l'apparence des écrans qui composeront le logiciel, c'est son identité visuelle.

        La définition de ces écrans permet à la fois de définir le style du site web, son code couleur, son ergonomie, mais c'est aussi un moyen d'organiser le workflow. En effet, durant cette phase il est décidé également de la disposition et l'apparence des éléments relatifs à la navigation tels que le menu, les boutons de navigation, les messages de feedback à l'utilisateur, l'aide contextuelle, etc.. Plus que l'apparence du site web, il faut comprendre que c'est également une bonne partie de son ergonomie qui est décidé à ce stade.

        Le processus de design se déroule généralement par plusieurs itérations. Aprés la soumission de premiers jets, nous faisons évoluer le design par itérations (3 suffisent généralement) en fonction des remarques et préférences du client jusqu'à aboutir au résultat souhaité.

        2. Découpage en fichiers xhtml et css

        La deuxième étape de la réalisation du design consiste à découper les fichiers images obtenus pour les convertir en fichiers normés xhtml1.1 et css2 et à tester leur compatibilité avec les différents navigateurs du marché.

        3. Notre force

        Forte d'une expérience de plusieurs années dans les technologies du web et e-commerce, notre équipe a su tirer parti de ses évolutions en terme d'outils et de bons procédés pour vous offrir non seulement des designs de qualité inscrits dans les dernières tendances du web, mais aussi des layouts ergonomiques et accessibles.

        Ainsi, pour exemple, nous préférons utiliser javascript à la place de Flash partout où cela est possible. L'utilisation de flash requiert du côté client l'installation d'un plugin quelquefois lourd à installer, un temps de chargement non négligeable, et surtout occasionne des pertes d'information lors du référencement.

        Avec l'apparition des nouveaux frameworks javascript comme mootools, jquery, scriptaculous, etc. Il est désormais possible de développer des animations trés proches du flash en pur javascript et ne nécessitant donc aucun plugin tiers. De plus, l'utilisation de ces Javascript est ce qu'on appelle non obstrusif puisque dans le cas où le navigateur client ne supporterait pas cette technologie, le contenu apparaîtrait quand même de manière gracieusement dégradé.

        Etape 3 : développement par milestones

        Les spécifications et le design pourront être affinés une fois la phase de développement commencée. Pour chaque phase, les spécifications seront revues avec le client de manière itérative et incrémentale. Une fois les spécifications pour une phase validées par le client, celle-ci seront considérées comme définitives. Une modification de ces spécifications ayant un impact sur les délais et les coûts. Le client pourra alors décider si ces modifications de dernière minute représentent la meilleure option.

        1. Progression par milestones

        Les développements s'effectuent par milestones. Une milestone représente une étape dans le développement du logiciel définie à l'avance, le plus souvent un module ou un groupe de fonctionnalités spécifique. A la fin de chaque milestone, le point est fait avec le client afin de la valider. Lorsqu'une milestone est validée, il est possible de passer à la milestone supérieure.

        2. Organisation du travail et découpage des tâches

        Le découpage des tâches est effectué en interne par l'intérmediaire d'un serveur TRAC. Chaque fonctionnalité ou module est découpé en tâches par un chef de projet puis inséré dans le TRAC et attribué à un développeur. Le développeur se charge alors d'updater le TRAC dés que la tâche avance, et le chef de projet de vérifier le bon fonctionnement de celle-ci.

        3. Suivi live du développement

        Nous offrons à nos clients la possibilité d'un suivi live de leurs développements :

        Serveur de travail collaboratif SVN :

        L'ensemble du projet est synchronisé par l'intermédiaire d'un serveur de travail collaboratif SVN.

        Mise à jour live :

        A chaque modification du projet dans le serveur SVN (commit), une image du projet se met automatiquement à jour sur notre serveur de test

        Ainsi, il est possible à tout moment pour nos clients de connaître l'état d'avancement de leur projet, au travers de l'accès au code ou de la version live.

        4. Reporting

        Nous effectuons un reporting systématique une fois par semaine de l'état d'avancement des travaux à nos clients. Ces reporting incluent l'état d'avancement par rapport au calendrier initial, les éventuels retards pris, les problèmes rencontrés, et les éventuelles réestimations. De cette manière, nos clients ont à tout moment une vision claire de l'état d'avancement de leur projet.

        5. Assurance qualité

        Respect des standards et normalisation.

        Pour les codes que nous produisons, nous portons une attention toute particulière au respect des standards de programmation et différentes normes. Les conventions de codage sont définies au début du projet et sont respectées durant toute la durée des développements assurant ainsi une cohérence globale du projet.

        6. Contrôles et tests

        Nous proposons plusieurs options afin de garantir une assurance qualité optimale du début à la fin du projet. Ainsi, en fonction des projets, nous pouvons mettre en place les méthodes de contrôle qualité suivantes :

        -tests unitaires : Les tests unitaires sont des set de tests permettant de tester une à une les différents morceaux d'une application. Ces tests sont programmés de telle manière que lorsqu'une fonction change son comportement initial ou ne renvoie pas le résultat attendu, cela est détécté automatiquement. Les tests unitaires sont trés utilisés pour débusquer les éventuels effets de bords, etc.. Les outils utilisés pour effectuer ces tests unitaires varient en fonction des frameworks, langages utilisés. Copix par exemple intègre son propre framework permettant de programmer ces tests unitaires.

        -tests d'intégration : Arrivant juste aprés les tests unitaires, le test d'intégration prend en charge la vérification de la bonne coopération des différents morceaux de l'application développés indépendamment.

        -Tests de non régression : Les tests de non régression ont pour but de vérifier que les nouvelles fonctionnalités apportées au logiciel n'altèrent pas les anciennes fonctionnalités existantes. Ils simulent donc le comportement d'un utilisateur.

        La mise en place de quelques-uns ou de la totalité de ces tests permettent d'aboutir au test de recette correspondant à la vérification finale avec le client de la conformité du logiciel par rapport au chier des charges.

        7. Gestion du changement

        Nous effectuons la gestion des changements via le versioning SVN du code. Ainsi, à chaque pas en avant dans les développements nous conservons l'historique des changements, marquons la version afin de pouvoir y revenir en cas de problème.

        8. Documentation

        Afin d'assurer une transparence totale du code sur lequel nous travaillons, une reprise facile et une maintenance aisée, nous documentons de manière aussi développé que possible nos projets. La documentation est effectuée de plusieurs manières :

        -Documentation des classes, fonctions, fichiers au format doxygen afin de pouvoir générer automatiquement l'API relatif au projet.

        -Rédaction de la documentation au fil de l'eau pour les parties les plus techniques du projet. Dans cette documentation technique destinée aux futurs développeurs nous documentons les parties les plus techniques du projet et expliquons pourquoi tel choix technique a été effectué, ou comment fonctionne tel module ayant une logique spécifique.

        -Nous pouvons également prendre en charge la rédaction de la documentation utilisateur si nécessaire.

        Etape 4 : livraison

        Une fois les développements et différents tests terminés et validés, la livraison est effectuée et son procès verbal rédigé.

             

              Vous avez un projet à nous confier ?

                  Venez chater avec nous ou bien contactez-nous.