The project team is formed and we are matching on! Our project was to make an animal dating app together but there are so many logistical decisions that needed to be made. i.e. Front end tech-stack, Back end tech, Databases, source control, do we need unit testing, hosting, etc.
Without any structured prescriptive baby-steps like previous classes, the choices were all on us. I pivoted back and forth between previously taught “A++ best-practices learnings” like CI/CD pipeline with automated checks and code reviews, well documented code with input and output parameters defined as comments, modularity in design, defining a good MVP, etc to a more laissez faire approach where maybe less is better.
When I saw the list that I had created in the project expectations and after several interactions with my team-mates, it quickly became clear to me that for this project team to work, it’s important to be cohesive as a team and be 100% on a same page. The list of requirements and rules doesn’t really mean anything (other than looking great on paper) if the rest of your team members doesn’t embrace it or lack the knowledge/experience to act on it. (We all took different classes with different experience and different expectations.)
In the end, the decision making was smooth and we arrived at consensus for pretty quickly. Everyone knew that the more complicated we make the rules to be, the more likelihood that we are going to fail and be disappointed and in the end, the project just wasn’t going to be completed.
For me personally, this was a taste on how perhaps decision-making happens in the real software industry. I can imagine with more team members (not just software engineers) and real business timelines, decisions are more balanced and less-ideal due to the constraints they face in the real world.
I am looking forward to the more technical decisions that we have to make when actually building the application. It would be a great journey to go through now that I have experienced briefly the logistical part of starting a software project.