Tiering the contract for fixed and agile components (Option C) and limiting the number of iterations for development (Option D) are the most effective controls for managing development costs and ensuring the profitability of the project while allowing for the flexibility needed in agile practices.