57B: Experience IDPM Effort Estimation and Tracking

You should have done the Reading on IDPM Effort Estimation before starting this Experience. The objective of this Experience is to set up and perform effort estimation to help manage your project. You will use the GitHub project board to track your effort and report at each project milestone. At the end of the project, you will report on your exprience on performing effort estimation and tracking. You get credit for providing high-quality data and how you used this date to manage your project. You will not be graded on the accuracy of your estimates or actual effort expended. You should be truthful about your effort and misestimates are expected and a normal part of the process. However, you will be graded on the quality of your data collection (i.e. not making stuff up) and the quality of your reporting.

Set up your GitHub project board for effort estimation

For each project milestone project board M1,M2,M3, add Estimated Effort (hours) as number, Estimator as text, Coding Effort (hours), Non-Coding Effort (hours) as number as number fields to your GitHub project issues board. See the GitHub documentation for how to add custom fields to your project board.

Estimating and Tracking your project effort

Initial Estimate

When you add an issue to your project milestone board, give an estimate of total effort (in time not schedule) that it will take to address the issue. Add this estimate and who estimated it to the issue description on your project board as illustrated below (click to enlarge):

Click to enlarge

Use whatever basis for estimating you believe is best. You do not need to justify your estimate, but you should have some idea of how you came up with estimate e.g. “This issue is similar to issue #1 which took 3 hours to address.” Add this as a comment to the issue as illustrated below (click to enlarge):

Click to enlarge

Your estimate will surely be wrong! But it’s useful for planning and managing your progress.

Tracking Coding Effort

When you (or anyone) works on the issue, update the Actual Effort field with the actual effort expended on the issue to this point. Carefully track the effort spent on the issue and update this field when you update the status of this issue!

When the issue is completed i.e. status is changed to “Done”, add the final total amount of effort expended on the issue.

You may find adding a timer extension for VSCode such as WakaTime helpful in tracking your actual coding effort (search VSCode extensions for more options). However, any method you use to track your effort is acceptable so long as you can provide a reasonable accounting of your time spend coding (i.e. it does not mistakenly include breaks or other time you are not actually working on code).

Tracking Non-Coding Effort

When working on a particular issue within a software development project, non-coding tasks can include various activities that support the implementation and completion of that issue. Some examples of non-coding tasks when working on a particular issue include:

It can be difficult to accurately track non-coding effort. A simple method is to note in the comments for your issue the start-time and stop-time that when performing any of the above activities. If this is too cumbersome, you can keep a file open in your VSCode project or perhaps a spreadsheet to record this information. You may also find it helpful to use a time tracking tool such as Toggl to track your non-coding effort. Whatever method you use, you should be able to provide a reasonable accounting of your time spent on non-coding tasks. Avoid just using your “best guess” for non-coding effort.

Your effort estimates and tracking will be assessed in your project board with each milestone. There is no need to submit anything individually until the end of the project.

IMPORTANT: Accuratly accounting for AI assistance

If you or your team uses AI tools (LLMs, Copilot-style assistants, code-generation, etc.) during implementation, you must try to accurately record AI use for coding versus non-coding effort. The following should counted as coding effort:

When using copilot within VSCode the timer should capture these. However, if you use AI outside of copilot in VSCode you will need to manually account for the coding effort done outside VSCode.

When using AI for non-coding tasks such as documentation, design analysis, learning/tutorial, meetings, etc. you will need to account for this manually as you would for non-coding effort without AI.

Note: Please understand that the reporting of AI assistance will not prejudice or penalize you in any way. It is expected (and encouraged) for you to utilize AI in the development of your application. AI use had rapidly become integral to software development. Unfortunately, we do not fully understand its impact on productivity (ie. effort) and quality. Therefore the best we can do is to monitor its use and adjust our management accordingly. This is why we ask you to be especially considerate of use of AI when managing your effort on the project.

Wrapping Up

At the conclusion of Milestone 3 you will complete this experience with the following:

Prepare a High-Quality Project Effort Report

Your team must prepare a spreadsheet reporting the estimates and actual effort expended on each issue. The spreadsheet should have the following columns:

Create a spreadsheet with the following columns:

Issue # Summary of tasks Estiamte (mins) Coding Effort (mins) Non-Coding Effort (mins) Estimator Implementors
1 Creating the Login Page 30 40 40 Joe Schmoe Joe Schmoe
2 Set up the Requirements for Login Page 60 96 60 Jerry Springer Annie Hu
3 Creating the Registration Page 30 30 0 Joe Schmoe Annie Hu
4 Email validation 40 57 15 Jane Doe Annie Hu, Joe Schmoe
5 Password validation & confirmation 30 23 0 Jane Doe Annie Hu
6 Full name validation 30 12 0 Jerry Springer Jerry Springer
7 Viewing and editing registration data 90 16 55 Joe Schmoe Annie Hu

Add a new worksheet to the spreadsheet reporting the total development experience for each team member as exemplified below:

Team Member Software Development Experience (months)  How was coding effort tracked How was non-coding effort tracked?
Jane Doe 36 WakaTime recorded start time and end time
Jerry Springer 26 WakaTime Google Timer
Joe Schmoe 13 WakaTime Best guess

Put this spreadsheet in your project repo and post a link to it on the #effort-estimation channel on Discord.

NOTE: full credit will only be given for providing high-quality data. Do not make up your actual effort data as it will throw off your management! We have a way to check if actual effort data was made up. While technically your effort estimates are “made up”, they should be based on your best guess from your understanding of the task and your experience with the kind of work involved. Do not simply put down random numbers! We have a way of checking for this too!

Reflect on Effort Estimation

Each team member must write a technical essay addressing the following questions with specific examples and details. If you used any AI assistance for effort estimation and tracking, answer the AI-specific questions as well.

Technical Essay Instructions

  1. How did you make your effort estimates? Explain your basis and any historical data you used.
  2. Even though your estimates were often off, did estimating in advance provide any benefit? Provide examples.
  3. Was tracking actual effort useful? If so, how did it inform future estimates or project decisions?
  4. How did you track your actual effort (tools, method)? How accurate do you believe your tracking was?
  5. Reflection: what would you change about your estimation or tracking process next time?
  6. AI use (if applicable): Did you use AI tools for estimating or tracking effort? For each AI tool used, provide:
    • Tool name/provider and model/version.
    • Exact prompts or representative prompt iterations (redact secrets).
    • Time spent on prompt engineering, generation, and verification (break out minutes per bucket).
    • What portions of the responses were accepted as-is, and what required manual edits or correction?

Submission Instructions

There are two Lamaku submissions for this experience, one group submission report and one individual essay submission.

Effort Estimation Group Report Submission

In the Lamaku assignment for the group report, one team member should submit:

If a team member did not participate in effort estimation and tracking, they will not receive credit for this assignment.

Effort Estimation Technical Essay Submission

Each team member must post a link to their essay to the #effort-estimation channel on Discord. Do not delete this essay as part of your final exam experience.

In the Lamaku assignment for the effort estimation essay, each team member should submit: