3

I would like to create tasks and indicate their dependencies. Lots of software does this but I would like it to only allow a task to be marked as complete when all its dependencies are also marked as complete.

This seems a really basic need but MS Project doesn’t do it and neither does any other software, as far as I can tell. One partial solution in Project is to use headings and put subtasks within, but that constrains you to categorising work in one particular way. One task might be dependent on tasks from different categories.

How do others get round this limitation? Are there any pieces of software that can do it? (For my particular need right now, even a simple to-do list without resourcing and dates would be fine.)

3
  • 2
    You could take a look at trello.com – Danny Schoemann Feb 29 '16 at 12:16
  • Are you saying it definitely offers such functionality? Our team has actually been experimenting with Trello but I don’t believe it allows tasks (or cards or boards in Trello speak) to be linked together. webapps.stackexchange.com/questions/21444/… seems to back this up. – user535673 Feb 29 '16 at 20:27
  • That what their web site seemed to say; I used it only briefly, a while ago. – Danny Schoemann Mar 1 '16 at 8:28
1

The only way I can think of is with a manual process of checking the logical paths. Use these macros to display the paths:


Public Sub TraceMaster_Predecessor()
    Trace_Clean
    TraceMaster "predecessor"
    Trace_Display
End Sub
Public Sub TraceMaster_Successor()
    Trace_Clean
    TraceMaster "successor"
    Trace_Display
End Sub
Public Sub TraceMaster_Both()
    Trace_Clean
    TraceMaster "predecessor"
    TraceMaster "successor"
    Trace_Display
End Sub
Private Sub TraceMaster(logic As String)
'Traces the logic path

    On Error GoTo EmergencyExit
    Dim task1 As Task

    If logic = "predecessor" Then
        For Each task1 In ActiveSelection.Tasks
            TracePredecessors task1
        Next task1
    ElseIf logic = "successor" Then
        For Each task1 In ActiveSelection.Tasks
            TraceSuccessors task1
        Next task1
    End If
Exit Sub
EmergencyExit:
    HandlingErrors
End Sub
Private Sub TracePredecessors(task1 As Task)
    Dim task2 As Task
    task1.Flag5 = True

    For Each task2 In task1.PredecessorTasks
        If task2.Flag5 = False Then
            TracePredecessors task2
        End If
    Next task2
End Sub
Private Sub TraceSuccessors(task1 As Task)
    Dim task2 As Task
    task1.Flag5 = True

    For Each task2 In task1.SuccessorTasks
        If task2.Flag5 = False Then
            TraceSuccessors task2
        End If
    Next task2
End Sub
Private Sub Trace_Clean()
    Dim task1 As Task
    For Each task1 In ActiveProject.Tasks
        If task1.Flag5 = True Then task1.Flag5 = False
    Next task1
End Sub
Private Sub Trace_Display()
    FilterEdit Name:="Flag5 - GF", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Flag5", test:="equals", Value:="Yes", ShowInMenu:=False, _
        ShowSummaryTasks:=True
    FilterApply Name:="Flag5 - GF"
End Sub
Private Sub HandlingErrors()
    Select Case Err.Number
        Case 91
            MsgBox "The first row you've selected is missing a task name.", vbCritical
        Case 424
            MsgBox "The row you've selected may be missing a task name.", vbCritical
        Case 1100
            MsgBox "This view and table combination doesn't have Outlines available. Try going to " & _
                        "View >> Data Group: Outline. If Outline is grayed out, try clicking on the task name." & _
                        vbNewLine & vbNewLine & "This error usually happens when the timeline or details pane is selected.", _
                    vbCritical, "Oops! Outline is Unavailable"
        Case 1101
            MsgBox "Try using this macro on the Task Sheet view." & vbNewLine & vbNewLine & _
                "Error#" & Str(Err.Number) & " - " & Err.Description, vbCritical, "Invalid View"
        Case Else
            MsgBox "Error#" & Str(Err.Number) & " - " & Err.Description & vbNewLine _
                    & "Line: " & Erl & vbNewLine _
                    , vbCritical
    End Select
End Sub
1

If you are working in an Agile environment then JIRA offers this level of functionality through the use of user stories (Issues) and Sub Tasks.

The main story cannot be marked as complete until all dependent sub-tasks have also been marked as completed.

If you are Sprinting then the entire collection of tasks will be returned to the backlog until the individual sub-tasks are completed.

If you require the sub-tasks to become stories in their own right then you can convert them into standalone, independent stories and which will remove the sub-task/dependency from the original story.

It's not perfect but it's flexible and it works for most teams.

Note: Software reccomendations are off-topic for SE so don't take this answer as an endorsement of JIRA. It's merely one way of solving your stated problem.

0

In ]project-open[ for example you could actually create a check-constraint or trigger in the database to enforce such a behavior. Disclaimer: I'm part of the project-open team.

1
  • Thanks, that’s useful to know. We’re considering the best way for the business to do its scheduling at the moment and that includes looking at software, so this is one to add to the list. PS On your homepage it says you have “40000 user”, not “40000 users”. – user535673 Mar 10 '16 at 12:57
0

Quite a lot of PM software can do it, I suppose.

E.g. Redmine do it with "Blocks" and "Blocked by" relation.

JIRA do it in another way, as mentioned @Venture2099.

I advice you to choose several popular software/services and check them for compliance with your needs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.