Project 1 Reflection

This assignment gave me a bit of trouble. First, with the implementation of RedBlackTree because I have forgotten a lot about data structures. At first, I tried to just write tests without going into the class very much, because I thought it would be easy enough, and I thought I would remember enough. But I wasn’t able to get a lot of the functions/methods to work. It was only a few days before the deadline that I realized how much I had to review about RedBlackTree. The rotations after insertions required me to do many examples before I could understand the concept easily. Then, I had to figure out how to actually code the tests by instantiating the object correctly and adding the nodes. Then, all of a sudden, all my tests had NullPointerException when ran. I had to change the path of the java file to make resolve them.

When my team and I were reviewing the code I only accounted for the time commitment for tests on classes that I already understood. So I was learning and writing the tests at the same time which made it hard to focus on good testing practices.

Secondly, I think overall the time management could have been better on my end by starting earlier, that way it didn’t matter so much whether or not I completely understood the class.

Lastly, committing early and often would have made it easier for me to track my progress with my team. We ran into an issue where we weren’t sure how to handle merge conflicts because I believe only one person was ready to commit. More commits would have solved this problem and we would have been better poised to handle the merge commits.

Something that went really well was our communication. Everyone, aside from one student who dropped the class, almost always responded really fast. We used WhatsApp and I think it was the best choice for us. Personally, it was the best choice for me because it’s the only chat I have on WhatsApp. (I downloaded the app just for this team.) So the team messages weren’t getting lost in my other regular text messages, multiple discord servers, or various classes on Teams and Slack. So ultimately, it was easy for me to keep up with all team notifications. Teams was well suited for announcements and keeping track of/sharing files.