Technical Debt, Software Engineering Training and Open Leadership in the Open Source World
"Code is like humor. When you have to explain it, it’s bad." — Cory House
This is a mashup of a series of interviews with experts I had the pleasure of conducting earlier this month. These interviews are part of my fellowship with the European forum of the software research community. In this post, you will find a summary of key points for each of the posts, with the addition of a “small AI treat” in the beginning. If you like what you see, you can find the link to the full article in the bottom of each section.
You can also help my substack get more attention by either ❤️ or sharing your thoughts with a 🔄️ or a 💬.
How to deal with Technical Debt in Open-Source Software?
In this post, I am discussing with Prof. Apostolos Ampatzoglou about Technical Debt (TD) - in general but also specifically for Open Source Software (OSS) projects -. Prof. Ampatzoglou is an academic in the Software Engineering field, with extensive experience on TD, among other research topics. Prof. Ampatzoglou is currently an Assistant Professor of Software Engineering in the University of Macedonia, Thessaloniki, Greece, and former Assistant Professor in the University of Groningen in the Netherlands. Here are some key takeouts from the interview.
There’s not much evidence on a comparison that focuses on TD in different open-source software domains. However, based on other qualities studied in the past, entertainment-related software tends to be of lower structural quality compared to software development tools, libraries or frameworks.
The major causes of technical debt in OSS can be referenced from two sources of evidence. First, for industrial software there is a research project called InsighTD which studies the root causes of TD by surveying developers from multiple countries. For data retrieved from OSS, we can refer to quantitative results that study if the cause of TD resides at the micro-management or the macro-management level.
Measurement is one of the most important open problems in the TD community. Currently, there are more than 20 tools that can be used for measuring TD, but their level of agreement is very low. SonarQube is the key-player of the game since practitioners and researchers use it the most compared to other solutions.
Culture is the cornerstone of TD management. The first step to have a system with manageable TD is to make the developers and managers understand that accumulating TD is a problem. Cultivating such a culture in the community around a project is a challenging task for project leaders, owners, or moderators.
Two trends in TD for OSS are how can AI be used to generate TD-free code or help reduce TD in existing systems and human aspects in TD management such as team composition, work modes, and code ownership are important viewpoints that need to be checked in more detail. The rise of ChatGPT and Co-Pilot is a change in the way of developing software that we cannot neglect as scientists and practitioners.
You can access the full interview in the original post at SWForum.eu.
Training the next generation of software engineers using Open Source Software.
For this post, I interviewed Prof. Ioannis Stamelos, a researcher in the Open Source Software (OSS) field for almost 20 years. We talked about how OSS can be leveraged in the training of young software engineers as part of their university curriculum. Here are some key takeouts from the interview.
Institutions can encourage the use of Open Source Software (OSS) in the classroom by providing open source infrastructures and having instructors use open source tools as part of their teaching process. Participating in OSS projects provides students with a more realistic workforce experience than typical student team collaboration. OSS projects are well suited to software engineering and programming tasks, but can also be leveraged in various fields as a learning tool.
The role of OSS in education is expected to grow in the future, especially if there is support from governments and major OSS organizations. Institutions can measure the success of integrating OSS projects into their curriculum by tracking metrics such as the number of courses that involve OSS and the number of students opting to attend such courses. Institutions can also encourage students to continue contributing to OSS projects after their formal education by promoting a culture of give and take, while at the same time they build a reputation because of their participation in OSS projects.
Educators who want to integrate OSS projects into their curriculum can start by reading the literature on the topic and finding information on suitable OSS projects and tasks. They can also start small by guiding a few students to enter OSS projects for one semester and then gradually increasing the number of students based on the results and feedback.
You can access the full interview in the original post at SWForum.eu.
Leading software projects in the Open Source world.
For this interview, I invited Ms. Abigail Cabunoc Mayes to discuss leadership in the Open Source Software world. Abby, leads GitHub’s open source maintainer programs. Before joining GitHub, Abby led Mozilla’s open source engagement strategy for MozFest and trustworthy AI. She founded and led Mozilla Open Leaders, a program that has worked with over 600 open projects globally. Here are some key takeouts from the interview.
Leadership roles in the open source community range from welcoming newcomers to organizing meetups to reviewing code. Open leaders build communities and empower others to do the same. Openness adds another layer around community using and contributing to the software.
The Linux Foundation published a report on Diversity, Equity, and Inclusion in Open Source. Women, non-binary, LGBQ+, and people with disabilities were 2X as likely to have experienced threats of violence in the context of an open source project. Transgender respondents were 3X as likely. This means that although slow progress is happening, diversity and inclusion are still considered significant challenges, when it comes to the Open Source Software world.
Abby is a fan of the Open Leadership Framework by Mozilla, which guides open leaders to design and build projects that empower people to collaborate within inclusive communities. Governance is something that more and more projects are struggling with over the past few years. Especially around decision-making. A good practice for these projects is to document their decision-making process. Having clear documentation such as contributing guidelines, governance, and code of conduct is effective for resolving conflicts or disagreements within the open source community. We are seeing a rise in community co-created software. Projects are realizing they need documented governance to do things like enforce their CoC and manage their community generally. Ethics is also a very important aspect, every time we’re dealing with innovation and humanity. Open source leaders are in a position to make a strong statement.
You can access the full interview in the original post at SWForum.eu.
You can help my substack get more attention by either ❤️ or sharing your thoughts with a 🔄️ or a 💬.