-4

In a given organisation I have a set of several software repositories, including re-usable libraries and applications that may contain parts that are possibly worth re-using but have not been abstracted into a library yet.

Individual projects have issue trackers and documentation but the ecosystem as a whole is not curated.

Ideally we would like things like:

  • A searchable index of APIs provided
  • automated analyses

How should I approach the problem?

5
  • This is derived from - softwareengineering.stackexchange.com/questions/439354/… - which was closed as opinion based. Personally I think this is a completely different question and much more opinion based. Jun 20 at 15:35
  • 1
    I think the issue with "something to perform a higher level analysis of each repository and combine it somehow." is not that is is too opinionated - the issue with this is that it expresses an unrealistic expectation. One does not need a tool for this, but a person: a software engineer or analyst who reads, understands and compares the documentation.
    – Doc Brown
    Jun 20 at 15:51
  • That could be an architect or the developers themselve. But architects can be supported by tools. You can do version control with just directories of files but its not ideal. Jun 20 at 15:58
  • Sure, but for creating such high level documentation, Wikis, Word processors and spreadsheet have always been good enough for me. Specific case tools always turned out to be overengineered or simply not useful enough compared to the formerly mentioned universal tools.
    – Doc Brown
    Jun 20 at 16:06
  • That has been mostly my experience too. However, its a bit like AI winters in general. While one thing trying to do too many things at once hasn't always worked out. Tools for specific purposes have become commonplace. automatic testing, building, coverage and static analysis are relatively common these days. Jun 20 at 16:12

1 Answer 1

1

Several approaches are possible. First consider what you actual need Do you want:

  • A searchable index of APIs provided
  • Document what they provide and how they are implemented
  • To perform analyses upon them - such as to find duplication
  • To Get metrics from them.

There are tools for the individual jobs:

  • E.g. Simian for duplication.
  • Doxygen or whatever tool is approriate to your langauges - for each project.
  • Coverage analysis tools
  • Static analysis tools
  • A wiki for user documentation

What is missing something to perform a higher level analysis of each repository and combine it somehow. Some SaaS platforms provide these already. GitHub for example, provides some metrics. SonarCloud will analyse your projects - for a fee.

The starting point is typically a tool or platform operating above the level of an individual repo or project (this is apparently called a 'forge' after source forge). This might be something hosted such as github or something self hosted like gitlab. You may find you have to add glue for additional services yourself. In the past there were CASE tools that did much of this for you. These were not 'forge's in the modern sense but another category of software (for which I cannot find the name).

You also need to consider your development process as a lot of this comes down to maintain certain displiclines and having people that think about the large architectural picture whether or not you have architects as distinct roles in your teams.

Not the answer you're looking for? Browse other questions tagged or ask your own question.