A continuación, se muestran algunos elementos de riesgo identificados por [McConnell,1997]:
- Los clientes no conocen o no tienen claro lo que quieren.
- Los clientes no quieren comprometerse a tener un conjunto de requerimientos escritos.
- Los clientes insisten en establecer nuevos requerimientos una vez que se han fijado la planificación y el coste.
- La comunicación con los clientes es lenta.
- Los clientes no participan en las revisiones o son incapaces de hacerlas.
- Los clientes no están preparados técnicamente.
- Los clientes no dejan realizar el trabajo a la gente.
- Los clientes no entienden el proceso de desarrollo de software.
Según [Sommerville, 2005], obtener y comprender los requerimientos de los stakeholders (interesados) es difícil por varias razones:
- Los clientes a menudo no conocen lo que desean obtener del sistema informático excepto en términos muy generales. Pueden hacer demandas irreales o resultarles difícil expresar lo que quieren que haga el sistema.
- Los ingenieros de requerimientos, sin experiencia en el dominio del cliente, deben comprender los requerimientos que los stakeholders expresan con sus propios términos y con un conocimiento implícito de su trabajo.
- Diferentes clientes tienen requerimientos distintos. Es necesario descubrir las concordancias y los conflictos entre éstos.
- Los factores políticos pueden influir en los requerimientos del sistema. Por ejemplo, los directivos pueden solicitar requerimientos específicos del sistema que incrementarán su influencia en la organización.
- Pueden emerger nuevos requerimientos de nuevos clientes que no habían sido consultados previamente.
Además [Soto & González, 2010] identifican los siguientes:
- No se comprende claramente el alcance del sistema.
- No se logran identificar con claridad los productos resultantes del proyecto.
- Ni los integrantes del equipo de desarrollo ni el cliente logran especificar de forma apropiada el área de aplicación.
Establecer buenas relaciones con los clientes permite identificar mejor los riesgos y controlarlos durante el desarrollo del proyecto.