– Ну, говорил.
– Так в чем же я виноват?
– А почему ты нас не убедил, что это правильно?!!
Впрочем, это самый легкий случай. Мне известен разработчик программы учета, к которому клиент привел своих бандитов с объяснением, что он своих долгов отдать не может, потому что не может понять, кто должен ему самому, и все из-за этой дурной программы. К счастью интеллекта бандитов оказалось достаточно для правильного разрешения конфликта.
После прочтения этой работы может сложиться впечатление, что внедрить автоматизированную систему вообще невозможно.
Практически на каждом этапе каждого внедрения такое же впечатление складывается и у меня, так что мне приходится напоминать себе, что у меня за плечами есть опыт успешного внедрения систем, да еще и немалый.
Я должен также признаться, что по результатам внедрения мне несколько раз платили обещанную заранее премию.
Это должно вернуть вам утраченный оптимизм.
Так что успехов вам.
Приложение 1. Разбор задачи для собеседования с программистами
Итак, разбор задачи.
Тест проверяет достижения соискателя скорее по п. 2 перечня требований, приведенного перед задачей, чем по п. 3 (если вы, конечно, еще помните, что там написано) Одновременно вы получаете представление об аккуратности кода и «доверчивости» при получении исходных данных. Вот решение, которое я хотел увидеть, без заморочек синтаксисом языка.
Комментарий: если поезда могут приходить раньше или опаздывать более чем на половину суток, то для решения задачи необходимы дата фактического прибытия и прибытия по расписанию. Далее задача решается в предположении, что время опережения и опоздания не превосходит 12 часов.
ЕСЛИ НЕ КОНТРОЛЬ_НА_ВРЕМЯ (ВРЕМЯ_РАСП) ИЛИ
НЕ КОНТРОЛЬ_НА_ВРЕМЯ (ВРЕМЯ_ФАКТ)
ТО ВЫЙТИ.
Комментарий: Я бы удовлетворился и без описания функции КОНТРОЛЬ_НА_ВРЕМЯ.
РАЗНОСТЬ:= МИНУТЫ (ВРЕМЯ_РАСП) – МИНУТЫ (ВРЕМЯ_ФАКТ);
Комментарий: 1440 = 24 х 60 – количество минут в сутках, а 720 – в полусутках.
ЕСЛИ РАЗНОСТЬ <= —720
ТО РАЗНОСТЬ:= РАЗНОСТЬ + 1440
ИНАЧЕ ЕСЛИ РАЗНОСТЬ >= 720
ТО РАЗНОСТЬ:= РАЗНОСТЬ – 1440;
ЕСЛИ РАЗНОСТЬ = 0
ТО ПЕЧАТАТЬ («ПРИШЕЛ ВОВРЕМЯ»)
ИНАЧЕ ЕСЛИ РАЗНОСТЬ > 0
ТО ВЫВЕСТИ («ПРИШЕЛ РАНЬШЕ НА», ЧАС_МИН
(РАЗНОСТЬ))
ИНАЧЕ ЕСЛИ РАЗНОСТЬ < 0
ТО ВЫВЕСТИ («ОПОЗДАЛ НА», ЧАС_МИН (—РАЗНОСТЬ))
Если испытуемый не заметил, что поезд, прибывающий по расписанию в 0.05, а фактически прибывший в 23.55, не опоздал на 23 часа 50 минут, а приехал раньше на 10 минут, то это очень грустно. Если увидел, но не сообщил вам (устно или в комментарии к тексту), что решение не работает при расхождениях с расписанием более полусуток, то это просто грустно. Кодировать по блок-схемам последние сорок лет уже не требуется, а на что еще такой годится?
Наиболее поразившей меня за последнее время реакцией на эту задачу было удивленное «Как нет дат в исходных данных? Без дат вообще нельзя решить, без дат нет метода!». Я сразу почувствовал себя таким старым… Правда, как-то мы без методов обходились, поскольку объектно-ориентированных языков тогда еще не было.
Приложение 2. Из записных книжек периода внедрения
Обследование и разработка технического задания
Начал новую жизнь: стер куки.
* * *
Этап обследования предприятия: слепой объясняет глухому, как выглядит Земля из иллюминатора космического корабля.
* * *
У нас же госучреждение. Шаг вправо, шаг влево – сразу служебная записка.
* * *
Сложно будет объяснить разработчикам, что «отдел» и «Отдел» – это разные виды подразделений, находящиеся на разных уровнях структуры. «Отдельный Отдел», наверное, тоже писать не стоит. Придется каждый раз писать «отдел (в составе Управления)» и «Отдел (вне Управлений)».
* * *
Информация отдела кадров: «Руководство не возражает, чтобы начальство отпустило сегодня своих подчиненных в 17 часов». Надо привыкать к терминологии. Вчера, например, вызвал их искреннее возмущение неправильно заполненной ежедневной справкой: «Неужели вы не понимаете, что ваш Т-ов находится не в отпуске, а в отгуле в счет отпуска?»
* * *
– В каком порядке визируется договор?
– Договор визируется в хаотичном порядке.
* * *
Моя профессия уже давно стала бы мне невыносимо скучна, если бы я не менял предметные области. Ну где бы я еще узнал про бланковый индоссамент и нетелей средней степени стельности, да еще и в одном договоре?
Читать дальше
Конец ознакомительного отрывка
Купить книгу