Working on this most recent team project has opened my eyes to how differently programmers think and work. I have worked on a number of group projects in the past, but for some reason this project has been especially varied. This could possibly be because it has very open-ended requirements and involves a much higher level of creativity than anything I have previously worked on.
Firstly, each group member has a different perspective on how the code should be organized. Multiple folders, multiple files, which functions are relevant to which module, etc. Especially when graphics are involved and each object has both a functional and aesthetic component, it can be difficult to draw the line where one module ends and another begins. In other graphic-oriented projects it was easy for me to make these distinctions and decisions on my own, but this time around it is apparent that the concept of ‘what makes sense’ is very subjective even when abiding by common guidelines.
Secondly, I’m seeing a variety of approaches to implement similar functionality. I’ve always known that code bases can get large, redundant, and chaotic, but it’s a real experience to see it first hand. And it goes both ways; sometimes I see code which I know needs to be fixed up, and other times I see a much better way of doing something than the approach I would have taken.
I see this current project as a great learning experience and I look forward to other collaborations in the future being a similar learning opportunity. I become more motivated each day to be more familiar with accepted programming standards and be an advocate for clean, practical code.