How do you balance the trade-offs between implementing COTS/GOTS solutions versus developing custom software?