Software discovery library size matters less than how fast it is being updated with what customers deploy on their machines. Even a million-rule library is useless if it does not include the exact titles and current versions deployed, which resemble an ever-shifting kaleidoscope. It does not matter if you start from scratch; the efficiency of the process is much more important.
Efficient library management requires a corresponding software discovery engine with the logic that, combined with software discovery rules, transforms raw data into neatly structured software discovery results. Writing it presents interesting technological challenges. What are the requirements? Well, software applications:
Every ITAM solution has to tackle this reality somehow. The basic idea is not rocket science, however there is an important requirement that should be addressed. Basically, for each discovery result, you should also be able to drill down to the source elements (files, add/removes, etc.) that have triggered it. It is of critical importance for troubleshooting because, otherwise, software asset managers would have to believe your discovery results blind.
Of course, there are simple libraries where each file maps to only one given product name/version; such cases are a no-brainer. It becomes much more complex with multiple signature files in different folders. Once you have gone through all the steps to the final software discovery results, the only link left to the items that triggered them may well be the discovery path. One approach to solve this is to combine software discovery results with a database that stores the file structure of each machine, such as that of Microsoft Windows Search Indexer. This, however, is a very demanding database to maintain for hundreds or thousands of machines. Clients must keep it running continuously to allow them assess the software discovery triggers.
Inferapp's Open Software Discovery Engine avoids this dependency even for the most complex discovery rules, which is, at least to the best of the authors knowledge, a solution unique to the ITAM industry. Its design provides unprecedented transparency with no extra dependencies. The code is available on GitHub, both in C++ and Java. Happy coding!