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.
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.
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):
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):
Your estimate will surely be wrong! But it’s useful for planning and managing your progress.
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).
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:
Requirement Analysis: Analyzing the specific requirements associated with the task to gain a deep understanding of what needs to be accomplished.
Design Planning: Planning the design and approach for implementing the requirements, including breaking down the task into smaller subtasks if necessary.
Research: Conducting research to gather information, find solutions, or explore best practices relevant to the task at hand.
Prototyping: Creating prototypes or mockups to visualize and validate design ideas before implementing them in code.
Collaboration and Communication: Collaborating with team members, stakeholders, or subject matter experts to discuss the requirements, clarify ambiguities, and gather feedback.
Documentation: Documenting the design decisions, implementation details, and any other relevant information related to the task.
Testing Planning: Planning the testing approach for verifying the correctness and quality of the implemented solution.
Task Tracking and Reporting: Tracking the progress of the task, updating task status, and providing regular updates or reports to stakeholders.
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.
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.
Each team member must write a technical essay addressing the following questions with specific examples and details:
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.