Project Debriefing
Milestone 5: April 30, 2020
Over the past several months, we have created Web-Terminal, our group's open source project. We have gone through the steps of setting up the project for development, building a product from our ideas, and releasing it to the public, opening our project up to outside contribution. Creating this open-source project has been a unique learning experience for each of us, full of challenges and rewards. Following are our insights on the process:
"One of the challenges to open source software includes the fact that you/your group are not the only people working on the code. As this is the case, you must ensure that everything is thoroughly documented in order for any contributors to not only fully understand how your code works, but the proper way to contribute to the project. Another challenge with the project is that we cannot predict the timeline in which contributors will add their work to our project, and as such, we must be prepared to debug and check any contributions at all times. Finally, starting this project from the very beginning, it is challenging to ensure that all of the necessary infrastructure is in place before the launching of the product. There are many different components which must be included, from a regular github, a website, an issues board, testing to ensure that any new code from outside contributors will not break the code, announcements of the project, etc. With this being the case, there is a lot more overhead when developing open source software than if you were to be working on a solo project with no outside contributions." - Katie Liebscher
"Open source software development provides great opportunities for learning and improving programming skills. Because open source projects are free and accessible to all, users can examine the project’s code to understand how it works, and they can even make their own changes to it, allowing hands-on learning. Further, the original project creators can likewise learn from outsiders who may discover bugs or point out issues they find in the code. In this way, open source software development often leads to both higher quality code as well as more innovative projects. Having more contributors with varying backgrounds and skill sets likely means having more creative ideas for ways to improve the project. We ourselves found that most everyone we talked to about our project had their own suggestion(s) for improving the terminal, many of which he had not thought of ourselves. Thus, open source encourages collaboration and outside contribution. And while it can be challenging to establish initially, the structured method of open-source contribution necessitates smaller-scaled and often more fine-tuned changes. This allows for code that can be more easily understood and tested, lessening the risk of “breaking the code” every time a contribution is made. Finally, open source software development can be very rewarding as it gives developers the ability to explore and add value to projects that truly interest them." - Danielle Galvao
"Open source development is different from most development we’ve done in a couple of ways. Course projects are inherently finite by design, there is an initial design, progress, all culminating in a final product. There is usually never an intent for the project to be used outside of the course environment, and little to no effort is put into making it usable or maintainable. Open source projects on the other hand are built with stability in mind, objectives coming from the next milestone but with the knowledge that there is more still to come after and with that comes a different mindset of development, using testing, documentation, versioning, and publishing which are often unnecessary in course work. These projects are meant to live on after a developer leaves. On the other hand, internships are often much more similar, depending on the experience of course, if you are actually contributing to a large code base all of these steps are again important. However, in an internship, your code will likely never be seen outside of the company or used by someone else, whereas with open source projects this is a real possibility and goal." - Jack Meyer
"Going forward, continuing development would largely depend on finding a user base eager to use the web terminal. There are a number of features remaining that we would love to incorporate into the project (sidebar notes, saving output streams to files, font customization), but without regular users the time and effort may not be worth it. To push development forwards, continued advertisement would be necessary to get our application into the hands of people who could benefit from it. Given that our target audience (at this time) are less-experienced programmers who want to learn the ins-and-outs of the terminal before “graduating” to a terminal emulator, exposing new students in our department to the application would be crucial. Unfortunately, the circumstances of this semester cut short our original plans to present the project to the Systems Programming students, but the Fundamentals of Computing class could also be a good place to start. Additionally, several of our team members are graduating after this semester and will find themselves busy with their new careers. We still believe that our application offers a great “training wheels” option that offers many learning, sharing, and debugging opportunities for novice users and hope to return to deliver more features if they so desire." - Zoe Surma
"I definitely plan on continuing to contribute and maintain open source projects moving forward. I think it’s a fantastic way to both gain experience and contribute to a community that is always looking for help. That is one area in which our department is a little weak, we barely even discuss open source at all. Kids are always looking for side projects. This class was a great opportunity for students to get an introduction to open source, what it is, and what the movement stands for. It’s something I’d like to see moving forward. Potentially even a version in which non-seniors can join, but instead of creating their own project maybe they just contribute to existing ones? I’d love to see students in the department get more involved and excited about open source!" - Bill Theisen
Thanks for following our Web-Terminal development journey!