When I first saw the ICS 414 course and registered for it, I was assuming that the semester would be similar to what ICS 314 would be when I took it a year ago. That assumption was partly wrong. It was partly wrong because during 314, there was a lot of trying to understand and learn what to use for the project towards the end of the course. For 414, you essentially go straight to the project and work on it for the entire semester with a slightly bigger team than you had in 314. Though my assumption coming into this was slightly wrong, it was not necessarily a bad thing I would say. It definitely caught me a bit off guard, but I was also interested in the idea of just working on a semester long project. Besides the assumption that 414 was going to be similar to 314, I was surprised that the project would be coming from a customer or client. I did not expect this at all, but I also found it interesting as well on how the process may look like.
After figuring out what was expected for this course and getting to know the other students I will be working together as a team for the rest of the semester, I thought the course should fairly be smooth sailing. For some parts, it was, for other parts, it was not. When first starting on the project, getting most of the sketches and ideas of what the website will have was not too bad. Afterwards, doing the actual coding and setup for the site was also smooth sailing for the most part. Once all that setup and layout was made for the site, this is where it was not smooth sailing. Once you start to have different team members start needing to work with multiple files to get what they are working on to work, there were merge conflicts. Not only merge conflicts, small changes to some important files that can be used for another issue can affect someone else’s issue that may be using those same files. Another problem came where some implementations would take a while and took some of us much longer to work on than expected, slowing down the progress of the project. This particular problem can be very big when you do procrastinate for a week or longer. In my experience, I would sometimes hold off on working on an issue for a week or two and try to cram the issues I got into a few days. This led to long days of working on the project whenever a problem or implementation got me stuck and required a lot more time than expected. This was especially obvious during the last milestone for the project where you can tell everyone was commiting a lot and asking a lot of questions about certain problems or implementations.
After all that has been done, at the end of the semester I think that this was a learning experience that I thought I would have not experienced from this class. The experience comes from the problems that were encountered during the process of working on the project throughout the semester as well as working with a client. Communication, organization, and teamwork was a key part of what I have learned from this semester I believe. I never really worked on a project this big that was at this length with a team. As for working with a client, it was a learning experience in the sense of how to communicate and understand what the client wants and explain what can be done without confusing them with programming jargon. Not only that, it was a learning experience where the client may ask for extra things when working on a project, which will add on to the workload for the team, so you would need to identify key things to work on over other things. After all of that being said, I really enjoyed this course more than I thought I would, as well as having an interesting learning experience I did not have anywhere else yet and hopefully will help me in the future!