[2010 q1] Give three reasons why it is difficult to build software systems that meet client requirements and are delivered on-time and on-budget?
-
People don't know what they want: The client requirement goalposts could shift as the client changes their mind upon seeing particular functionality.
-
Resource can be unreliable: Whether it be people, tools or hardware you can't predict the future. If you loose a team member you need to spend not only the time recruiting a new person but also them familiarising themselves with the product.
-
Bad estimators. Unless we have some historical data to estimate the amount of work required for functionality X, we need to use a model to estimate our required work. The model may be unable to predict issues during integration.
[2010 q4] Briefly explain a way in which a project cost estimate may be biased (that is, consistently underestimating the amount of effort involved).