Есть проекты, где мы обрабатываем данные, поступающие извне системы. Приходят они разными способами: из сторонней системы через специальный интерфейс, импортируются из Excel\CSV\TXT-файлов, забиваются руками.
Каждый раз встает вопрос о корректности входных данных, и каждый раз приходится слышать: "Вы же профессионалы, вы же могли предусмотреть защиту от дурака? Можно же подстелить соломку? Не надо ссылаться на зафиксированные требования о формате/допустимых значениях данных - мы живем в реальном мире, и жизнь часто непредсказуема".
Мой ответ таков. Клиента всегда прав только тогда, когда он платит деньги за реализацию своих пожеланий, а профессионал - тот, кто получает оплату за свою работу, соответствующую оговоренным требованиям.
Мы получили задание на проектирование автомобиля для движения по асфальтированной дороге с бензиновым двигателем. Мы сделали этот автомобиль. То, что на заправке, игнорируя предупреждение на горловине бака, вы залили в него солярку - это ваши проблемы. Не надо удивляться, что машина не едет.
Да, мы могли предусмотреть такой вариант, и сделать машину с двумя двигателями, с возможностью определения типа топлива, залитого в бак. Но никто не может остановить вас и не позволить залить в следующий раз спирт или растительное масло. Представляете, во сколько обошлось бы проектирование и производство такого автомобиля?
А если бы вам вздумалось прокатиться по бездорожью, или, паче чаяния, проплыть по воде? Если учитывать все возможные нештатные варианты использования транспортного средства, его цена должна стремиться к бесконечности.
Мы проявили свой профессионализм, когда понимая все эти сложности и экономя твои, заказчик, деньги, оговорили формат и тип передаваемых данных. Мы ввели ряд ограничений, которые позволяют свести бесконечное множество вариантов представления данных для обработки к конечному, очень ограниченному набору. Мы проинформировали тебя об этих ограничениях в инструкции и в интерфейсе. Мы предусмотрели вариант несоответствия присланных нам данных требованиям, выведя пользователю сообщение об ошибке. Мы не чувствуем за собой вины. Ошибка в передаваемых данных - проблема на твоей стороне и мы информировали тебя о ней. Исправь ее - и все заработает.
Комментариев нет:
Отправить комментарий