Développeur web freelance depuis 5 ans
Expérience en agence web, E-Commerce (annonceur)
Formation Informatique et Autodidacte
Formateur et fan des OSS, contributeur à mes heures perdues
Solutions phares : Wordpress, Symfony, Magento, Prestashop, Angular
Langages : PHP, MySQL, HTML, CSS, JS
Une étape de conception logicielle.
Analyse d'un besoin client / utilisateur.
Détermination, classement et prioritisation des fonctionnalités d'une application ou d'un site web.
Répondre à un besoin dans un contexte.
Concevoir un site web / une application.
Fonctionnalités qui répondent au besoin en respectant des contraintes (technique, de temps, d'argent).
Réflexion et analyse.
Définition des fonctionnalités.
Outil / Support pour assurer le cycle de développement (Programmation, Test, Déploiement).
Proposition d'une solution.
Est souvent développeur.
Lecture de CDC, devis, spécifications.
Comprend les enjeux techniques.
Peut rencontrer le client / utilisateur.
Est conscient des exigences clients, des besoins utilisateurs, des contraintes de temps, d'argent et techniques.
Logique: Regard rationnel sans émotion.
Réceptif: Ecouter le besoin, poser des questions.
Observateur: Faire le lien entre les informations.
Méthodique: Procéder par étape.
Esprit de synthèse
Proactif: Résoudre / signaler les problèmes.
Travail en équipe
Diplomate
Extraverti: Chercher le besoin vers les autres.
Introverti: Analyser les informations et le besoin.
Un projet est composé à minima de 2 acteurs.
Le client énonce un besoin. Le développeur prend le besoin, estime le temps, conçoit la solution et fait le support / formation.
Le projet prend de l'ampleur. Le développeur et le client ne suffisent plus.
Analyste d'affaire prend le besoin. Le pilote de système fait le support et les tests. Le chargé de projet encadre l'équipe.
Grosse équipe dit hiérarchie. Les architectes prennent le besoin sans aller dans le détail. Recensent les impacts lors de modifications. L'équipe technologique s'occupe du matériel et de la configuration.
Découpage en divisions
Consultant / internes
Cascade, Cycle en V, agile...
En cascade, on fait le projet sur le long terme.
En agile, on découpe le projet en petite itération.
Prise des besoins et des exigences
Conception et solution
Suivi fonctionnel
Connaissance, identification et compréhension de la problématique.
Trouver une solution à un problème nécessite de comprendre le contexte.
Cerner et voir tous les impacts afin d'envisager les différentes solutions.
Un besoin est toujours dans un état brut.
Le besoin devient une exigence lorsqu'on l'a clairement précisé.
"J'ai besoin que les utilisateurs puissent créer leur profil."
devient
"Suite à une visite sur la page d'accueil (lieu), le site (acteur) oblige (action) le visiteur à créer son profil (résultat) sauf s'il est déjà connecté (contrainte)."
Prendre connaissance d'un maximum d'informations pertinentes.
Savoir distinguer ce qui est important ou non.
Permet de déterminer les fonctionnalités prioritaires.
Poser les bonnes questions.
Qui, Quand, Quoi, Comment, Où, Pourquoi, Pour qui...
"Que fait le site actuel ?"
"Qui l'utilise ?"
"Pourquoi ?"
"Comment accède-t-on à l'administration ?"
Utiliser le site, rechercher l'information dans une documentation à jour ou en posant la question à quelqu'un qui connait l'information.
Client, utilisateur, administrateur...
Prévoir une liste de questions. Mettre l'accent sur les priorités.
Identifier les besoins réels et les problèmes qui doivent être résolus. Pourquoi ont-ils ce besoin ?
L'origine du besoin est plus important que la solution. Certaines personnes énoncent leurs besoins sous forme de solution.
Le besoin n'est pas toujours clair.
Questions et impacts auquel le demandeur n'a pas pensé.
Séparer les processus complexes en petites étapes.
Reprendre dans vos propres mots une explication.
Être explicite : Lieu, acteur, action, résultat et contrainte pour transformer le besoin en exigence.
Maîtrise du contexte (besoin et problématique).
On peut élaborer une solution.
Définition des fonctionnalités.
Découpage des fonctionnalités.
Traitement informatique qui apporte une valeur.
Possède des sous-fonctions.
Relation entre les fonctions via échange de données.
Contenu: Que fait la fonctionnalité ? À quel besoin répond-elle ? Est-ce similaire à une autre feature ?
Poids: Est-ce une feature simple ou complexe ? Si elle est trop complexe, il faut peut être découpé.
Contexte: Être cohérent sur le découpage du projet. Garder en référence un projet similaire.
Evolution: Comment peut évoluer cette fonctionnalité ?
Rassembler les exigences et décrire la solution.
Peut passer d'un intervenant à un autre et évolue au long du projet.
Est à l'informatique ce que les plans sont à la construction.
Se compare aussi à un scénario de film:
Sera lu par le client, l'utilisateur, les programmeurs, les testeurs...
Contient des spécifications fonctionnelles (règles) qui définissent une fonctionnalité.
Contenu logique et pas technique.
Peut être évité si le projet est très petit et non complexe.
Considérée comme un contrat.
Indique le nom du projet.
Le nom de l'analyste fonctionnel.
La date de création.
Journal de modification tenus par les auteurs et réviseurs qui indique qui a fait la dernière modification à quelle date et pour quelle raison.
Dans cette section, il faut décrire tous les cas d'utilisations. Diagramme Use-case (Dia)
Objectifs atteints par la fonctionnalité.
Objectifs non atteints par la fonctionnalité.
Définir le vocabulaire utilisé dans le document fonctionnel.
Décrire le processus de la fonctionnalité.
Maquette (wireframe) représentant la fonctionnalité. Avec moqups par exemple.
UI : User Interface
UX : User Experience
On explique le traitement que réalise la fonctionnalité.
Échanges entre développeur et analyste tout au long du projet.
Réalisation de tests manuels.
Possibilité d'automatiser les tests (unitaire, TDD).
Suivi des tests et retours via outil dédié (Trello).
Version alpha ou beta.
Écrire une documentation fonctionnelle pour le site Webflix.
Le budget de ce projet est illimité. On veut s'inspirer de Netflix au niveau des fonctionnalités mais on peut aussi s'inspirer de Youtube.
Vous êtes libre dans la réalisation, le but étant de détailler chaque fonctionnalité de l'application.