Software sizing, estimation, and risk management