Module 3: Now do it in a group
Module 3 rolled in quickly. With no time to waste, we were assigned into groups of four to begin developing our final project. The challenge? To develop and deploy a fully functional application using FastAPI, with a log in/log out feature, a database (MongoDB or PostgreSQL), with a Single-Page Application (SPA) using React.
While we developed this project, we were introduced to FastAPI, SQL, data structures, sorting algorithms, MongoDB, PostgreSQL and so much more. The first couple of weeks were as overwhelming as it had been in the previous modules. This time however, the added stress of working with a group made it challenging to spend the adequate amount of time learning and truly absorbing everything. I worried I would not be able to contribute enough to my group. What if I was constantly behind? What if I was assigned to do something I did not know how to? What if I couldn’t pull my weight? What if?!
There’s one main lesson I have been able to takeaway from these last 18 weeks and that is that the best way to learn is to do. You don’t learn to ride a bike by simply studying the steps and the theory. You must get up on that bike, start pedaling and lose your balance as often as it takes. Of course, this sounds obvious, and we all know this right? It appears, however that it is so easy to forget to apply this method to things outside of riding a bike. My confidence has waxed and waned with every introduction to new material and the challenge to implement those skills. New material brings me to doubt what I know and what I can learn. It was not until we got on that bike, began coding out our project and came upon a seemingly unending thread of errors that everything started to click.
Our group participated in what is called “mob coding”, in which an individual is the “driver”, or the one coding, as the group looks on and communicates what should be written or changed. While feeling somewhat lost at the beginning, as time went on, I had my turn at driving, and gained a better understanding, I was able to find the confidence to speak out and share my suggestions for fixing errors.
Indubitably, one of the most exciting feelings in software engineering is debugging a block of code. The best confidence boost? Realizing your gut feeling was right, your suggestion for fixing that error was correct, and that you are indeed, understanding things and contributing.
Our group settled on developing a movie database website that gave users access to movies (from The Movie Database) to keep track of upcoming and trending movies, add movies to their watchlist, and organize their favorite movies into custom collections. Like many bright-eyed first time engineers we created a vision that seemed “easy” only to find along the way, that our “easy” project was more nuanced than we had imagined. Nevertheless, over time and with a reminder to prioritize our MVP, it came together to form reelistr.
As we completed the back end, moved on to work on the front-end and quickly approached our deadline, there were a couple of thoughts that came to mind (as it tends to happen with hindsight) of what could have made our complicated project better.
Our database was one of greatest challenges. While working on the front-end we continuously revisited the back end to make adjustments. Even after making those adjustments, I think there are still a couple more to be made. When I shared this experience with the instructor she smiled—that’s the process, continuous integration.
It is a truth universally acknowledged that a team needs to be organized and in communication. There are many moving parts in the development of a web application. Keeping a record of the things that we had accomplished, had yet to accomplish, setting goals for ourselves, and prioritizing, helped us keep our ambition in check and stay on track for a while. When things got messy I gained a greater appreciation for planning and the tools (such as wireframes and lists) that we had created in the beginning.
Working in a group has been a learning experience in a variety of ways. Being the only woman in the group seemed life’s way of “preparing me for the real world” of which I had been warned about in regards to the ratio of men to women and the obstacles that came with it. It took time to adjust to working with a group of men I had not interacted with much. My introverted personality and the fear of not being “as good at this” was an obstacle I had to overcome, but one that did become easier with time and the support of my teammates. I’m grateful for their contributions to our project and their support and patience as we learned, ran into errors, found solutions and made decisions together.
Check back later for a look at the full project!