Простой пример. У вас есть какая то программа которая должна передавать отчет. Сегодня вы реализовали класс с сохранением в файл, а завтра вам надо будет переслать этот отчет другим способом. И каждый раз будете писать новый класс переписывая логику программы? Зачем. Когда создается интерфейс и при передаче отчета куда либо будет использоваться метод интерфейса. А вот как уже он будет реализован это дело десятое. Главное, что метод для передачи нужных данных будет четко задан за счет интерфейса.
Интерфейс это четкий набор методов для реализуемого его класса или структуры, требуемый в программе. И дело тут не в команде программистов.
Вот один из паттернов в котором применяются интерфейсы, где вызывается конкретный метод а за его реализацию отвечает совсем другая часть программы.