A small project starts by naming the work and keeping the expected task count visible.

Program

Play the script to choose a capstone focus and see the planned effort update.

project_index
project_scope_plan.R
Replay: real traced execution (multi-file project)
project_index <- 2
projects <- c("sales_report", "quality_check", "forecast_note")
task_counts <- c(3, 4, 5)
project <- projects[project_index]
tasks <- task_counts[project_index]
label <- paste(project, tasks, sep = ":")
cat(label, "\n", sep = "")
project_index <- 1
projects <- c("sales_report", "quality_check", "forecast_note")
task_counts <- c(3, 4, 5)
project <- projects[project_index]
tasks <- task_counts[project_index]
label <- paste(project, tasks, sep = ":")
cat(label, "\n", sep = "")
project_index <- 3
projects <- c("sales_report", "quality_check", "forecast_note")
task_counts <- c(3, 4, 5)
project <- projects[project_index]
tasks <- task_counts[project_index]
label <- paste(project, tasks, sep = ":")
cat(label, "\n", sep = "")
  1. project_index ← 2

    1project_index <- 22projects <- c("sales_report", "quality_check", "forecast_note")
    values this step2project_index
  2. projects ← sales_report, quality_check, forecast_note

    1project_index <- 22projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)
    values this stepsales_report, quality_check, forecast_noteprojects
  3. task_counts ← 3, 4, 5

    2projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)4project <- projects[project_index]
    values this step3, 4, 5task_counts
  4. project ← quality_check

    3task_counts <- c(3, 4, 5)4project <- projects[project_index]5tasks <- task_counts[project_index]
    values this stepquality_checkproject2project_index
  5. tasks ← 4

    4project <- projects[project_index]5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")
    values this step4tasks2project_index3, 4, 5task_counts
  6. label ← quality_check:4

    5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    values this stepquality_check:4labelquality_checkproject4tasks
  7. cat(label, " ", sep = "")

    6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    outputquality_check:4
    values this stepquality_check:4label
  1. project_index ← 1

    1project_index <- 12projects <- c("sales_report", "quality_check", "forecast_note")
    values this step1project_index
  2. projects ← sales_report, quality_check, forecast_note

    1project_index <- 12projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)
    values this stepsales_report, quality_check, forecast_noteprojects
  3. task_counts ← 3, 4, 5

    2projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)4project <- projects[project_index]
    values this step3, 4, 5task_counts
  4. project ← sales_report

    3task_counts <- c(3, 4, 5)4project <- projects[project_index]5tasks <- task_counts[project_index]
    values this stepsales_reportproject1project_index
  5. tasks ← 3

    4project <- projects[project_index]5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")
    values this step3tasks1project_index3, 4, 5task_counts
  6. label ← sales_report:3

    5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    values this stepsales_report:3labelsales_reportproject3tasks
  7. cat(label, " ", sep = "")

    6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    outputsales_report:3
    values this stepsales_report:3label
  1. project_index ← 3

    1project_index <- 32projects <- c("sales_report", "quality_check", "forecast_note")
    values this step3project_index
  2. projects ← sales_report, quality_check, forecast_note

    1project_index <- 32projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)
    values this stepsales_report, quality_check, forecast_noteprojects
  3. task_counts ← 3, 4, 5

    2projects <- c("sales_report", "quality_check", "forecast_note")3task_counts <- c(3, 4, 5)4project <- projects[project_index]
    values this step3, 4, 5task_counts
  4. project ← forecast_note

    3task_counts <- c(3, 4, 5)4project <- projects[project_index]5tasks <- task_counts[project_index]
    values this stepforecast_noteproject3project_index
  5. tasks ← 5

    4project <- projects[project_index]5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")
    values this step5tasks3project_index3, 4, 5task_counts
  6. label ← forecast_note:5

    5tasks <- task_counts[project_index]6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    values this stepforecast_note:5labelforecast_noteproject5tasks
  7. cat(label, " ", sep = "")

    6label <- paste(project, tasks, sep = ":")7cat(label, "\n", sep = "")
    outputforecast_note:5
    values this stepforecast_note:5label
project scope The selected project name states the focus of the mini project.
task count A small numeric estimate keeps the project bounded.
capstone label The final label combines focus and effort into one reviewable value.