Developing open-source software as part of an academic career can be highly rewarding and beneficial in various ways but especially for your professional career development and the broader research community. Let’s explore some important approaches and strategies to get this implemented the right way:
Identify the right research needs and goals
When deciding to join open source projects, customize existing open source or create a new open-source software package consider identifying areas that address specific research problems or gaps in your field of study and research. Inspirations or ideas for new software and their applications are often provided by professors or other leaders in the academic field you are in. So, look around and utilize your network to get inspired.
Finding the right idea will ensure that your work is relevant and valuable to your academic program as well as for other researchers in a similar research field. Interest in your software is a critical condition for building a community of contributors and supporters around your software development.
Another critical consideration is ensuring that the software you decide to develop directly supports your personal research objectives. This alignment can make it easier for you to not only justify the time and resources spent on the development, but it will also help you with other correlated topics such as getting your research out to the public through research papers and other publications.
Ask yourself also, what is the main driver for your software development and your why? Are you trying to make your life easier or are you intending to help other people in the process? Both are legitimate goals, choose the one with more impact.
Collaborate and Network
Work with peers and other researchers in your network, both within and outside your institution. Engaging with researchers even from different disciplines can broaden the scope and impact of your software, plus, so called ‘interdisciplinary’ projects can attract more academic or industry funding as well as recognition. Collaboration with others (either at an early stage of your software development or after initial release through contributions) in general leads to higher-quality software and a more significant impact. Involve students in the development process. This can provide them with valuable experience and help you with the workload.
Contributions to existing and ideally established open-source projects related to your field can help you additionally build a reputation, improve your open source credentials and learn best practices. However, for improving your code development skills, it may be best to seek out smaller projects or those with a more open contributions policy.
Community Building and Engagement
Actively engage with the OSS user and developer community. Use platforms like GitHub, GitLab, or Bitbucket to host your code and facilitate collaboration to further develop, improve or enhance your software. Hosting your code in those platforms as well as asking for help in OSS communities is welcomed and supported.
Invite interested parties including potential users of your software and to contribute to your software package. Depending on the stage you are at in your software development, contributions may range from bug reports, code, feedback to software documentation, citations, ideas for new or missing features, suggestions for patches etc. The list goes on. Even the smallest contribution will add to the vitality of your project and therefore whether of a technical or non-technical nature.
Ensuring Quality and Usability
Yes, developing a reliable software package requires coding, code reviews and thorough testing. Implementing a code review process and automated testing to maintain secure and high-quality code is a must. Peer reviews can catch bugs and improve the overall software design. At the same time, make sure to use continuous integration (CI) tools to automate testing of contributions. This will ensure that new contributions do not break existing functionality of your software and that code vulnerabilities are continuously managed.
At the same time, you will have to properly document your code. Creating comprehensive documentation, including installation guides, usage examples, and API references etc. is therefore a must too. Good quality documentation lowers not only the barrier to entry for new users and clarifies what the software is about. It is crucial for attracting and retaining users and contributors. By facilitating replication and testing, documenting code ensures reliability and builds trust in your software.
In terms of software usability, offer support through forums, mailing lists, or issue trackers. Engaging with users can provide you with valuable feedback and has the additional benefit of fostering a community around your software.
Finally, be mindful of any potential ethical implications of your software, especially in the context of AI applications. Ensure that it is used responsibly and does not cause harm.
Familiarize yourself with the legal background
Building open-source software is fun especially since it has a non-technical side to it. Let’s call it the open-source licensing and governance part. To ensure proper dissemination and widespread use of your software it is highly recommended that you allocate some time to familiarize yourself with the question of the ‘right OSS license’ and (if your development becomes big enough) the ‘right OSS governance model’ for your software development project as well as later distribution and use of the software by industry players. There are a variety of open-source software licenses available (such as e.g. the BSD, MIT, Apache license). Key is to select an appropriate open-source license that aligns with your goals and the norms and values of your research community.
Establishing a clear and reliable governance model for your software development project will become more relevant when your project reaches a certain size. In an OSS related governance model you will have to define roles, responsibilities, and contribution guidelines to manage your project and the contributions of your contributors effectively.
The key step regarding this area would be to gain knowledge in the area of OSS licensing and OSS governance as early as possible through either available online training or professional training offered at your academic institution.
Funding and Sustainability
Depending on your goals and objectives, funding might be helpful and required to bring your software development to the next level. Many academic institutions offer funding specifically for open-source projects. Familiarize yourself with the funding landscape in your organization and do not shy away from applying for grants and funding opportunities that support open-source software development.
Developing a plan for the long-term sustainability of your software is often mission critical. Such a plan might not only include securing ongoing funding, but also how to best maintain and improve your software, by e.g. building a community of contributors, or partnering with your institution as well as others. Your project may be able to benefit from various resources including sources of funding if you are prepared to consider housing it under the corporate umbrella of a given foundation.
Share your results
Share your software at academic conferences, workshops, and seminars. This can help you reach a broader audience and attract collaborators. You could call this the marketing and outreach part. You may need to actively cultivate a deeper understanding of open source amongst your peers, faculty members, IT support and administrators, since they will be valuable as ambassadors not only for your project but the open source commitment of the institution as a whole.
Publish tutorials and articles. Write tutorials, blog posts, and articles to showcase your software and its applications. This can help increase visibility and adoption. Be prepared, some software journals conduct code review to validate your work. You will be fine to face this with the right approaches as described in this article.
Write academic papers that describe the software, its development process, and its applications. This can help you gain academic recognition and citations.
Use social media and online communities (e.g., GitHub, Reddit, Stack Overflow) to promote your software and engage with users.
Building communication around your software will support you with building a bigger support network and community and a greater impact.
Finally, consider engaging in mentorship programs. Mentoring junior researchers and students who contribute to your project can help develop their passion for open-source and technical skills and build a strong, sustainable community around your software.
Continuous Improvement
Once the software is launched ensure to establish a feedback loop, i.e. a mechanism for continuous feedback from your software users as well as contributors. Regularly update and improve your software based on this feedback to maintain and improve it.
Another important topic is to stay current: keep up with the latest developments in software engineering, cyber-security and your research field. Incorporate new technologies and methodologies as appropriate into your software. In case your software is linked to a publication, consider updating your articles or papers according to your technical updates and new releases.
Welcome Challenges
Always remember, challenges will be part of the journey. They are an opportunity to learn how to manage and handle obstacles, how to adapt and find new solutions. Even open source communities have their communications challenges. Always be compassionate with yourself and others, remembering that most participants are volunteers. Rome was not built in one day. Like all things it takes practice.The more you engage with open-source the better you get. Leave egos aside, do not be afraid of sharing what you have created and be grateful for any feedback. See feedback as a key driver for enhancing your skills, your software and the OSS community. Your work is highly valuable. Do not allow the illusory imposter syndrome to convince you otherwise. You are a powerful creator!
With that, let’s conclude with the following:
The above are critical pointers to lead you into the right direction. If you consider following these strategies and concepts you will effectively develop open-source software in an academic setting, and as such you will not only contribute to your academic research field, but you will also shape your work identity, grow your personal brand and create future career opportunities in the software field.
Your mOSS team


Leave a Reply