• In my experience, the most effective app development happens when there is a more fuzzy line between the developers and their clients. In my company (a large manufacturing company), we ask that each client designate a superuser. This is someone who understands their business very well and also has a good "sense" of how data moves and is stored, especially in their specialty area. This person is heavily involved in requirements gathering, testing, and training. We've also benefited greatly from having developers that have some hands-on experience in the client's business. This allows the developers to anticipate future gotcha's, develop a best-practices approach to the app's workflows, an council the client on what they really need, rather than what they think they need. Using this perspective, we've found that business knowledge is almost as important as technical knowledge.