Good, Fast, Cheap: Balancing Software Project Trade-Offs