project quicker "Quicker" "1.0" 2008-04-02 - 2009-02-01


resource desktop "Desktop developers" {
  limits {
    weeklymax 4d
  }
  resource psmaas "Patricia Aas"
  resource arjanl "Arjan van Leeuwen"
  resource pav "Per Arne Vollan"
  resource adamm "Adam Minchinton"
  resource alexeyf "Alexey Feldgendler"
  resource espen "Espen Sand"
  resource julienp "Julien Picalausa"
  resource pettern "Petter Nilssen"
  resource anders "Anders Markussen"
  resource huibk "Huib Kleinhout"
  resource alexr "Alex Remen"
  resource manuelah "Manuela Hutter"
  resource axel "Axel Siebert"
  resource martino "Martin O"
  resource rfz "George Refseth"
}

resource core "Core developers" {
  limits {
    weeklymax 1d
  }

  resource mstensho "Morten Stenshorne" {
    limits {
      weeklymax 10h
    }
  }
}

task quicker "Quicker" {
  start 2008-05-01

  task improve_apis "Improve APIs" {

    task determine_core_api "Determine Core API requirements" {
      effort 20d
      allocate psmaas
      allocate arjanl
      allocate mstensho
      depends !!cooperation.coreworkgroup
    }

    task implement_core_api "Implement core API changes" {
      allocate core
      effort 10d
      depends !determine_core_api,!!cooperation.customerrelationship
    }

    task determine_pi "Determine Platform Interface requirements" {
      effort 6d
      allocate psmaas
      allocate arjanl
      allocate mstensho
    }

    task implement_pi "Implement Platform Interface" {
      effort 20d
      allocate core
      allocate julienp
      allocate alexeyf
      allocate anders
      depends !determine_pi,!!cooperation.customerrelationship,!!coding_standards.coding_standards_doc
    }

    task determine_product_api "Determine product API requirements" {
      effort 8d
      allocate rfz
      allocate julienp
      allocate pav
    }
  }

  task coding_standards "Create coding standards and tools" {

    task coding_standards_doc "Create coding standards document" {
      effort 20d
      allocate psmaas
      allocate arjanl
    }

    task coding_standards_compliance "Create coding standards compliance tests" {
      effort 60d
      allocate julienp
      allocate anders
      allocate alexeyf
      depends !coding_standards_doc
    }
  }

  task refactor "Refactor and improve existing code" {

    task determine_quick_func "Determine current Quick functionality" {
      effort 40d
      allocate psmaas
      allocate arjanl
    }

    task highlevel_design "Write high-level design document for new quick" {
      effort 20d
      allocate psmaas
      allocate arjanl
      depends !determine_ui,!document_changes
    }

    task determine_ui "Determine best way to create UI and extensions" {
      effort 100d
      allocate huibk
      allocate adamm
      allocate alexr
      allocate psmaas
      allocate arjanl
    }

    task document_changes "Document needed changes in quick" {
      effort 60d
      allocate adamm
      allocate psmaas
      allocate arjanl
      depends !determine_quick_func
    }

    task rework_quick "Rework Quick" {
      effort 100d
      allocate arjanl
      allocate psmaas
      depends !highlevel_design,!!improve_apis.determine_product_api,!!improve_apis.implement_pi,!!improve_apis.implement_core_api,!!coding_standards.coding_standards_doc
    }

    task quick_selftests "Write Quick selftests" {
      effort 60d
      allocate psmaas
      allocate anders
      allocate arjanl
      depends !determine_quick_func
    }
  }

  task new_employees "Make new employees productive fast" {

    task introductory_training "Create introductory training program" {
      effort 30d
      allocate psmaas
      allocate arjanl
      allocate manuelah
      depends !!coding_standards.coding_standards_doc
    }

    task advanced_training "Create advanced training program" {
      allocate arjanl
      allocate psmaas
      depends !introductory_training
    }
  }

  task automated_performance_tests "Create automated performance tests" {
    effort 40d
    allocate pettern
    allocate alexeyf
    allocate martino
  }

  task performance_tests_in_selftest "Integrate performance tests in selftests" {
    effort 10d
    allocate anders
    allocate alexeyf
    allocate martino
    depends !automated_performance_tests,!refactor.quick_selftests
  }

  task cooperation "Improve (inter-department) cooperation" {

    task architecture_b2c "Create Architecture Group B2C" {
      effort 6d
      allocate huibk
    }

    task peer_review "Setup organized peer review program" {
      effort 6d
      allocate psmaas
      allocate arjanl
    }

    task coreworkgroup "Create core-desktop workgroup" {
      effort 2d
      allocate core
      allocate psmaas
      allocate huibk
    }

    task customerrelationship "Establish a customer relationship with core"
  }

  task memory_test "Create memory usage testing software" {
    effort 10d
    allocate alexeyf
    allocate martino
  }

  task integrate_inspector "Integrage inspector into Opera" {
    effort 60d
    allocate axel
    allocate alexeyf
  }
}

taskreport "Gantt Chart" {
  headline "Project Code Quicker"
  columns hierarchindex, name, start, end, effort, duration, chart
  timeformat "%Y-%m-%d"
  loadunit days
  hideresource 1
}

# This report looks like a regular calendar that shows the tasks by
# their dates.
htmlweeklycalendar "Calendar.html" {
}

# This report is a status report for the current week. It also
# provides an outlook for the next week.
htmlstatusreport "Status-Report.html" {
}
