As you all know, official syntax of PowerShell is <verb>-<noun>. For example Write-Script.
However this is not always the case – there are many functions that doesn’t follow this naming convention and reason is usually that function name is already taken or author wants to make obvious to which technology is function related.
You get afterwards function names like SCCMImport-Server or SCCM-ImportServer.
I prefer to use “functionality scopes” (my term, sorry, couldn’t come with something better ;)).
Consider example where I want to create new object in Citrix. Logically I would like to call function New-Object, however that was already taken by PowerShell team ;)
Typically I will create function with name Citrix-NewObject or better New-CitrixObject.
What I can do instead is that I can prefix verb-noun:
It is much easier to use and read, also allows you to use simple dumps (Dir Function:Citrix:* to get all Citrix-related functions).