- guess whether or not this is an isolated case, or whether or not this will become core functionality
- a self-assessment of the true difficulty of the problem
- a self-assessment of their own skills and knowledge in the area
- security reasoning
- API access/readabilty for other developers to use this code
- maintainability of new code
I have personally seen personal implementations that lead to bug, after bug, that have already been reasoned about in equivalent libraries.
Often for the simple fact that other devs who have to work on this code, its likely that the abstraction and readability of a third party library is probably greater than the 'quick-and-dirty' implementation.