Hi Everyone!
First of all, I commend you for taking on a vexing problem like dependencies. Please take my comments here as food for thought, based on the premise that I have considered similar phenomena before, and also recognize software dependencies are a different beast than those phenomena. First, early in my research career I recognized the significance of weighting relationships on all forms of network analysis if the goals include understanding the most significant nodes … in this case other software, often referred to as packages.
This post follows this flow:
- The kinds of “things” and their “relationships” need to be weighted if we are to use math to process data, and reach conclusions that are grounded in what actually is happening
- To accomplish that, there are particular, specific ways you need to build the computational models to weight things usefully, after you name all the most meaningful things.
- WHAT we name thing “things” and the “relationships” betrays our biases, and influences our analysis. What we call something is a reflection of how we think about it, and if we don’t critically think about all these “things” and “relationships”, the likelihood that we build something useful goes WAY down.
(Background: I was a software engineer for 10 years, and have been an academic for 11. As I have learned in therapy with my 14 year daughter [one a set of twins], saying “and” he’s an academic is better than “but” he’s an academic. May you never have 14 year old twins yourself during a pandemic.)
In my analysis of “things like dependencies” I realized early that weighting requires us to identify “the different types of relationships”, and to treat them differently. Dependencies in software, I might argue, include your sotware, the software you depend on, and software that depends on you. Those are three different categories of “artifact”. I also have strong empirical evidence, and a general belief based on studying this sort of thing for a decade in open source software, social media, online health forums, online learning (non of that research is currently being applied by any virtual schools I have seen, btw), another “noun” enters the fray: “The People”. The result is that all connections are between “artifact - person”, “artifact - artifact”, and “artifact - person”.
Dependencies are connection, but unlike straight up code, they come in several categories, so this rather complex image is simple in comparison to the dependency problem:
If you have trouble sleeping, here’s the entire paper: https://www.seangoggins.net/wp-content/plugins/zotpress/lib/request/request.dl.php?api_user_id=655145&dlkey=H9SR6RHZ&content_type=application/pdf