One of the obstacles is security. Programmers don't have the rights to even see their software in production environments. Designers and testers have access only to small (often not representative) subsets of data, and it's different subsets than the users see. Moving data from one system to another isn't easy when you don't have anyone who has enough access to look at the data in both systems.