Next Previous Contents

8. The Example: Accounting Software

project fibu "Accounting Software" "1.0" 2002-01-16 2002-05-01 {
  now 2002-03-04
}

# The daily rate of all resources
rate 310.0
currency "EUR"

# This is one way to form teams
macro allocate_developers [
  allocate dev1
  allocate dev2 { load 0.5 }
  allocate dev3
]

resource dev "Developers" {
  resource dev1 "Paul Smith"
  resource dev2 "Larry Bono"
  resource dev3 "Klaus Mueller" { vacation 2002-02-01 - 2002-02-05 }
}
resource misc "The Others" {
  resource test "Peter Murphy" { maxeffort 0.8 rate 240.0 }
  resource doc "Dim Sung"
}

account dev "Development" cost {}
account doc "Dokumentation" cost {}
account rev "Payments" revenue {}

task AcSo "Accounting Software" {

  account dev

  task spec "Spezification" {
    effort 20d
    ${allocate_developers}
    depends !deliveries.start
  }

  task software "Software Development" {

    priority 1000

    task database "Database coupling" {
      effort 20d
      depends !!spec
      allocate dev1
      allocate dev2
    }

    task gui "Graphical User Interface" {
      effort 35d
      actualeffort 40d
      depends !database, !backend
      allocate dev2
      allocate dev3
    }

    task backend "Back-End Functions" {
      effort 30d
      complete 80 # This task is ahead of schedule.
      depends !database, !!spec
      allocate dev1
      allocate dev2
    }
    
  }

  task test "Software testing" {

    task alpha "Alpha Test" {
      effort 1w
      depends !!software
      allocate test
      allocate dev2
    }

    task beta "Beta Test" {
      effort 4w
      depends !alpha
      allocate test
      allocate dev1
    }
  }

  task manual "Manual" {
    effort 10w
    depends !deliveries.start
    allocate doc
    allocate dev3
    account doc
  }

  task deliveries "Ship to customer" {

    account rev

    task start "Projectstart" {
      milestone
      start 2002-01-16
      actualstart 2002-01-20
      startcredit 30000.0
    }

    task beta "Betaversion" {
      milestone
      depends !!test.alpha
      startcredit 10000.0
    }

    task done "Ship Product to customer" {
      milestone
# Uncomment this to trigger a warning that the project is late.
#      maxend 2002-04-17
      depends !!test.beta, !!manual
      startcredit 20000.0
    }
  }
}

htmltaskreport "AcSo-Overview.html" {
  columns no, name, start, end, weekly, effort
        headline "Accounting Software Project"
        caption "This table shows the load for each task on a weekly basis.
        All values are man-days. Additionally the resources used for each
        task are listed."
}

htmltaskreport "AcSo-Tasks.html" {
  columns no, name, start, end, daily
        headline "Accounting Software Project"
        caption "This table shows the load of each day for all the tasks.
        Additionally the resources used for each task are listed. Since the
        project start was delayed, the actual schedule differs significantly
        from the original plan."
  hideresource 0
  showactual
}

htmlresourcereport "AcSo-Resources.html" {
  columns no, name, weekly, effort
        end 2002-04-30
        loadunit hours
        headline "Weekly working hours for the Accounting Software Project"
}

htmlaccountreport "AcSo-Accounting.html" {
  columns no, name, total, monthly
        headline "P and L for the Accounting Software Project"
        caption "The table shows the profit and loss analysis as well as the
        cashflow situation of the Accounting Software Project."
  accumulate
  showactual
}


Next Previous Contents