TLDR You should always ask, “should we buy this, should we borrow this, or should we build this?”
Let’s look at a (super abridged) hypothetical situation:
Customer: we need this {data} grid that has some excel like functionality
Let’s evaluate how 3 different product managers might approach this:
- Brand new product manager: starts gathering requirements for the data grid and breaking it down into stories. It will take a two thousand hours to build all the stories. For ease, let’s use 20% of build time as annual maintenance: it will take at least four hundred hours per year to maintain. It will take 6 months to launch.
- Product manager with a little experience: they go back to the team and ask if there are any open source or pre-built solutions that we could modify. It will take 200 hours to modify. It will take 40 hours per year to maintain. It will launch in 1 month.
- Product manager with lots of experience: asks the question if this is a solution that is core to delivering differentiation. If not, asks the question whether or not this functionality should be purchased. Decision is made to buy a pre-made robust & professionally supported plugin. It will take 40 hours to implement & 8 hours a year to maintain. It launches in a week. It costs $2,500 per year.
I choose this solution because data grids are terribly important, but usually not a differentiator for many companies. Inevitably requirements will increase over time and become harder to maintain. A professionally supported solution will have thousands of hours of development AND include professional support.
De-Risking
In this particular case, do you want to build & maintain a team with data-grid expertise to manage & modify this solution? Or do you want to launch a data-grid and include best-in-class functionality.
This is not a product decision.
This is an area where product & engineering discuss the ramifications. A classic MBA answer to this can be phrased as, “keep your core competencies – the rest can be outsourced to someone else who has a core competency.” It’s important to determine the effect on the organization.
Final Note: Component Libraries: Consider Buying
There are dozens of good vendors that provide professionally designed, managed, & maintained component libraries. I do believe for most companies (especially for backend solutions) – a good component library is worth evaluating and buying.