Note de lecture : The Human Interface: New directions for designing interactive systems, par Jef Raskin

Note : 7 ; Le testament du père du MacIntosh

Ce livre ne traite pas d’une démarche de conception d’interface homme-machine, pas plus qu’il ne propose un guide de réalisation de ces interfaces. Non, en fait cet ouvrage traite du fond du problème, c’est-à-dire comment concevoir une interface adaptée à la façon de fonctionner de l’esprit humain. C’est ainsi qu’avant toute chose Jef Raskin aborde le conscient et l’inconscient et le fonctionnement de la mémoire immédiate et de la « localisation de l’attention ». Les solutions que propose Raskin sont radicales et rompent avec le courant actuel des interfaces fenêtrées et s’appuient sur des paradigmes tels que des interfaces non modales (dont le comportement ne dépend pas du contexte d’utilisation) et une navigation par zooming plutôt que par défilement. Plus encore que ce qu’il avait fait pour le MacIntosh, Raskin veut « enfouir » le système d’exploitation pour le rendre invisible, par exemple via une manipulation centré sur l’appel des fonctionnalités plutôt que sur le lancement d’applications, en abandonnant la manipulation de fichiers et même l’invocation directe de l’enregistrement des données sur le disque.

Bref, c’est un nouveau bond que l’auteur veut accomplir pour une « interface humaine », ses préconisations sont de fait troublantes, voir dérangeantes, eut égard à ce que nous connaissons, mais c’est aussi ce que nous recherchons des visionnaires, qu’ils remettent en cause nos certitudes. Nombre des concepts exposés sont démontrés sur un ordinateur qu’a conçu l’auteur : le Canon Cat. Ce n’est pourtant pas la machine la plus connue qu’il ait développé. Le créateur du MacIntosh est décédé le 26 Février 2005.

Ce livre n’est pas facile à lire, beaucoup de concepts sont difficiles à appréhender et nécessitent une bonne capacité d’abstraction pour suivre l fil de l’auteur. Mais les idées qu’exposent l’auteur n’existent nulle part ailleurs.

human-interface

Référence complète : The Human Interface: New directions for designing interactive systems – Jef Raskin – Addison Wesley / ACM press 2000 – ISBN: 0-201-37937-6; EAN: 978-0-201-37937-2

The Humane Interface: New Directions for Designing Interactive Systems


http://www.goodreads.com/book/add_to_books_widget_frame/0201379376?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Software Requirements, 2nd edition, par Karl E. Wiegers

Note : 9 ; Encore meilleurs avec le temps … et toujours une référence sur la gestion des exigences!

Je l’avais dit ailleurs, mais j’estime qu’un ouvrage dans sa seconde édition qui ne s’améliore pas mérite une note en baisse ! Vous pouvez donc déjà conclure qu’en gardant la même note que j’avais attribué à la première édition, cette nouvelle mouture a amélioré le texte original. Pas seulement amélioré d’ailleurs, mais aussi amplifié car l’ouvrage est augmenté de 100 pages. Après presque 10 ans de perspective sur les écrits concernant la gestion des exigences, Karl Wieger et les Robertson restent mes ouvrages de référence sur le sujet. Ce n’est pas rien et cette mise à jour (qui est en fait plus que cela) remet le livre en selle pour autant qu’il fût jamais détrôné.

La structure du livre est passée de 3 parties à 4 et le découpage a également évolué. Je ne vais pas rentrer dans le détail des chapitres, mais tenter de parler de chacune des parties.

La première partie est intitulée « Software requirements : What and Why ». A priori cette partie est dévolue aux nouveaux venus dans la partie. Erreur, cette partie mérite d’être également étudiée par les analystes expérimentés tout autant ! A la place des banalités convenues, l’auteur explique clairement et nettement les différents types de besoins et les différentes perspectives à considérer sur leur expression. On y aborde avec honnêteté les attentes des utilisateurs et la façon concrète et pragmatique dont on peut les aborder dans le cadre d’un projet. Les « bonnes pratiques » nous renvoient aux droits et aux devoirs de l’analyste et de l’utilisateur durant l’expression des besoins. Sans jamais réellement évoquer l’approche agile, l’état d’esprit y est et je conseillerais sans hésitation la lecture de cette première partie à tout agiliste !

La seconde partie porte tout simplement comme titre « Software requirements developpement ». Avec ses 220 pages et ses 12 chapitres, c’est la plus longue du livre ! Il s’agit d’une approche « par facette » plus que par activité et qui couvre remarquablement toute l’activité de recueil du besoin : établissement de la vision, dialogue avec les utilisateurs, règles métiers, scénarios d’usage, documentation, validation, qualification, etc… Chaque chapitre est clairement focalisé sur un point de vue, clair et riche sans se perdre dans des considérations stériles.

La troisième partie est consacrée au « requirements managements », où comment gérer l’évolution des exigences dans le temps. Cela couvre l’outillage, la gestion des changements et de la traçabilité. Si cela ne couvre que 65 pages, ne croyez pas pour autant que le sujet est traité avec légèreté car l’essentiel est dit, même si il peut être complété par ailleurs.

La dernière partie « implementing requirements engineering » est nouvelle et certainement moins passionnante (sans être mauvaise). Mais on est plus loin des processus agiles.

La première édition était bonne, la seconde l’est plus encore. L’ouvrage couvre avec succès toutes les facettes du recueil des besoins et peut figurer comme seul ouvrage sur la gestion des exigences dans votre bibliothèque si vous ne souhaitez qu’un livre.

wieger-soft-reqt

Référence complète : Software Requirements, 2nd edition – Karl E. Wiegers – Microsoft press 2003 – ISBN: 0-7356-1879-8; EAN: 978 0 7356 1879 4

Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle

http://www.goodreads.com/book/add_to_books_widget_frame/0735618798?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Writing Effective Use Cases, par Alistair Cockburn

Note : 7 ; D’excellents conseils rédactionnels et une bonne approche “adaptative” de la modélisation des systèmes.

Ce livre se focalise entièrement sur la rédaction textuelle des cas d’utilisation. A ce titre, il relativise la description graphique comme étant une vue synthétique du périmètre fonctionnel. Alistair prêche une approche par décomposition fonctionnelle dans laquelle on part des business cases pour descendre jusqu’à des uses cases de type sous routines. A chaque niveau (représenté par une icône) on détermine l’objectif de l’acteur principal comme étant la force essentielle dans la détermination du cas d’utilisation.

Le livre est excellent pour ce qui est de décrire des Use Cases optimaux et clairs, donc suffisamment courts et concis pour être lus et compris. Qui plus est, des mémentos permettent de se rappeler quelles sont les règles à suivre dans l’écriture des Use Cases. Ce livre est d’avantage dédié aux personnes pratiquant déjà les cas d’utilisation et désireuses de progresser qu’aux nouveaux venus qui risquent de se retrouver quelque peu noyés. Enfin certains aspects tels que la décomposition fonctionnelle utilisant abondamment les relations d’inclusion sont critiquables voire dangereuses lorsque utilisées à mauvais escient.

writing-effective-use-cases

Référence complète : Writing Effective Use Cases – Alistair Cockburn – Addison Wesley / Crystal Collection for Software professionals 2001 – ISBN: 0-201-70225-8; EAN: 978-0-201-70225-5

Writing Effective Use Cases


http://www.goodreads.com/book/add_to_books_widget_frame/0201702258?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on

Note de lecture : Software Configuration Management Patterns: Effective Teamwork, Practical Integration par Stephen Berczuk & Brad Appleton

Note: 8 ; Un “langage de patterns” bien construit, mais aussi une excellente référence sur la gestion de configuration.

On trouve deux types d’ouvrages sur la gestion de configuration : ceux développant des processus de gestion de configuration, souvent compliqués et éloignés des préoccupation quotidiennes des développeurs, et ceux traitant des outils, les détaillant en profondeur mais sans réellement expliquer comment les utiliser intelligemment. Cet ouvrage se démarque résolument de ces deux tendances en exposant les principes de la gestion de version et de configuration sous forme de « process patterns » qui sont autant de cas d’utilisation. Des cas d’utilisation résolument tournés vers le développeur, afin de l’aider dans ses tâches quotidiennes.

Une courte première partie introductive recadre la place de l’outil de gestion de versions et de configuration dans l’environnement de développement. Il présente également la structure des patterns et l’image globale de ce langage de patterns. On y distingue deux sous-ensembles : les patterns orientés « codeline » c’est-à-dire purement gestion de version, et les patterns liés à la gestion de l’espace de travail.

La seconde partie, forte de 120 pages, forme 16 chapitre, chacun présentant un pattern (donc, une moyenne de 7 pages par patterns). Je ne saurais tous les présenter, mais en voici quelques uns :

Active development line : Comment gérer une branche de développement suffisamment utilisable et stable à tout moment, afin de satisfaire les besoins de développement

Private build : Pensez de façon globale, et construisez localement. Ou comment, avant de soumettre des changements, construire et tester de manière identique au build d’intégration, mais sur l’espace privé de développement

Intégration build : Pour s’assurer que toutes les changements injectés dans le repository central sont construits et testés par un processus centralisé.

Task level commit : Pousser dans le gestionnaire de versions à chaque changement de faible granularité mais indissociable (résolution d’un problème, mise en conformité avec une évolution d’interface, etc.).

Comme c’est le cas avec les bons patterns, un bon nombre nous donne un goût de déjà-vu. D’autres moins. L’approche « patterns » est réellement utilisée à bon escient : le problème est évoqué, souvent étayé par une expérience vécue, pour déboucher ensuite sur le développement de la solution, soutenus par des références extérieures. On appréciera aussi, mine de rien, de voir relevé en vis-à-vis des patterns, les points non résolus ! Que vous soyez expérimentés ou débutant, vous devriez vous régaler à la lecture de ces patterns : on bénéficie réellement de l’expérience et de la qualité de synthèse et d’expression des auteurs. Connaître les commandes de votre outil de gestion de version n’est pas tout (bien que cela soit nécessaire), il faut savoir utiliser et organiser son travail au quotidien afin de travailler de façon efficace, coopérative et rigoureuse afin d’éviter les problèmes inhérents au travail en équipe. Ce langage de pattern est sans nul doute la réponse pragmatique, efficace et opérationnelle. Le tout en moins de 200 pages. Last but non least, les appendices si succincts soient-ils fournissent d’excellents liens Web et une ébauche d’évaluation des outils existants. Vous aurez compris : j’ai aimé.

Les DVCS ont certainement ajouté leur lot de patterns également, même si ceux évoqués ci-dessus restent d’actualité. J’adorerais voir une seconde édition de l’ouvrage intégrant cela. Une autre avancé possible est la prise en compte de la déliverie en continue (le devops) dans le cycle logiciel abordé.

Les auteurs travaillent à une seconde version de l’ouvrage, toutefois celle-ci est encore à l’état de projet. Il n’est d’ailleurs pas dit qu’elle sorte un jour.

soft-conf-mgt-patterns

Référence complète : Software Configuration Management Patterns: Effective Teamwork, Practical Integration – Stephen P. Berczuk & Brad Appleton – Addison Wesley / SP series 2002 – ISBN : 0-201-74117-2

Software Configuration Management Patterns: Effective Teamwork, Practical Integration

http://www.goodreads.com/book/add_to_books_widget_frame/0201741172?atmb_widget%5Bbutton%5D=atmb_widget_1.png&atmb_widget%5Bhide_friends%5D=on