I've thought about ratcheting it down to 15 based on stuff I've read, but unfortunately that particular failure metric can only be set as low as the class-level in the latest version. The next version (4.0) will have the ability to set the threshold at the method level.
In any case, I'd rather have a handful of places in the code where someone has to do something goofy to work around that metric rather than accidentally allow the whole project's complexity to creep up as time goes on.
Are your co-workers cool with that? Complexity metrics are a little "squishy", but the costs of a broken build are large.
https://en.wikipedia.org/wiki/Cyclomatic_complexity
checkstyle is a Java lint that, among other things, can check code complexity:
Then,
pmccabe `find . -name '*.c'` | sort -nr | awk '($1 > 10)'
gives me all functions that have a cyclomatic complexity over 10; I often add it as a target in a Makefile, so I can easily check this. Similar, for functions of a certain length.Global complexity might not be much harder to measure than local complexity, perhaps even easier. Look for interdependencies.