I'm inspired to write this as I'm amazed by the online learning pedagogy the Google Udacity Android basics programming course:
Understanding human psychology and behavior is important to designing a product or service.
A product or service may deliver great benefits, however if it is not designed in a proper way then none of the benefits may be derived.
For example, a course may deliver great content, but because of poor design, it may be conducted at a timing when students are likely to feel fatigue, duration of course too long, unfriendly facilitators, a voice that makes student feel uncomfortable and long paragraphs that goes on and on without a break like this one.
It is not easy for the product or service developer to understand what makes the product or service hard to use because he is good with using it, therefore it will be good if he can get someone who have no knowledge of how to use the product or service at all to test out the product and give him feedback.
Getting a tester is costly, an alternative is to provide the beta of the product or service to users for free or at low cost in exchange for feedback. When users stop using the product there must be a reason, follow up to offer some incentive in exchange for a good feedback.
Suggest all teachers to be learners and all product developers to be users. Take the example of teacher, when you learn something totally new, you will also learn the challenges of a learner, which allows you to put yourself in the shoes of your students and refine your pedagogy.
Also use the products or services of other teachers to learn the good points in their teaching style.