1.08k likes | 1.32k Views
SEG 3501- Module 2 Techniques d’élicitation. Paroles sages…. « Je sais que vous croyez que vous avez compris ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous vous rendez compte que ce que vous avez entendu n'est pas ce que je voulais dire… »
E N D
Paroles sages… « Je sais que vous croyez que vous avez compris ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous vous rendez compte que ce que vous avez entendu n'est pas ce que je voulais dire… » Robert McCloskey,Porte-parole, US State Department Module 2 : Élicitation des exigences
Techniques d’élicitation • Analyse de systèmes existants • Étude de documentation existante • Observation de tâches • Ethnographie • Analyse de discours • Entrevues • Questionnaires • Remue-méninge • Sessions Joint Application Design (JAD) • Ateliers de domaine ou de conception • Prototypage • Système pilote • Cas d’usage et scénarios • Analyse de risques • Voir aussi: http://www.slideshare.net/hayriyesakarya/elicitation-procedures-10618009 Module 2 : Élicitation des exigences
Comparaison de quelques approches Voiraussicette intro et comparison de Ying Chen : http://www.umsl.edu/~ycnx6/ Module 2 : Élicitation des exigences
Analyse desystèmes existants Module 2 : Élicitation des exigences
Analyse de systèmes existants • Lors de la conception d’une version « nouvelle et améliorée » d’un système existant. • Important de savoir: • Ce qui est utilisé, ce qui ne l’est pas, ce qui manque • Ce qui fonctionne, ce qui ne fonctionne pas • Comment le système est utilisé, comment était-il supposé être utilisé, de quelle nouvelle façons voulons-nous qu’il soit utilisé Module 2 : Élicitation des exigences
Analyse de systèmes existants • Pourquoi analyser un système existant? • Les utilisateurs peuvent perdre leurs illusions face à un nouveau système s’il est trop différent ou s’il ne fait pas ce qu’ils veulent (risque de nostalgie…) • Pour prendre en considération les vraies habitudes des utilisateurs, les activités fréquentes, et l’importance relative des tâches et services • Pour découvrir des améliorations possibles • Pour découvrir quelles fonctionnalités patrimoniales (legacy) doivent rester ou partir. Module 2 : Élicitation des exigences
Analyse de systèmes existants • Étudiez la documentation disponible: guides d’utilisation, doc de conception, mémos internes, historique des changements, etc. • Bien entendu, la doc est souvent périmée, mal écrite, incorrecte… mais c’est un début! • Observations: allez sur le terrain et observez les « spécialistes dans la brume »… • Idéalement, vous êtes un observateur silencieux, du moins au début. Sinon, vous risquez d’avoir une vision biaisée de ce qui est généralement fait. • Plus tard, vous pouvez poser des questions OU passer des gens en entrevue OU utiliser des questionnaires… Module 2 : Élicitation des exigences
Analyse de systèmes existants 3. Questionnaires: basés sur ce que vous savez maintenant. Utiles pour: • Répondre aux questions demandant une comparaison ou une corroboration (confirmation) • Obtenir certaines statistiques d’un grand nombre d’utilisateurs, par exemple: • « À quelle fréquence utilisez-vous la fonction X? » • « Quels sont les trois fonctionnalités que vous aimeriez le plus avoir? » 4. Entrevues: après s’être fait une bonne idée de ce qu’il y a à faire, quelques questions méritent probablement des réponses détaillées. • Vous ne perdrez pas votre temps ni celui des autres, mais le tout demande du travail et de la préparation! Module 2 : Élicitation des exigences
Analyseethnographique Module 2 : Élicitation des exigences
Analyse ethnographique • Veut dire littéralement « écrire la culture » • Cherche essentiellement à découvrir les facteurs humains/sociaux d’un système. • Des études ont démontré que le travail est souvent plus riche et complexe que ce qui est suggéré par des modèles simples dérivés d’entrevues. • Il existe des scientifiques sociaux spécialement formés dans l’observation et l’analyse du travail • La découverte se fait par observation et analyse; les travailleurs ne se font pas demander d’expliquer ce qu’ils font. • Façon instructive de découvrir ces facteurs • Par exemple, que fait un technicien nucléaire pendant la journée? À quoi ressemble son espace de travail? • Façon un peu moins utile pour les facteurs politiques • Les travailleurs sont conscients de la présence d’un observateur extérieur. Module 2 : Élicitation des exigences
« Ethnographie focalisée » [Sommerville, chap. 5] • Sommervilleet al. étaient impliqués dans un projet où ils devaient éliciter les exigences d’un système de contrôle de trafic aérien. Ils ont observé les contrôleurs aériens en action avec un système existant. • Ils ont fait quelques observations surprenantes: • Les contrôleurs placent souvent des avions sur des chemins potentiellement conflictuels avec l’intention de les corriger plus tard • Le système actuel génère une alarme audible quand il y a un conflit possible • Les contrôleurs ferment ces alarmes parce qu’ils étaient importunés par ces avertissements factices constants… • Morale incorrecte: • Les contrôleurs n’aiment pas les alarmes audibles parce qu’ils les ferment. • Observation plus juste: • Les contrôleurs n’aiment pas être traités comme des idiots! • Trop de fausses alarmes (en général: des false positives) Module 2 : Élicitation des exigences
Matrice de confusion ? [http://en.wikipedia.org/wiki/Sensitivity_and_specificity] Module 2 : Élicitation des exigences
Ethnographie: En résumé • Les facteurs sociaux, humains, et politiques sont souvent très importants. • Plus d’études et d’exemples réels sont nécessaires! • Ce n’est pas toujours très scientifique, mais il faut bien adresser ces problèmes d’une façon quelconque… • Voilà un autre exemple du manque d’attention donné au côté humain/social en informatique. Module 2 : Élicitation des exigences
Entrevues Module 2 : Élicitation des exigences
Entrevue • Demande de la préparation et une bonne gestion de la communication • Il faut atteindre ses objectifs d’entrevue sans pour autant prévenir l’exploration de pistes prometteuses. • Idéalement, passer en entrevue autant de parties prenantes que possible • Clé: poser des questions orientées vers le problème • L’emphase prématuré sur des détails ou des solutions risque de faire manquer les vraies exigences utilisateurs. Par exemple, comparez: • Désirez-vous Word 2010, Excel 2010, ou les deux? • Désirez-vous faire du traitement de texte, des calculs, ou les deux Module 2 : Élicitation des exigences
Entrevue: Objectifs et processus • Trois objectifs principaux: • Découvrir l’information de façon précise et efficace • Documenter l’information servant à la modélisation et l’analyse des exigences • Rassurer l’interlocuteur que sa compréhension du sujet a été entendue, explorée, et prise en considération • Processus • Planification et préparation • Session d’entrevue • Consolidation de l’information • Suivi • Plusieurs stratégies de questionnement Module 2 : Élicitation des exigences
Entrevue: Planification et préparation • Définir les objectifs de l’entrevue • Acquérir le bagage de connaissances nécessaires pour mener une entrevue efficace • Sur le domaine (vocabulaire, problèmes…), mais aussi sur l’interlocuteur (tâches, attitude…) • Préparer les questions à l’avance, par sujet • Organiser votre environnement d’entrevue • Déterminer comment les notes d’élicitation seront prises (manuellement, audio, vidéo, par qui, etc.) Module 2 : Élicitation des exigences
Entrevue: Session • Mettez votre interlocuteur à l’aise et en confiance • Soyez à l’écoute, ajustez-vous à votre interlocuteur • Vous avez vos objectifs • Soyez tenace, mais flexible! • Passez en entrevue plusieurs personnes à la fois • Création de synergie! Les interlocuteurs vont commenter et compléter les commentaires des autres. • La réponse du groupe pourrait être meilleure que la somme des réponses individuelles! • Exemple: « Contez-moi 10 blagues chacun » • Vous risqueriez de geler sans pouvoir en dire une seule… • En groupe nous pourrions en sortir des centaines (la plupart vous étant connues), les blagues évoquées stimulant votre mémoire et vous permettant de vous rappeler d’autres blagues. • Les gens connaissent bien des blagues mais peuvent difficilement s’en souvenir lorsqu’on leur demande. • Détectez les aspects politiques • Peuvent influencer le dit et le non dit… Module 2 : Élicitation des exigences
Entrevue: Notes d’élicitation • Il faut les réviser et les compléter après l’entrevue • Important de le faire assez rapidement, car la mémoire oublie vite! • Identifier les incohérences et les reprendre dans une autre entrevue si nécessaire • Ou par courriel… • Conservez bien tous les schémas, diagrammes, modèles générés lors des discussions • Vous êtes en d’apprentissage, donc soyez précis • Faites attention à la terminologie • Utilisez celle du client • Identifiez les synonymes, en choisir un seul par concept • Définissez un glossaire au besoin • Remerciez les participants (p.ex., par courriel) et gardez la porte ouverte à des communications ultérieures Module 2 : Élicitation des exigences
Entrevue: Erreurs typiques • Ne pas parler à toutes les bonnes personnes • Besoin de tous les points de vue pertinents • Poser des questions directes trop tôt • Pour un système de transport, avoir demandé « De combien de chevaux-vapeur avez-vous besoin » (direct) au lieu de « Combien de passagers? Sur quelle distance? En combien de temps? » (indirect) • Ne faire des entrevue qu’avec une seule personne à la fois • Dans les entrevues de groupe, laisser une personne dominer la discussion • Supposer que les besoins mentionnés sont corrects! • Souvent, les gens ne savent pas quoi manger et demandent « la même chose qu’elle »! • Besoin de séparer ce qui est demandé de ce dont ils ont besoin Module 2 : Élicitation des exigences
Entrevue: Erreurs typiques • N’essayez pas de convaincre vos intervenants que vous êtes intelligent ! Ce n’est pas le bon endroit. • Démontrez plutôt à chaque opportunité que vous pensez que l’intervenant est intelligent. • Contrastez ces deux exemples: Mes ascenseurs sont trop lents. Je vois. Expliquez-moi pourquoi vous sentez qu’ils sont lents. Je ne pense pas.Je crois que vous avez un problème de débit, pas de vitesse. Alan M. Davis – Just enough requirements management, 2006
Entrevue: Questions de démarrage • Ces questions sont indépendantes du contexte et cherchent à réduire la portée [Weinberg] • Identifier le client, les buts, les bénéfices • Qui est (réellement) derrière la demande pour ce système? • Qui va l’utiliser? Volontairement? Différents types d’utilisateurs? • Quel est le bénéfice (économique) potentiel d’une solution qui fonctionne? • Y a-t-il une solution existante disponible (d’une autre source)? Module 2 : Élicitation des exigences
Entrevue: Questions de démarrage • Quand en avez-vous besoin? • Pouvez-vous prioriser vos besoins? • Quelles sont vos contraintes de temps, de budget, de ressources (humaines ou autres)? • Quelles sont les livrables/échéances attendues? Module 2 : Élicitation des exigences
Entrevue: Questions de démarrage • Questions de calibrage (lors de la planification) • Êtes-vous la bonne personne pour répondre à ces questions? • Vos réponses sont-elles « officielles »? Sinon, qui pourrait les donner? • Ces questions sont-elles pertinentes au problème tel que vous le concevez? • Y a-t-il trop de questions? Sont-elles au bon niveau de détail? • Y a-t-il une autre personne à qui je devrais parler? • Y a-t-il d’autres questions que je devrais vous poser? • Avez-vous des questions? Module 2 : Élicitation des exigences
Entrevue: Questions de démarrage • Questions qui ne peuvent pas être demandées directement… allez-y indirectement! • Êtes-vous opposé au système? • Tentez-vous de prévenir ou de retarder l’arrivée du système? • Tentez-vous de vous créer un rôle plus important? • Vous sentez-vous menacé par le système proposé? • Tentez-vous de préserver votre emploi (ou celui d’un collègue)? Module 2 : Élicitation des exigences
Entrevue: Questions spécifiques • Aspects fonctionnels • Qu’est-ce que le système va faire? Quand le fera-t-il? • Y a-t-il plusieurs modes d’opération? • Quels types de calculs et de transformations de données doivent être faites? • Quelles-sont les réponses appropriées à un stimulus? • Quel devrait-être les formats de données en entrée et en sortie? • Y a-t-il des données qui doivent être préservées pour une période de temps? Module 2 : Élicitation des exigences
Entrevue: Questions spécifiques • Contraintes de conception • Environnement physique • Où mettre l’équipement? Un ou plusieurs endroits? • Restrictions quant à la température, l’humidité, la taille, la consommation, le refroidissement…? • Contraintes sur les langages de programmation à cause de composant existants? • Interfaces • Les données viennent de un ou plusieurs autres systèmes? • Les sorties vont vers un ou plusieurs autres systèmes? • Des restrictions/directives sur le formatage et l’emmagasinage des données? • Normes et standards • Y a-t-il des normes ou standards pertinents pour le système? • Lois, politiques et règlements • Y a-t-il des lois, politiques ou règlements applicables? Module 2 : Élicitation des exigences
Entrevue: Questions spécifiques • Contraintes de performance • Vitesse d’exécution, temps de réponse, débit, utilisation de ressources? • Quantité de données à traiter/emmagasiner? • Fréquences d’envois, de traitements, et autres utilisations? • Contraintes de sécurité • L’accès au système ou à l’information doit-il être contrôlé? • Les données d’un utilisateur doivent-elles être isolées des autres utilisateur? • Les programmes d’un utilisateur doivent-ils être isolés par rapport aux autres programmes sur un système d’exploitation? • Devrait-on prendre des précautions contre le vol, les attaques, et le vandalisme? Module 2 : Élicitation des exigences
Entrevue: Questions spécifiques • Fiabilité et disponibilité • Le système doit-il détecter et isoler les fautes? • Quel devrait-être le temps moyen permis entre pannes, et le temps maximum de reprise après panne? • Les copies de sûreté doivent être prises à quelle fréquence, en combien de copies, et placées dans combien d’endroits? • Précautions contre le feu, l’eau, les pannes…? • Vitesse d’exécution, temps de réponse, débit, utilisation de ressources? • Maintenabilité • Maintenance pour corriger les erreurs ou aussi pour améliorer le système? • De quelle façon le système pourra-t-il évoluer? • Avec combien d’efforts un nouveau service pourra-t-il être ajouté? • Avec combien d’efforts le système pourra-t-il être porté sur une plateforme différente? Module 2 : Élicitation des exigences
Entrevue: Questions spécifiques • Précision et exactitude • Avec quelle degré d’exactitude et avec quelle précision les calculs devront-ils être effectués? • Convivialité et facteurs humains • Quelle type de formation sera requis pour chaque type d’utilisateurs? • Quel degré de simplicité est-il désirable d’avoir pour qu’un utilisateur puisse comprendre et utiliser le système? • À quel point devra-t-il être difficile de mal utiliser le système? Module 2 : Élicitation des exigences
Encore sur les entrevues • Attention aux questions sans réponses… • Comment attachez-vous vos lacets? • Voir aussi cet intéressant vidéo: • http://www.youtube.com/watch?v=2WBef84bodc Module 2 : Élicitation des exigences
“Ignorance is a bliss” [The Matrix, 1999] • Selon Dan Berry, l’ignorance d’un domaine est une bonne chose! • L’ignorance (et non la stupidité!) permet d’exposer certaines hypothèses et certains faits implicites. • Berry suggère même qu’un jour les ingénieurs en exigences vont annoncer leurs domaines d’ignorance (plutôt que leurs domaines d’expertise) pour se trouver des emplois! • En fait, une équipe composée d’experts et d’ignorants est une bonne chose Ali Niknafs, Daniel M. Berry: An industrial case study of the impact of domain ignorance on the effectiveness of requirements idea generation during requirements elicitation. RE 2013: 279-283 Module 2 : Élicitation des exigences
Questionnaires Module 2 : Élicitation des exigences
Questionnaires et sondages • Quelques avantages: • Intéressants pour rejoindre plusieurs personnes • Asynchrones, à distance, et peuvent être courts • Peu coûteux • Répondants peuvent être anonymes • Défis: • Temps de préparation! • Choix de questions ouvertes et fermées (peu flexibles) • Choix de réponses et échelles (nominales, intervalles, Likert…); éviter les tendances centristes! • Statistiques significatives (analyse) • Validité des questions (biais, ambiguïtés) • Répétition et ordre des questions • Déterminer les bons participants à inviter (biais, fraude) • S’assurer que les personnes répondent à tout (épuisement, pas d’intérêt)! Module 2 : Élicitation des exigences
Types de questions à considérer • Informations démographiques (de classification) • Âge, pays, emploi… Pour analyse sous plusieurs angles • Attention aux risques de ré-identification si le sondage est anonyme • Questions attitudinales • Que pensez-vous de…? Êtes-vous en accord avec…? • Échelle de 4-6 valeurs (sans neutre) ou 5-7 valeurs (avec neutre) • Fortement en accord • Un peu en accord • Ni en accord ni en désaccord (indécis) • Un peu en désaccord • Fortement en désaccord • Questions supplémentaires ouvertes • Peuvent être instructives, mais qualitatives • Questions optionnelles / alternatives, par population • Questions redondantes, pour robustesse… Module 2 : Élicitation des exigences
Analyse à considérer… à l’avance! • Le sondage sera-t-il répété (avant/après pour comparaison)? • Prévoir le type d’analyse (statistique), p.ex.: • Signification statistique? http://en.wikipedia.org/wiki/Statistical_significance • Testez votre questionnaire et votre analyse sur un petit groupe! • Voir aussi cet important vidéo sur les sondages et questionnaires: http://www.youtube.com/watch?v=rSwVZJT9j1c Module 2 : Élicitation des exigences
Remue-méninges Module 2 : Élicitation des exigences
Remue-méninges • Pour inventer une meilleure façon de faire, essayez une séance de remue-méninges (brainstorming)! • Élément de surprise: il faut que les intervenant voient quelque chose qu’il ont toujours voulu sans le savoir! • Cette approche est très utile très tôt dans le processus d’I.E.: • Quand vous vous aventurez en terre inconnue • Quand vous avez peu d’expérience • Quand l’innovation est importante Module 2 : Élicitation des exigences
Remue-méninges • Quand vous n’avez pas d’idée, ou encore trop d’idées, assoyez-vous et faites remuer tout ça… mais en suivant certaines règles de bases. • Cette approche est composée de deux activités principales: • Génération d’idées (la tempête) • Élagage (éliminations) d’idées pour en arriver à une liste finale (le calme) • Qui participe? • Experts du domaine, développeurs, utilisateurs… à peu près n’importe quelle partie prenante. • Souvent, les compagnies de développement de logiciel vont avoir une « personne à idées » qui va présider ou participer à ce genre de séance, sans aller plus loin dans le projet. Module 2 : Élicitation des exigences
Remue-méninges • Vous devez d’abord désigner deux personnes différentes qui vont jouer des rôles particuliers: • Scribe • Son rôle est d’écrire toutes les idées. • Peu aussi contribuer aux idées. • Peut demander des questions de clarification (dans la partie I), mais sans critiquer. • Modérateur/leaderOn rencontre ici deux écoles de pensée: • Agent de circulation: Va imposer certaines règles pour maintenir l’ordre, sans vraiment aller plus loin. • Agent provocateur: Joue un plus grand rôle de leader, arrive préparé avec des idées et les suggère pour démarrer la discussion. Peut aussi chercher des variations ou des combinaisons d’autres suggestions. Ce n’est cependant pas une personne-je-sais-tout! Agit aussi comme agent de circulation. Module 2 : Élicitation des exigences
Partie I: la tempête • Son but est de générer autant d’idées que possible. • Choisissez un thème ou un titre provocateur. • On cherche ici la quantité, et non nécessairement la qualité. • Chercher à combiner certaines idées déjà mentionnées. • Aucune critique ni aucun débat n’est permis ici! One ne veut pas freiner les participants. • Les participants doivent comprendre que rien de ce qu’ils disent ne pourra par la suite être retenu contre eux. • Le scribe prend note de toutes les idées où tous peuvent voir (tableau, feuilles affichées sur un mur, etc.) • « Wild is good »! Sentez-vous à l’aise d’être glorieusement dans les patates! • Les participants ne doivent PAS s’autocensurer ni prendre trop de temps pour considérer si une idée est pratique ou non. Laissez-vous aller! • La liste originale ne doit pas circuler hors de la réunion. Module 2 : Élicitation des exigences
Partie II: le calme • Faites le tour de la liste et expliquez les idées plus clairement. • Catégorisez-les en « peut-être » et « non » par une méthode de consensus définie préalablement. • Consensus informel, 50% + 1 vs « majorité claire », encan Hollandais, qui a droit de veto, … • http://en.wikipedia.org/wiki/Dutch_auction • Attention au temps et aux gens! • Les réunions (surtout si elles sont de nature créative ou technique) tendent à perdre de leur efficacité après 90-120 minutes. Prenez des pauses et recommencez plus tard. • Attention de ne pas (trop) froisser de participants! • Réviser, consolidez, combinez, clarifiez, améliorez • Triez la liste par priorités d’une façon quelconque, et sélectionnez l’idée gagnante. Module 2 : Élicitation des exigences
Élagage • Il y a quelques façon courantes d’éliminer certaines idées. Par exemple: • Vote avec seuil • Mélange d’idées • Budget Module 2 : Élicitation des exigences
Élagage: vote avec seuil • Chaque personne a droit de voter jusqu’à n fois. • Conservez les idées qui ont plus de m votes. • Utilisez des tours de scrutins multiple où n est de plus en plus petit. Module 2 : Élicitation des exigences
Élagage: mélange d’idées • Appliquez des critères d’acceptation (qui sont souvent ignorés dans la première étape) aux idées. • Triez les idées acceptées • Sélectionnez les k meilleures pour un vote. Module 2 : Élicitation des exigences
Élagage: approche par budget • Donnez aux participants X$ à dépenser sur les idées • Que pouvez-vous vous offrir? Module 2 : Élicitation des exigences
Remue-méninges • Avec beaucoup de bonnes idées, outrageuses et, voire, farfelues, le remue-méninges peut être vraiment très amusant! • Le plaisir stimule et motive les gens à bien performer! Module 2 : Élicitation des exigences
Remue-méninges - outils • Peut être fait par courriel, mais un bon modérateur/leader est nécessaire pour • Prévenir les flingueurs (flamers) d’entrer en jeu • Prévenir la concurrence critique (race conditions); le courriel est un mécanisme de communication asynchrone. • Faire attention à ne pas trop entrer dans les détails. • Des outils de collaboration sont aussi envisageables • TWiki et bien d’autres plus appropriés tels que BrainStorm et IdeaFisher Module 2 : Élicitation des exigences
Sessions JAD Module 2 : Élicitation des exigences