== Why is this an issue?

Programs that depend on a lot of different subprograms tend to aggregate too many responsibilities, and inevitably become harder to understand and therefore to maintain. Above a specific threshold, it is strongly advised to refactor the program into several smaller programs which focus on well-defined topics.


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

X subprograms are called, which is greater than the Y authorized.


=== Parameters

.Threshold
****

----
50
----

Maximum number of different subprograms called in a program
****


'''
== Comments And Links
(visible only on this page)

=== on 20 Mar 2015, 19:57:30 Ann Campbell wrote:
\[~pierre-yves.nicolas] does this rule raise issues for the total number of subprogram calls (i.e. if I call subprogram A 50 times) or on the number of different subprograms called (A, B, C, D, ... AA, BB, CC, DD...)

=== on 23 Mar 2015, 08:39:42 Pierre-Yves Nicolas wrote:
It's based on the number of different subprograms called.

endif::env-github,rspecator-view[]
