Once the parameter is marked as mandatory PowerShell will prompt for value. That said, if you remove the mandatory attribute then you can set a default value with a throw statement:
function Deploy
{
param(
[Parameter()]
[ValidateNotNullOrEmpty()]
[string]$BuildName=$(throw "BuildName is mandatory, please provide a value.")
)
Write-Host "Build name is: $BuildName"
}