This page is an outgrowth of this other page, which sets forth some criteria for deciding whether to roll-your-own or not.

To do that, we need to understand the existing solution well, before we can make a choice of whether to discard it or not.