Вы разрабатываете интерфейсные вещи, когда проектируете системы, которые взаимодействуют с клиентом ваших систем. Обратите внимание, что слово клиент довольно большое, но в основном означает, что вы работаете над интерфейсом, когда предоставляете интерфейс для внешнего мира.
Большинство веб-сайтов являются лишь интерфейсом, то есть они предоставляют информацию внешнему миру, и в большинстве случаев эта информация может храниться довольно просто в виде текста в файлах HTML.
Вы проектируете серверную часть, когда вам нужно предоставлять услуги и инкапсулировать функциональность, которую будет использовать ваш интерфейс. Это позволяет перенести часть рабочей нагрузки с клиента (интерфейсная часть) на сервер (фоновая часть). Вы будете делать это в тех случаях, когда вам нужно координировать информацию от разных клиентов, которые могут одновременно обращаться к вашей системе. Или если вам нужно использовать центральное хранилище данных для сопоставления динамических данных, или еще раз, если вам нужны определенные требования безопасности. Этот список ни в коем случае не является исчерпывающим, просто быстрые примеры.
Короче говоря, Front-end (клиент) представит информацию внешнему миру. Обычно это люди через какой-то графический интерфейс, либо HTML, либо иным образом.
Back-end предоставит средства для централизации сервисов, которые будут использоваться вашим клиентом. Использование серверной части не является обязательным и увеличивает сложность системы, но позволяет лучше управлять сложностью, присущей системе, которую вы пытаетесь построить.
Например, можно предоставить услугу, такую как вики, только через интерфейс, но у него будет много ограничений, которые при использовании интерфейса для хранения данных и его передачи интерфейсу будут разрешаться более естественным образом.