I work at a game company that has a Core Library with a bunch of ultities, extensions and systems that we typically import large chunks of into projects.
Recently we have been trying to improve our process of improving our library. Essentially we gave devs freedom to write tickets themselves that they thought were important to add to the core library. To tackle ticket prioritisation, we designed an ROI solution which basically has developers vote their impact(1-10 and effort(1-10) on tickets, and then we would sort tickets by ROI = impact/effort. Tickets were then sorted by ROI (high to low) and picked from the top. Essentially what happened was high impact tasks typically had high effort requirement, and super simple tasks with low impact had incredibly low effort (just 1 because majority of them were already done and just needed to be copied and pasted).
I personally didn't have much of a problem with this. It seemed natural. Tasks that took a second to do would probably be done first and then we would get to the bigger stuff. But devs are unhappy that extension methods that would be used once in a blue moon are making their way into the core first before a new important Save System that should be in all new projects.
Anyway, for now we are now just prioritising tickets based on impact and using time estimates on tickets to fill the sprints. People can also champion tickets they feel are important if they want and ignore metrics.
Does anyone know of any other solutions for solving this kind of problem? I'm kinda lost personally and I'm responsible for this task.
Cheers!