Static analysis is a technique which finds common mistakes made by developers using source code as an input. Developers can run most of these tools live as part of their own process (some as they are typing!), in addition to CI running them. We use industry standard tools from Synopsys (Coverity), and Google (go fmt, go vet, go lint), as well as a range of open source tools for every language we use at Ava (go-metalinter, eslint, elm-analyse, shellcheck and many others).
There has been much written on the subject of software quality metrics, such as cyclomatic complexity. Whilst we do not believe that having good software quality metrics is equivalent to good software, we do believe that having bad metrics is indicative of a problem. As a result, we measure and limit them for every commit into our repository.