- Does WordPress have a built-in way to do this?
- Does this inbuilt way do what I want completely or partially? If partially, how much code would I have to write to complete the functionality?
- If WordPress doesn’t have a way to do this, is there something (library, plugin, addon) that’s under active development by a competent, responsive developer or a team of developers?
- If there is a third-party solution, can I offload the possible support and maintenance issues to the third-party?
- Does my desire to custom code things come from a place of arrogance or pride or does it come from a place of absolute confidence and conviction?
- Is my strategy different from the current best practice/conventions of the rest of the WordPress ecosystem?
- Can I afford to isolate my strategy? Because isolating my strategy means it only gets the resources that I have at my disposal. This is not just about the development, but also about ongoing maintenance and support. This is also about bugs and Linus’s law.
- Is it really worth to spend time on optimisation, security and the best quality possible when simply using an existing WordPress strategy guarantees these because it’s a project of that size and value? If it doesn’t today, is it reasonable to expect WordPress to do the right thing in the future? Do I trust the WordPress ecosystem/ community to do the right thing eventually?
- Does WordPress continuously change and improve?
- By isolating my strategy, am I isolating my solution from the latest benefits that it could get?
- If I really have something that I still feel I should build myself, can my strategy help improve the default WordPress way?
- Can I create a ticket and start a discussion?
- By isolating my solution, am I making it more difficult for another developer to get upto speed and be able to work with it compared to what would happen if I did things the default, commonly understood WordPress implementation.
- By isolating my solution, am I isolating my users to be extremely dependent on it? Dependent in terms of being able to hire a regular WordPress developer vs someone who specialises in my solution?
- Is engaging with the ecosystem in a co-operative collaborative manner more profitable than competing on this?
The attempt here is to informally estimate the ongoing maintenance load (support, bug fixing, code revisions, etc). Most often, when I’m done with these questions, I come to a conclusion that implementing things the standard WordPress way is simply more efficient in the long run than writing my custom implementations.
That’s why I just find it a better idea to use post types and taxonomies and metadata API to implement custom objects, even when I’m extremely confident that my custom object with its custom tables would actually be a more elegant and correct solution.