Size, control flow, data structures, intermodule structure, etc.
Cyclomatic complexity is the graph theoretical complexity of a computer program's flowchart.
In other words, the number of areas enclosed by a flowchart. Usually consciously determined by management decision. Cyclomatic complexity must be positive with an upper bound of 10 being recommended. Most well-developed for application to individual subroutines. Productivity is chiefly a management concern, while reliability is a quality factor directly visible to users of software systems.