We built the Binge App, where a user can log in and search for TV shows and save the ones they are watching. They can then see the episodes for each show and mark the shows they have seen to keep track of their progress. The website also shows some simple analytics on their TV show watching habits.
This was my first group project in software engineering and after completing the project I can say I definitely learned a lot!
Standups and Proper Communication
So here's what I was thinking when we started. If one person than get x amount of work done, how many can 4 people get done in the same amount of time? It should be 4x right? Nope. The answer is probably somewhere closer to 3x. This is due to all the energy and time that needs to be allocated to coordination, planning, and communication.
As this was to be a single page app, there was a high chance of stepping on each other toes while writing the code. We needed to allocate tasks appropriately.
We scheduled standups at the beginning of the day and spent time making sure everyone was clear about the tasks completed and the ones that lay ahead. We had several check-ins throughout the day and made sure to do code reviews and merge our changes as a group. All this took time away from coding, but in the end, it made us much more productive in the long run.
The Git Flow Dance
The biggest thing I learned this week is how important a proper git workflow is to building software in a group. We learned a lot about how git works and proper git workflow, from having your own master and feature branches to the proper way do code reviews before merging to the production branch.
My biggest fear going into this was how will we keep our code organized and cohesive, while also giving each of us the opportunity to build independently. Well, thanks to git, we made it through the week without losing code or causing major merge issues! Yay!
My search history for the last week is filled with me looking for git commands and GitHub help. And though I'm sure I’ll be looking all those up again soon, I am much more confident in my git skills and I truly understand the freedom it can provide. Git makes you free of the fear that you will be messing up other people’s work!
Another thing I learned was, though coding independently was effective, and so was coding as a group, the most efficient seems to be pair programming, Throughout the week we broke off into groups of two to tackle certain parts of the project and this was definitely when we made the most progress. From solving stubborn bugs to parsing data from an external API, everything is a lot easier with a second pair of eyes.
An Amazing Final Product
In the end, we were able to create something that would be impossible for anyone of us to do alone. Playing off of each other’s strengths and weaknesses as well as getting to see different styles of programming was a lot of fun!
Technical Side of the App
Before we leave, I want to highlight a few parts of the technical side of the app that I am proud of:
- Creating a Single Page App which renders the DOM according to what the user wants to see.
- Adding a feature so users can mark an entire season as seen. This was done by having the back-end check to see if it was getting a post request for a single episode or multiple episodes and handle the response accordingly.
- Handling data from an external API, which was at times incomplete, and this required us to have a robust error handling process.