Pero esto no es más que un aspecto concreto de un problema global, ubicuo y de difícil solución: los programadores, por lo general, no conocen o no entienden las necesidades de sus clientes, y los clientes, por regla general, ni entienden sus propias necesidades y mucho menos saben explicarlas. La calidad del software resultante, por lo tanto, es siempre directamente proporcional a la habilidad del programador, a la habilidad del cliente, y a la capacidad de ambos de comunicarse.