Any two from: Avoids code repetition — write once, call many times [1]. Makes programs easier to read, understand, and maintain [1]. Allows different programmers to work on different subroutines simultaneously [1]. Easier to test individual sections [1].