Effort estimation and tracking are critical aspects of project management in software development. During the ICS 314 final project, I, along with four peers, tackled these challenges with varying degrees of success. This essay explores how we made effort estimates, the benefits of these estimates, and our method for tracking effort.
Effort estimates were primarily based on experience, complexity, and familiarity with the task. Each team member used their software development experience to approximate the time required for the work item they were assigned. For instance, I estimated that implementing a club gallery would take 240 minutes. Based on my experience, this was a reasonable estimate, so I considered it a “deadline” similar to the WODs (timed assignments) we had in class. Hence, I approached the work item/issue with that mindset and completed it on time. I believe other team members had a similar approach due to the WOD mentality developed earlier in the course.
Estimates also accounted for learning curves. For example, whenever I had tasks involving unfamiliar areas, such as enhancing the UX (Issue #58), I included a buffer time for experimentation.
Our estimates were mostly accurate given that we were familiar with the web application infrastructure, as the course provided extensive practice on a boilerplate Next.js template, making us very comfortable with it. In terms of benefits:
Prioritization: Creating issues and estimates helped us identify tasks that would take more time than others, allowing us to prioritize better.
Resource Allocation: Based on the estimates, we were able to parallelize tasks effectively and ensure no team member had to carry an excessive workload, maintaining balance.
Yes, tracking actual effort was immensely beneficial, as it enhanced our technical planning, especially in enabling us to confidently say we could finish X features by the Milestone Y deadline.
Nonetheless, I believe estimation somewhat aligns with Elon Musk’s quote: “If you give yourself 30 days to clean your room, it will take you 30 days. But if you give yourself three hours, it will take three hours.” I think this was true for our effort estimation. Therefore, it would be beneficial to have open discussions with multiple people to come up with estimates, as this could help us avoid consistently leaning toward the “30 days” scenario in Musk’s quote.
Effort tracking was done manually, using Discord to document time spent on specific tasks.
In retrospect, using tracking tools such as WakaTime could have provided more accuracy.
The accuracy of our effort tracking was moderate. Given that estimates were tracked manually, the closest few minutes were recorded. Overall, I think my tasks had a 0-10 minute error rate, attributable to minor interruptions when working on tasks.
Effort estimation and tracking are indispensable for effective project management, even when estimates are slightly off. Our experience showed that making effort estimates helped prioritize and allocate resources effectively. This activity allowed me to gain valuable insights into software development practices, ultimately enhancing the quality and efficiency of our work.