EC: 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. At the end of the project, you will report on your effort estimation and tracking. You will get extra credit for providing high-quality data. This report will be used for a study on error in effort estimation by novice software engineers. You will not be graded on the accuracy of your estimates or actual effort expended, but you will be graded on the quality of your data and your report.

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.

Submission instructions

At the end of the project, prepare a spreadheet reporting the estimates and acual 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

Have one team-member submit this spreadsheet to the effort estimation assignment on Laulima.

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 our research! We have a way to check if actual effort data was made up.

In addition to the spreadsheet, provide links to all team members effort estimation technical essays (see below) here. The extra credit will only be given to team members who essay links are listed in the submission. If a team member did not participate in effort estimation and tracking, they will not receive the extra credit.

You will also be asked to submit a consent form to use your data for research purposes. This form will be made available on the Laulima assignment at the end of the semester.

One team member that did effort estimation and tracking must post their team estimates and actuals spreadsheet to Laulima on the effort estimation assignment and to the #effort-estimation-xc channel on Discord.

Technical essay instructions:

Each team member must write a technical essay addressing the following questions with specific examples and details:

  1. How did you make your effort estimates?
  2. Even though your estimates were always off, sometimes way off, was there any benefit from making effort estimates for the issues in advance? If so, what benefits? If not, why not?
  3. Was there any benefit for tracking the actual effort expended on the issues? If so, what benefits? If not, why not?
  4. How did you track your actual effort? How accurate do you believe your tracking was?

Each team member that did effort estimation and tracking must post a link to their essay on Laulima on the effort estimation assignment and to the #effort-estimation-xc channel on Discord.

In addition to posting the technical essay link to the Laulima assignment, you must also submit a consent form to use your data for research purposes. This form will be made available on the Laulima assignment at the end of the semester.