Принцип “черного ящика” можно представить буквально в виде черной куба с двумя отверстиями сверху и снизу. Представили? А теперь давайте попробуем туда что-нибудь насыпать. Например, рис. Мы берём стакан риса, насыпаем в верхнюю дырку черного ящика и наблюдаем, что происходит. Самые творческие из нас, наверное, уже представили, что из нижнего отверстия посыпались роллы или рисовая мука, но нет. Посыпался тот же рис.
Давайте попробуем ещё раз. Только теперь вместо крупы мы попробуем налить в верхнее отверстие стакан воды. Наливаем… И… Из нашего ящика посыпались кубики льда. Вот наконец-то пошли чудеса. Попробуем ещё раз – стакан воды наливаем в ящик, снова получаем кубики льда.
Опытным путем мы поняли, что данный черный ящик перерабатывает воду в лёд. При этом мы не знаем как точно он это делает, что находится у него внутри. Но, если нам нужно будет охладить напиток, мы воспользуемся нашим “холодильным” черным ящиком.

Вообще, любой продукт в реальном мире может рассматриваться как “черный ящик”. Начиная с простых вещей, таких как соковыжималка или хлебопечка, заканчивая такими сложными, как медицинское диагностическое оборудование. Нам не нужно знать как оно работает, но мы знаем, что нужно подать ему на вход, чтобы получить нужный нам результат.
Данный принцип позволяет программистам в выстраивании самых сложных систем, переключаясь с одного уровня абстракции на другой. Бизнесу же важно понимать, что каждая ИТ-система в конечном итоге направлена на переработку данных по принципу “черного ящика”. Какие-то данные в него залетают, а какие-то из него вылетают. И “летят” в другой “черный ящик”.
В следующий раз, обсуждая внедрение какой-либо ИТ-системы, задайте себе вопрос: понимаю ли я в каком виде должны загружаться в эту систему данные, чтобы я получил на выходе нужный мне результат в том виде, в котором я ожидаю?