Effort Estimation

10 May 2024

Introduction

Over the course of the ICS 314 Final Project, effort estimation made me a better coder due to two main things. These are ensuring that I can manage my time effectively, and improving my organizational skills. These two things allowed me to grow not only as a software engineer, but as a student as a whole. This is because it reinforced habits in me that can stick with me through my other classes, and don’t just apply to software engineering.

Time Management

Firstly, estimating my efforts let me ensure that I can manage time effectively. This let me better utilize the time that I had to work on the project. Predicting time was not always easy for me, but I was able to predict roughly however much time tasks would take. Something I noticed was that I would run into roadblocks with some features, causing me to massively underestimate the time needed to complete them. Even though this happened multiple times, I still found the estimates to be generally accurate, and I improved on my estimation skills over the course of the project’s lifespan. Later in the project, I also tended to overestimate rather than underestimate my predicted times. I think that this was a good thing, as it made sure that my estimations would never cause me to work longer than I thought. This ensured that I would not end up in a time crunch if I planned my times correctly.

Organizational Skills

Another benefit of effort estimation is that it improved my organizational skills as a whole. Making sure that I kept track of time made it easier for me to predict times in the future. Also, creating time estimates allowed me to fit project work into my schedule, which was convenient for me, and also reinforced organization in my schedule. In the beginning, recording my time also made me come to the realization that I was spending a lot more time than predicted on features. This allowed me to gain a more realistic expectation of my time management throughout the project, and also with other assignments not related to the project. This indirectly helped me manage my time better, and I think it was very beneficial to try and keep up with it throughout the entire project. Estimating time for others also improved my organizational skills, because I had to take into account what skills they were best at and what other workloads they had at the time.

Conclusion

Overall, I think that the time estimation was of great benefit to me and helped me develop better time management and organizational skills. I think that I should attempt to also do time estimation for other classes, to further improve at this. Also, it will help me in the future when coding for companies and businesses, because I would be able to provide a roughly accurate timeframe and schedule of when things can realistically be finished. Throughout the project, working with my group members and estimating time for them was also an insightful experience because judging by how long they took for certain features, I was able to tell where their strengths and weaknesses lie. In the future, I plan to use time estimation more and more, especially for big projects because it will help me develop crucial skills that I will need later when searching for a job