Maintaining focus on the core user problem during collaborative software development prevents attachment to specific technical implementations