Reflection on Our Experience with Open Source Development
Challenges of open source development
Communication is a major challenge for open source development, as much of the time we have not been able to work together in-person. We have to rely mostly on online communication tools, and this can cause delays, especially when people work at different times.
Benefits of open source development
Open source projects have the potential to get feedback and contributions from anyone, whether it’s a bug report or a new feature.
Also, many development tools that would otherwise require payment are free for open source projects. Conversely, open source projects are usable by anyone for free, so it is easier to reach a wide audience and contribute something positive to the world.
Differences from other classes or jobs
The goals are different with a typical project-based computer science class; you work on a project for a period of time until its due date, following a specific set of (sometimes very strict) directions, and often using boilerplate code and/or tests provided by the instructor. Open source, by contrast, doesn’t have that sense of deadlines, the creators or community decide the directions, and you start basically from scratch.
In a typical job, there is a team of employees working on the project for eight hours a day, five days a week, so work tends to progress quickly, especially if everyone is physically together in the same office. However, companies tend to have stricter requirements, more red tape, or a concern only for the bottom line.
Continuing on this project
We plan to continue working on this project, both responding to issues and pull requests opened by others, and continuing to add features and enhancements. The app is in a working form, but it is by no means done, and there are many features we discussed but did not think it would be practical to implement right away.
Contributing to other projects
Working with the open source development style has been a positive experience for us, and we will keep an eye out for other open source projects to contribute to in the future, either improving a tool we already use or contributing to something random and new.