Software cost modeling: Some lessons learned