web-dev-qa-db-fra.com

Comment ajouter des dépendances entre les tâches d'une liste

J'ai une liste de tâches qui peuvent dépendre les unes des autres, par exemple la tâche n ° 2 ne peut pas commencer tant que la tâche n ° 1 n'est pas terminée.

Dans les schémas, cela pourrait ressembler à ceci

Id  | Dependency
----+-----------
 #1 |  - 
 #2 | #1         // #2 cannot begin before #1 is completed
 #3 |  -
 #4 | #2, #3     // #4 cannot begin before both #2 and #3 are completed
 #5 | #1, #3     // #5 cannot begin before both #1 and #3 are completed

Une tâche peut dépendre de plusieurs autres tâches et de nombreuses tâches peuvent dépendre de la même tâche. Il ne peut pas y avoir de dépendances cycliques.

J'ai besoin de créer une interface utilisateur où l'utilisateur peut ajouter des tâches à sa liste et configurer les dépendances entre les tâches elle-même.

Ma première pensée a été d'avoir une table comme ça:

enter image description here

Mais ce n'est pas très facile à regarder pour un utilisateur peu technique et cela ne permet pas de visualiser très bien les relations entre les tâches.

Ma prochaine pensée était d'avoir une sorte de liste hiérarchique de glisser-déposer

enter image description here

mais je ne peux pas comprendre comment représenter une tâche dépendant de plusieurs tâches (par exemple, si la tâche 4 dépend à la fois de la tâche 2 et de la tâche 3 mais que ces deux sont indépendantes l'une de l'autre). De plus, si toutes les tâches dépendent de la tâche précédente, cela se traduirait par une liste en retrait assez longue.

J'ai aussi pensé à le visualiser sous forme de diagramme de Gantt, mais c'est tout aussi technique que la solution de table.

Quelqu'un at-il des idées sur la façon de résoudre cette tâche de manière conviviale?

5
Daniel

1. C'est un problème bien rodé

  • Les concepteurs numériques ont été aux prises avec ce problème depuis que les applications de planification, de gestion de projet et de planification de la fabrication ont été écrites dans les années 80.

2. La représentation graphique n'est pas triviale

  • Lorsque vous avez plusieurs dépendances arbitraires, il devient très difficile d'afficher graphiquement les dépendances. Un exemple simple (> représente une dépendance):

    1. UNE > B > C > ... > Z
    2. C, D > F et A, B > E
  • Simplifiez-vous automatiquement les dépendances (# 2 peut être éliminé en toute sécurité puisque # 1 assure automatiquement # 2)?
    Les montrez-vous tous (auquel cas vous aurez plusieurs lignes qui se chevauchent dans votre mise en page, ce qui peut être très déroutant)

  • Conclusion: si vous voulez vraiment faire quelque chose de graphique, soyez prêt à investir beaucoup de temps et d'efforts pour le faire.

. La représentation du texte est plus facile à construire, plus difficile à obtenir correctement

  • Si possible, essayez de supprimer le libellé numérique des étapes. Ce n'est souvent pas possible, mais pour illustrer, lequel d'entre eux est plus facile à comprendre:

    • Fouetter les œufs, préparer la vinaigrette > Mélanger la salade
    • 1, # 23 > # 6

  • Les dépendances de codage couleur peuvent aider s'il n'y en a pas trop. Vous pouvez également utiliser la couleur au survol ou au clic pour afficher les dépendances. enter image description here

  • Certaines applications (par exemple Excel, ILOG) ont utilisé des flèches ou des barres d'outils contextuelles pour aider les utilisateurs à naviguer vers les dépendances s'il y a beaucoup de lignes dans le tableau.


4. Assurez-vous que le développeur de votre application sait ce qu'il fait

  • Avec des dépendances arbitraires, il est très facile d'obtenir des références circulaires, et il est également très facile de rendre les dépendances orphelines lorsque des activités sont supprimées du flux de travail.
4
tohster

Dans votre exemple, au lieu d'afficher les tâches 2 et 3 verticalement, vous pouvez les afficher côte à côte, en plus d'une représentation d'organigramme, et ils se connectent tous les deux indépendamment à la tâche 4.

Cela peut devenir lourd en fonction du nombre de tâches que vous visualisez. Il faudra peut-être plus d'indices, comme la forme et la couleur, pour aider à organiser un large éventail de tâches.

0
Voxwoman

J'inverserais probablement l'ordre des colonnes dans votre premier tableau et peut-être même les appeller Prérequis - les choses qui sont nécessaires avant de faire cette tâche.

Quelque chose comme ça...

enter image description here

0
DaveAlger