Complexity metrics and customer involvement in software development

implications for managing productivity and quality