so far we've designed three products which shares the same mechanics, electronics, firmware and the 75% of the software.
This sharing approach helped us being efficient in the prototyping phases - which have been running in parallel - as we were in our company startup step: very few developers, and the project leader doing all of the project management stuff.
We actually develop the software in separated branches, and constantly keep the branches merged in order to get fixes & improvements from the other product's team.
From the beginning, both the products have been tracked in jira within a single project, and making use of different release versions and a custom field in the project issues (which sets the 'product' a issue is related to).
But such organization is causing headaches to our Project Managers, because they are not able to track in Jira which bugfixes & improvements are being inherited from the other product every time we do a code merge.
They keep asking us which issues they shall clone from a software release version of product A to the next software release of product B. This is time consuming and, above all, really prone to forgetfulness.
Any of you is having similar experience? Can you kindly share your thoughts about the management of source code running on several products?