For some reason, I was expecting ICS 414 to be structured similarly to 314. When we were informed that it was a semester-long project, I severely underestimated how much
time and prior knowledge would be needed to perform better by contributing more than I did in the end. I lacked the oversight of decided to withdraw from the course in a
timely manner, and opted to ride out the rest of the year in hopes that I’d somehow find a stroke of genius and inspiration in time to meet the latter deadlines. Although
this didn’t exactly happen, here are some of the most invaluable lessons I learned throughout the process:
This semester, I was first placed in a group of about 5-7 students. It whittled down to 6, then 5, and was eventually disbanded when only 4 made it to the first in-person
milestone. I much preferred that group’s synergy and size to my final one. By the time my first group was dismantled and redistributed to the remaining larger groups, it
was already week 2-3+ and my next group’s pace was challenging to match for someone lacking the context of initial work and planning completed before the first milestone.
There were definitely moments with this team throughout the semester where I wondered if we could have chosen less complex architectures or ideas for our project, while
still meeting the requests of the customer. However, due to the momentum and seemingly sure-footedness of the group, I chose not to interfere with existing plans and
tangents but instead opted to wait until I could reach an opening and work on a section that had less entanglement with other files and was simpler for me to understand.
I guess this resulted in the appearance of me doing less, as I was often hesitant to open pull requests until I was more confident in the functionality of the issues I
signed up for. This was probably because I didn’t want to push something with a ton of bugs and create more work for those reviewing my submissions. I learned that I
should probably just go for it next time, and let people see what I did even if it’s not perfect. A bunch of mistakes nonprod is probably still better than nothing.
I had to restart at least of my issues due to messing up and losing track in the merge editor, where I accidentally saved the changes and completed the merge at the wrong
step so the branch only worked like it was half done. If I had half a mind to put more time into the last one I worked on, I would’ve reverted majority of the commits I
made but at that point I was so done. Nothing more frustrating than poorly keeping track of your edits/progress when trying to do a merge, and then the whole issue’s work
has gone down the tube depending on how severe my mistakes were. I couldn’t remember what I intended to keep/change, so the frankencode branch obviously didn’t work once the merge was completing. Utterly devastating, but I survived the semester(?) , right..?
I sure didn’t write the calls for any of the sections involving the database. But after rereading code multiple times over and inspecting where it was implemented, I will
be ending this semester with a better understanding of APIs than I started. This was another section I faced my own lostness in, due to having minimal exposure or experiences in other courses or lacking the practice of recreational development in my spare time. I found it easier to understand the implementations than creating the
initial routing file, but I’ll likely see this again in the future and require understanding of how to use APIs in projects like this one.
Because I at last reached a point of dissatisfaction with my confusion and personal failures to retain information from previous courses, after many years I recently connected
with an unnamed department in the school and have begun to receive support in time management and learning more effective study methods. I only wish I had done this sooner (2-3 years earlier) so I could have had a smoother run in classes like Software Engineering II, but better now than never I guess? Thanks to this humbling
experience, the importance of preventing procrastination and contacting someone as soon as I need help is moreso on my radar of revolving mental topics than it’s been.
Avoiding procrastination used to be a vague concept I would brush aside, but taking graduation more seriously than before has forced me to address some ongoing issues with my approaches to coursework.