Tuesday, November 14, 2023

My previous internships have really prepared me in tackling complex projects with vague requirements. I’ve used the skills I acquired from those internships in tacking my capstone project.

Two members of my team changed projects and a new person was added onto the team pretty late into the term. Instead of being stressed and angry about it, I just rolled with it. The two team members left the group due to vague project requirements from the project mentors. Initially, I was also considering changing projects, but I realized, given the vague requirements, that this is a fantastic opportunity to be creative with how I’m going to tackle the project. The OSU CS program and my internship experience has taught me the importance of being flexible and tacking problems with a positive mindset.

So far, I’ve designed a backend for the project that uses existing services from Amazon. These services include a database, real-time data ingestion, authentication/authorization, and payment preprocessing. The scope of the project is large, so I opted to use those existing services until we encounter a roadblock that requires us to implement something from scratch. These services will all be triggered by a Lambda function that is called from an API gateway. I also plan on taking a “DevOps” role in the team, so that I could manage our CI/CD pipelines and troubleshoot issues with AWS.

We are using flutter for the frontend, which I enjoy a lot since it’s a relevant and new technology. It also lends itself to the microservice architecture, which I expect will slowly be more relevant to our project increases in complexity. But for now, there is a single API gateway that the frontend will call to trigger some AWS Lambda function.

Overall, the initial parts of the project were difficult since the requirements were vague and my teammates seemed uninterested in the project. However, from my experience, no project has explicit and clear requirements in the real-world. As developers we should tackle vague requirements head-on and learn as we go. I’m glad I decided to stay with this project since it has enabled me to be creative in how to tackle a complex project.