Distributed Software Development: Toward an Understanding of the Relationship Between Project Team, Users and Customers