Search-based techniques for optimizing software project resource allocation