Our Open Source Project Reflections
We believe that one of the biggest challenges with open source development is incorporating what other people have to contribute into one, unified project. With a project of this scale, we had to divide up work, but it was hard to get everybody on the same page with a rapidly developing piece of software. Additionally, it was hard to incorporate other people’s changes sometimes because we would be working on similar pieces of code at the same time. This included making sure that the front-end and back-end were working together. Another challenge with open source development is ensuring that the code is readable and easy to contribute to for outsiders. It was difficult at times to make the software modular enough for both practical use and to ensure that other people would easily be able to read and understand what it was doing.
One of the biggest benefits of open source software development is that we got a lot of voices and ideas that help the product to be better. Overall, we were able to design a better architecture for the project because we had multiple minds working together. Additionally, we found that this type of development allowed for rapid prototyping and developing the product, which helped us to create a better product faster. Another benefit we have is being able to scale our project by being able to design and incorporate new features and or widgets easily to our existing project.
One of the biggest differences that we noticed from this process opposed to other classes or internships is how many choices we had and how much we had to build up on our own. For internships, we inherit code most of the time and we work on that codebase and create new features. However, we had to build this from scratch so we had to choose which programming languages to use, how we wanted to design the project, and we created our own goals and deadlines. This amount of freedom allowed for creativity and design thinking that we haven’t had much experience with in the past.
In the future we plan on continuing to maintain the project and its infrastructure to allow other contributors to make progress. This will entail checking in on pull requests and giving new contributors guidance and help if they ask for it. We also plan on keeping our communication channels open so contributors can ask questions on Gitter or post new issues on Github. Overall, we hope that the processes that we have setup will enable the project to continue forward without much friction.
This project has given us valuable experience that we can carry with us into other open source projects if we choose. Learning to work remotely using the common tools of open source projects has prepared us to work on other projects. Plus, being able to overcome challenges will also be useful to use when working on future projects.