Functions are useful for:
breaking a program down into manageable pieces;
reducing code duplication;
encapsulating decisions, so that a single decision is not spread all across a piece of software;
making programs easier to modify.