Dogfooding
👁 682↗ 3
Есть такой термин в разработке - dogfooding. Буквально "есть собственный корм для собак". Появился в Microsoft в 1988 году, когда один из менеджеров написал внутреннее письмо с призывом использовать свои же продукты.
Смысл простой - если ты делаешь продукт, но сам им не пользуешься, ты не знаешь где он болит.
У меня сейчас происходит забавная ситуация. Я делаю один проект, если коротко, то это инструмент для управления API-контрактами между сервисами. И сегодня я начал использовать этот проект, для того чтобы управлять API-контрактами этого же проекта.
То есть продукт документирует сам себя.
И вот что особенного в этом подходе. Когда ты пишешь инструмент для других - ты думаешь абстрактно. "Ну тут пользователь нажмёт, тут выберет, тут увидит результат". Звучит логично.
А когда сам садишься и пытаешься через свой же интерфейс опубликовать реальный контракт с 40+ эндпоинтами - сразу вылезает всё. Тут неудобно. Тут непонятно. Тут вообще зависает.
Баги, которые сложно найти через тесты - нашлись за 10 минут реального использования.
Мне кажется, dogfooding это самый честный вид тестирования. Потому что ты не проверяешь "работает или нет". Ты проверяешь "хочу ли я этим пользоваться сам".
Если ответ нет - то намного вероятнее, что и другие не захотят.
1743