There are mostly red flag criteria. Properties of data that tell you that a certain approach will fail for sure.
if you have no idea what your data means stop analyzing it. you are just guessing animals in clouds.
if attributes vary in scale and are nonlinear or skewed. this can ruin your analysis unless you have a very good idea of appropriate normalization. Stop and learn to understand your features, it is too early to cluster.
if every attribute is equivalent (same scale), and linear, and you want to quantize your data set (and least-squared error has a meaning for your data), then k-means is worth a try. If your attributes are of different kind and scale, the result is not well-defined. Counterexample: age and income. Income is very skewed, and
x years = y dollar
is nonsense.if you have a very clear idea of how to quantify similarity or distance (in a meaningful way; the ability to compute some number is not enough) then hierarchical clustering and DBSCAN are a good choice. If you don't have any idea how to quantify similarity, solve that problem first.
You see thstthat the most common problem is that people attempt ötoto dump their raw data into clustering, when they first need to understand and normalize it, and figure out similarity.
Examples:
Pixels of an image in RGB space. Least-squares makes some sense and all attributes are comparable - k-means is a good choice.
Geographic data: least-squares is not very appropriate. there will be outliers. but distance is very meaningful. Use DBSCAN if you have a lot of noise, or HAC (hierarchical agglomerative clustering) if you have very clean data.
Species observed in different habitats. Least-squares is dubious, but e. g. Jaccard similarity is meaningful. You probably have only few observations and no "false" habitats - use HAC.