Personally, this part of PowerShell is among my favorites. The reason for this is the amount of control these concepts give you when you try to extend your work beyond simply running scripts to get things done. Functions that are packaged into a module give you a great productivity boost. It also means a smaller inventory of scripts, and close to no management overhead.
Without too much introduction, let us get down to business.