Sam 10/03/2012 - Actualités
Posté : sam. 10 mars 2012 18:09
Sam 10/03/2012 - Actualités
17:00
Un prototype du Gestionnaire est prêt, il affiche comme c'était prévu une sorte de matrice de l'utilisation des dossiers :
1) Complexité d'implémentation : flagger chaque dossier pour le rendre visible ou non dans tel ou tel outil est facile, filtrer les dossiers à afficher dans chaque outil l'est aussi. Là ou cela devient vraiment très compliqué, c'est pour gérer les opérations de coupage / copie / collage dans les outils, car il faut constamment manipuler des données dont la position réelle n'est jamais stable, du fait des dossier partagés avec d'autres outils et qui peuvent contenir des sous-dossiers invisibles et/ou des données d'autres outils. Pour information, la structure des données en mémoire est exactement telle que représentée dans le screenshot, c'est à dire basée sur un arbre unique avec des flags de visibilité par outil (l'absence de flag signifiant Toujours visible). Avec du recul, écrire des centaines de lignes de code pour gérer cette structure de donnée bi-dimensionelle est un exercice intéressant, mais je commence à m'inquiéter pour sa maintenabilité, car il ne sera pas facile de la faire évoluer dans le futur.
2) Complexité d'utilisation : il n'y a pour le moment que deux outils, le jeux de données ne contient que quelques dossiers et ce n'est déjà pas facile à utiliser. En situation réelle, il sera impossible de s'y retrouver, et au final personne n'ira faire la moindre modification dans ce casse-tête, qui aura été développé pour rien.
La solution de repli envisagée est de grouper les données par outil. L'arbre des données resterait unique, mais un niveau de dossiers Outils serait ajouté entre la racine et les données elles-mêmes comme cela :
[-] Racine
---[-] Contacts
------[-] Perso
---------[+] Famille
---------[+] Amis
------[+] Pro
---[-] Identifiants
------[-] Perso
---------[+] Achats en ligne
---------[+] Banques
------[+] Pro
L'inconvénient immédiatement visible est fonctionnel : ce sera la perte des dossiers globaux, mais les analyses de ces dernières semaines tendent à prouver que leur utilité réelle serait presque nulle (à priori moins d'une dizaine de dossiers seraient globalisables). Un nouvel outil s'ouvrira donc vide de tout dossier, est-ce un mal ? Petite note nostalgique quand même, car la distinction entre les dossiers globaux et locaux était la dernière relique d'un besoin de Contextes exprimé dès 2006.
L'avantage technique immédiatement visible est la fin des filtres imposés dans les outils : l'arrêt de la prolifération des services de filtrage, un allégement des outils existants et une plus grande rapidité d'implémentation pour les prochains. L'avantage fonctionnel est également une simplification pour l'utilisateur, qui créera ses dossiers dans chaque outil selon ses besoins. La page Exports du Gestionnaire présentera les données de la même manière, et il sera possible de choisir quel dossier de quel outil exporter.
Basculer sur la structure par outil n'engendrera pas beaucoup de rework. Quelques allégements au niveaux des deux outils, mais rien de grave sur la manipulation ou le stockage des données qui conservent le principe de hiérarchie. Le Gestionnaire a pris une dizaine d'heures.
Il y a encore de l'hésitation, car l'abandon de cette structure imaginée il y a des mois est une sorte d'échec face à la complexité de l'implémentation. Le combat entre la fierté et la sagesse commence. Les développements sont donc suspendus en attendant que la réflexion murisse.
17:00
Un prototype du Gestionnaire est prêt, il affiche comme c'était prévu une sorte de matrice de l'utilisation des dossiers :
- Dans la partie gauche, la totalité des dossiers créés dans tous les outils.
- Dans la partie droite, une liste des outils et des checkboxes pour rendre le dossier toujours visible (anciennement dossier global) ou par outil. Il y a un indicateur du nombre d'objets de chaque outil.
1) Complexité d'implémentation : flagger chaque dossier pour le rendre visible ou non dans tel ou tel outil est facile, filtrer les dossiers à afficher dans chaque outil l'est aussi. Là ou cela devient vraiment très compliqué, c'est pour gérer les opérations de coupage / copie / collage dans les outils, car il faut constamment manipuler des données dont la position réelle n'est jamais stable, du fait des dossier partagés avec d'autres outils et qui peuvent contenir des sous-dossiers invisibles et/ou des données d'autres outils. Pour information, la structure des données en mémoire est exactement telle que représentée dans le screenshot, c'est à dire basée sur un arbre unique avec des flags de visibilité par outil (l'absence de flag signifiant Toujours visible). Avec du recul, écrire des centaines de lignes de code pour gérer cette structure de donnée bi-dimensionelle est un exercice intéressant, mais je commence à m'inquiéter pour sa maintenabilité, car il ne sera pas facile de la faire évoluer dans le futur.
2) Complexité d'utilisation : il n'y a pour le moment que deux outils, le jeux de données ne contient que quelques dossiers et ce n'est déjà pas facile à utiliser. En situation réelle, il sera impossible de s'y retrouver, et au final personne n'ira faire la moindre modification dans ce casse-tête, qui aura été développé pour rien.
La solution de repli envisagée est de grouper les données par outil. L'arbre des données resterait unique, mais un niveau de dossiers Outils serait ajouté entre la racine et les données elles-mêmes comme cela :
[-] Racine
---[-] Contacts
------[-] Perso
---------[+] Famille
---------[+] Amis
------[+] Pro
---[-] Identifiants
------[-] Perso
---------[+] Achats en ligne
---------[+] Banques
------[+] Pro
L'inconvénient immédiatement visible est fonctionnel : ce sera la perte des dossiers globaux, mais les analyses de ces dernières semaines tendent à prouver que leur utilité réelle serait presque nulle (à priori moins d'une dizaine de dossiers seraient globalisables). Un nouvel outil s'ouvrira donc vide de tout dossier, est-ce un mal ? Petite note nostalgique quand même, car la distinction entre les dossiers globaux et locaux était la dernière relique d'un besoin de Contextes exprimé dès 2006.
L'avantage technique immédiatement visible est la fin des filtres imposés dans les outils : l'arrêt de la prolifération des services de filtrage, un allégement des outils existants et une plus grande rapidité d'implémentation pour les prochains. L'avantage fonctionnel est également une simplification pour l'utilisateur, qui créera ses dossiers dans chaque outil selon ses besoins. La page Exports du Gestionnaire présentera les données de la même manière, et il sera possible de choisir quel dossier de quel outil exporter.
Basculer sur la structure par outil n'engendrera pas beaucoup de rework. Quelques allégements au niveaux des deux outils, mais rien de grave sur la manipulation ou le stockage des données qui conservent le principe de hiérarchie. Le Gestionnaire a pris une dizaine d'heures.
Il y a encore de l'hésitation, car l'abandon de cette structure imaginée il y a des mois est une sorte d'échec face à la complexité de l'implémentation. Le combat entre la fierté et la sagesse commence. Les développements sont donc suspendus en attendant que la réflexion murisse.