Table des matiĂšres du cours
1.
2.
3.
4.
5.
6.
7. < â
8. - -
9.
â
Parfois, il semble que la tĂąche du dĂ©veloppeur est tout simplement Ă©vidente! Mais ne vous fiez pas trop au bon sens pour poser le problĂšme. Pour toute tĂąche, mĂȘme la plus simple, des Ă©carts sont possibles, car les gens ont tendance Ă vivre dans un monde de leurs propres illusions. Par exemple, en RĂ©publique de Cuba, on pense que les murs doivent ĂȘtre clairs et variĂ©s, et mĂȘme si le client demande Ă les peindre en blanc, les travailleurs peuvent ajouter des taches de couleur, car "c'est plus beau comme ça". Il en va de mĂȘme pour le dĂ©veloppement.
Un document tel que les exigences aide Ă surmonter le «mur du malentendu». La prĂ©sence d'exigences vous permet de crĂ©er la mĂȘme idĂ©e de ce qui doit ĂȘtre fait dans le produit, de ce que devrait ĂȘtre exactement la fonctionnalitĂ©.
Comment les exigences sont construites
Lors de la formulation des exigences de développement, vous devez comprendre pour quel utilisateur nous développons le produit. C'est là que User Persona est utile (nous en avons déjà parlé ici ). User Persona est ce qu'on appelle l'acteur dans le systÚme, et pour chaque acteur, nous définissons un ensemble de rÚgles et de capacités.
Par exemple, les acteurs suivants peuvent ĂȘtre dĂ©finis dans une application de forum Web:
- L'administrateur peut tout faire, littéralement tout - y compris l'attribution de rÎles (personnes) à d'autres utilisateurs.
- Un utilisateur régulier ne peut laisser que des messages.
- Le modérateur peut laisser des messages, supprimer les messages d'autres personnes, bannir les utilisateurs réguliers.
Dans le cas de l'application d'appel taxi, que nous rappelons pĂ©riodiquement au cours de notre stage, les personnes peuvent ĂȘtre un passager, un chauffeur de taxi et un opĂ©rateur.
Pour formuler une exigence adéquate, vous devez rédiger un document que nous appelons Description de la fonctionnalité. Et pour cela, vous devez répondre aux questions suivantes:
- Pourquoi? Quel est le but? Quels sont les avantages commerciaux?
- Pourquoi? Quels sont les risques? Que perdrons-nous si nous ne le faisons pas? Que se passe-t-il si nous le faisons?
- Quoi? Quel problÚme voulons-nous résoudre? Pour qui?
- Comment? Exigences fonctionnelles et cas d'utilisation (séquence d'actions).
Il est également nécessaire de prévoir la présence d'un vocabulaire des termes du domaine. Cela est particuliÚrement vrai pour des acronymes spécifiques. Par exemple, le développeur peut ne pas connaßtre tous les noms de processus et les spécificités de l'industrie sidérurgique ou de la cuisine.
Enfin, le document doit faire une section «Approbations», dans laquelle, d'une part, les clients de la fonctionnalité (parties prenantes, clients, chef de produit) conviennent que la description correspond à ce qu'ils veulent du produit. D'autre part, les développeurs (chefs d'équipe, architectes) confirmeront que la description de la tùche dans les exigences est claire et complÚte. Ainsi, tous les participants au processus de développement doivent dire: «Oui, nous comprenons le document, maintenant c'est possible».
MĂ©triques auxiliaires
Lorsque vous travaillez avec des exigences, les mesures auxiliaires aident à réaliser une exécution précise de la tùche, ainsi qu'à réduire le temps consacré à la vérification de la conformité.
- La définition de Terminé est une brÚve description de la façon de savoir si une fonctionnalité fonctionne.
- Exigences non fonctionnelles - exigences relatives aux paramÚtres techniques tels que la réactivité de l'interface utilisateur, la charge du backend, les limitations du processeur et de la RAM. C'est un point trÚs important, car si vous n'exprimez pas les exigences, vous pouvez obtenir un monstre - Photoshop intégré au lieu de simplement choisir la couleur de la voiture.
- Exigences de sécurité - cryptage, stockage des données personnelles, etc.
- Corner Case - test des cas de bord. Que se passe-t-il si le prix du produit est Ă©gal Ă 0? Combien de voitures de taxi une personne peut-elle commander en mĂȘme temps?
- â , . , , , , â Visa, MasterCard, , .
- . , , , , . , , . , .
- . , â â, â â.
Exigences fonctionnelles et non fonctionnelles, cas d'utilisation
ArrĂȘtons-nous un peu sur les exigences fonctionnelles et non fonctionnelles.
Les exigences fonctionnelles expliquent ce qui doit ĂȘtre fait, elles listent les actions de l'application en rĂ©action aux actions de l'acteur. Ces exigences sont implĂ©mentĂ©es dans les scĂ©narios d'utilisation rĂ©pertoriĂ©s.
Les exigences non fonctionnelles saisissent les conditions dans lesquelles la solution doit rester efficace, ou les qualités que la solution doit posséder. Les exemples les plus courants d'exigences non fonctionnelles sont:
- évolutivité,
- fiabilitĂ©, temps d'arrĂȘt minimum,
- méthodes de soutien.
Des cas d'utilisation sont également utilisés pour décrire les exigences. C'est l'élément principal de notre document, que nous préparons lors de la génération d'une demande de fonctionnalité. Les scripts doivent fournir un flux complet, étape par étape, de ce qu'un utilisateur peut faire avec votre application.
Les scripts personnalisés contiennent généralement les sections suivantes:
Section: Contexte
RĂ©pond Ă la question: Quel composant? Quelle est la condition?
Exemple: l'utilisateur n'est pas autorisé.
Section: Acteur
RĂ©pond Ă la question: Quelle personne?
Exemple: utilisateur régulier.
Section: Conditions préalables
Répond à la question: Quelles sont les fonctionnalités?
Exemple: il y a une invitation Ă recevoir un statut VIP.
Section:Objectif
RĂ©pond Ă la question: qu'est-ce que l'utilisateur a l'intention de faire / d'obtenir?
Exemple: connectez-vous.
Section: Scénario principal
RĂ©pond Ă la question: Quelles mesures doivent ĂȘtre prises pour atteindre le rĂ©sultat?
Exemple: Entrez votre nom d'utilisateur et votre mot de passe, appuyez sur le bouton "Entrée".
Section: Bad Scripts
RĂ©pond Ă la question: Qu'est-ce qui peut mal tourner, une liste d'erreurs, y compris le texte des messages d'erreur pour l'utilisateur.
Exemple: le bouton n'est pas enfoncĂ©, la langue ne change pas, la connexion ne peut pas ĂȘtre Ă©tablie via le protocole https, etc.
Section: Layouts
RĂ©pond Ă la question: Layouts ou prototypes possibles de conception d'interface utilisateur.
Exemple: dessiner dans Figma ou Sketch.
Dans une forme simplifiée, les scripts personnalisés peuvent ressembler à ceci:
DĂ©voiler
. ( e-mail) ( ). , , : « » « . »
Comment la description des fonctionnalités est-elle lue?
Chaque catĂ©gorie d'utilisateurs peut recueillir des informations utiles pour eux-mĂȘmes Ă partir des exigences. Et il est donc trĂšs important de garder Ă l'esprit que les exigences seront lues par diffĂ©rentes personnes:
- DĂ©veloppeurs - Il est important pour eux de savoir pourquoi la fonctionnalitĂ© est nĂ©cessaire, quel problĂšme elle rĂ©sout. Afin de ne pas perdre de temps sur des correctifs plus tard, les dĂ©veloppeurs doivent fournir une liste complĂšte de tous les scĂ©narios, ainsi que faire attention aux cas Corner. Si vous informez le dĂ©veloppeur Ă temps de ce que nous ajouterons plus tard, par exemple, les paiements avec une carte MIR, il pourra prĂ©voir cette possibilitĂ© au niveau de l'architecture. Ainsi, les coĂ»ts peuvent ĂȘtre considĂ©rablement rĂ©duits en Ă©vitant les retouches.
- , QA â , . Corner Cases. , â , .. ( , , ) . , . .
- DevOps Datacenter Operationsâ , , , . DevOps , , , .
- â , , . , , .
Si vous écrivez des exigences de développement, assurez-vous de poser la question - qui est votre utilisateur, ce qu'il fait (ou peut faire), dans quelles conditions il se trouve. Créez un diagramme de son comportement, cela aidera à décrire tous les aspects des exigences.
Lors de la rĂ©daction d'un document, il faut ĂȘtre le plus court possible et ne pas laisser de lieux incomprĂ©hensibles. Les exigences couvriront de toute façon plusieurs pages. Il doit ĂȘtre lu par de nombreuses personnes et doit ĂȘtre lisible.
Suivez une rÚgle simple: commencez par l'essentiel et ajoutez ensuite des détails. De plus, vous devez obtenir des commentaires du contrÎle qualité, des développeurs, des DevOps et d'autres parties prenantes. TrÚs probablement, la description de la fonction acquerra de nouveaux détails aprÚs communication avec les parties prenantes.
Essayez de penser Ă des scĂ©narios non Ă©vidents. Il est conseillĂ© de dĂ©terminer immĂ©diatement ce que votre application doit faire en cas d'urgence. Pensez aux composants externes qui affectent votre fonctionnalitĂ©. Et quand tout est prĂȘt, posez Ă nouveau la question: "Que pouvez-vous tester d'autre que les Ă©tapes dĂ©crites dans les scripts personnalisĂ©s?"
Conclusion
Dans le prochain article, nous parlerons du business plan et du prix du nouveau produit.
En attendant, partagez dans les commentaires votre expĂ©rience de travail avec les exigences, tant du cĂŽtĂ© du gestionnaire que de l'exĂ©cuteur testamentaire. Dites-nous, y avait-il un exemple dans votre pratique oĂč un client fonctionnel voulait une chose, mais au final cela s'est avĂ©rĂ© complĂštement diffĂ©rent Ă cause d'un malentendu?
â L'enregistrement vidĂ©o de toutes les confĂ©rences du cours est disponible sur YouTube
Lecture sur la feuille de route et les exigences de développement: