|
||||
|
Приложения Приложение 1. Разбор задачи для собеседования с программистами Итак, разбор задачи. Тест проверяет достижения соискателя скорее по п. 2 перечня требований, приведенного перед задачей, чем по п. 3 (если вы, конечно, еще помните, что там написано) Одновременно вы получаете представление об аккуратности кода и «доверчивости» при получении исходных данных. Вот решение, которое я хотел увидеть, без заморочек синтаксисом языка. Комментарий: если поезда могут приходить раньше или опаздывать более чем на половину суток, то для решения задачи необходимы дата фактического прибытия и прибытия по расписанию. Далее задача решается в предположении, что время опережения и опоздания не превосходит 12 часов.
Если испытуемый не заметил, что поезд, прибывающий по расписанию в 0.05, а фактически прибывший в 23.55, не опоздал на 23 часа 50 минут, а приехал раньше на 10 минут, то это очень грустно. Если увидел, но не сообщил вам (устно или в комментарии к тексту), что решение не работает при расхождениях с расписанием более полусуток, то это просто грустно. Кодировать по блок-схемам последние сорок лет уже не требуется, а на что еще такой годится? Наиболее поразившей меня за последнее время реакцией на эту задачу было удивленное «Как нет дат в исходных данных? Без дат вообще нельзя решить, без дат нет метода!». Я сразу почувствовал себя таким старым… Правда, как-то мы без методов обходились, поскольку объектно-ориентированных языков тогда еще не было. Приложение 2. Из записных книжек периода внедрения Обследование и разработка технического задания Начал новую жизнь: стер куки. * * *Этап обследования предприятия: слепой объясняет глухому, как выглядит Земля из иллюминатора космического корабля. * * *У нас же госучреждение. Шаг вправо, шаг влево – сразу служебная записка. * * *Сложно будет объяснить разработчикам, что «отдел» и «Отдел» – это разные виды подразделений, находящиеся на разных уровнях структуры. «Отдельный Отдел», наверное, тоже писать не стоит. Придется каждый раз писать «отдел (в составе Управления)» и «Отдел (вне Управлений)». * * *Информация отдела кадров: «Руководство не возражает, чтобы начальство отпустило сегодня своих подчиненных в 17 часов». Надо привыкать к терминологии. Вчера, например, вызвал их искреннее возмущение неправильно заполненной ежедневной справкой: «Неужели вы не понимаете, что ваш Т-ов находится не в отпуске, а в отгуле в счет отпуска?» * * *– В каком порядке визируется договор? – Договор визируется в хаотичном порядке. * * *Моя профессия уже давно стала бы мне невыносимо скучна, если бы я не менял предметные области. Ну где бы я еще узнал про бланковый индоссамент и нетелей средней степени стельности, да еще и в одном договоре? * * *На то, чтобы объяснить своим сотрудникам, что смешного в выражении «племенной боров», ушло полчаса. * * *Разбирали с программистом бухгалтерский сленг. Пришлось даже залезть в Даля, чтобы выяснить происхождение некоторых слов. Выяснилось, что «крыжить» происходит от «крыж», то есть крест, и исходно значило «помечать крестом», хотя сейчас большинство бухгалтеров крыжат галочками. Заодно разобрали слово «херить», происходящее от «хер», старого названия буквы Х, и означающее по Далю перечеркивать или помечать косым крестом. Программист подумал и сделал вывод, что херить – это крыжить под углом пи на 4. * * * Любые обсуждения любых проблем с любым сотрудником Х из множества {А, Б, В} на треть состоят из попыток доказать утверждение, что Y из множества {А, Б, В} – козел, где Y, как вы догадываетесь, не равен X. * * *После обсуждения очередной задачи я обязательно оформляю задание на программирование в письменном виде и даю подписывать сотруднику, эту задачу поставившему. Менеджер А такие постановки читает внимательно и в процессе чтения крыжит, то есть помечает плюсиком каждый пункт, с которым согласился. В процессе согласования задания он пользуется почти такими же подсказками, как в игре «Кто хочет стать миллионером?»: «Помощь зала» (допрос подчиненных), «50 на 50» и «Звонок богу». * * *Счастливы те, кто понимает разницу между учетом и регистрацией * * * Мне приходится ходить в бухгалтерию, потому что по телефону полную информацию от бухгалтеров получить нельзя: часть ее передается только с помощью жестов.(Федор Клабуков.) * * *Если в компании для документооборота используется электронная почта, никогда не задавайте руководству два вопроса в одном письме: если вы и получите ответ, то только на первый вопрос. Впрочем, в обычной служебной записке тоже не следует поднимать сразу две проблемы. Этот документ служит исключительно для наложения резолюции и направления по инстанциям (исполнять или согласовывать дальше), поэтому в нем глупо просить что-то у двух подразделений: документ окажется в итоге только в одном. * * *Инструкция по организации инструктажа по пожарной безопасности. * * *На станции Лосиноостровская кассир продает билеты как на обычные электрички, так и на скоростной поезд «Спутник». Для этой цели у него два одинаковых терминала с двумя принтерами для печати билетов и двумя программаторами для чиповых карт. Специально сравнил билеты: ИНН на них стоит один и тот же. Лишние тысячи три долларов на каждое рабочее место вместо подумать. Ну действительно, зачем думать, если эти деньги можно собрать с пассажиров. Куда ж они денутся… * * *Наказывать за отсутствие мозгов можно только из зависти. * * *– Не отвлекайте меня вопросами, я же руковожу. * * *У этого алгоритма логика, конечно, развесистая, но простая.(Андрей Янин.) * * *Можно ли обозвать генерального директора словом «пользователь»? Или лучше выделить отдельный АРМ руководителя, пусть он даже от АРМа пользователя ничем не отличается? И может ли гендиректор изменить или добавить запись в справочнике контрагентов? А если не может, то кто ему об этом скажет? И нужно ли ему об этом вообще говорить? * * *В большинстве компаний, в которых мне приходилось работать, штат делится на три части: руководство, сотрудники и «тоже люди». Наличие последних становится очевидным по употреблению фраз «Операторы тоже люди», «Продавцы тоже люди» etc. «Программисты тоже люди» я тоже слышал. * * *При обсуждении некоторых вопросов появляется желание предложить каждому участнику совещания надеть на голову обруч. Чтобы ни у кого голова не треснула. Иногда и самому надеть хочется. Я подозреваю, что короны в Европе именно таким способом появились. Сначала это был просто обруч, который надевал правитель, чтобы у него при решении сложных государственных задач не треснула голова. И только потом эти обручи стали делать из золота и украшать драгоценными камнями. А сегодня до меня наконец дошло, почему к короне стали приделывать вертикальные зубцы, а потом и большое количество обручей. Похоже, что корона исполняла еще и функцию радиатора охлаждения для перегретой от размышлений головы короля или герцога. Кстати, для теплоотвода идеальной была бы серебряная корона, затем следует корона из чистой меди (а вот бронзовая будет уже в четыре раза хуже) и только после них – золотая, а потом алюминиевая (но его еще не умели добывать). Применение других материалов было бы существенно хуже. А Владимир Михалев подсказал, что процедура помазания на царство служила на самом деле для нанесения на голову будущего монарха термопасты, обеспечивающей высокий теплообмен между головой и короной. А Intel все это по второму разу изобрел. Доработка функционала Смотрел настройки документов. Настройщик так и не понял, почему я веселюсь при виде экранных форм «Разнорядка» и «Страховой полюс». * * *– Этот модуль работает, зуб даю. – Значит, у тебя 32 попытки. * * *Руководитель проекта от фирмы-разработчика грустно говорит: – Кнопку для массового пересчета всех договоров вы уже заказали. Меня удивляет, что вы еще не заказали кнопку «Уволить всех». * * *Программист, отвечающий у разработчика за работу со словоформами, узнал, что в русском языке шесть падежей, а не семь, как он предполагал. Он мне объяснил, что перепутал с количеством цветов радуги. Хорошо, что число апостолов первого круга ему неизвестно. * * *– Получил письмо от вашего директора. Он пишет, что описанная проблема легко решается. Но если она легко решается, то почему она не решается? – Ну как же… потому что она решается легко, но до-о-о-олго…. * * *– Вова, у них что, в системе нет механизма транзакций? – Есть у них в системе механизм транзакций. Просто они им не пользуются. И голова у них, наверное, тоже есть. * * *Софт, не отчуждаемый от разработчика. Никаким способом не отчуждаемый. * * *Внедряемая информационная система при заполнении приказа о приеме на работу нового сотрудника задает вопрос: «Создать новое физическое лицо?» * * * Внедренцы хотят получить дополнительные деньги. На вопрос «За какие работы?» отвечают: «За доводку системы на площадке заказчика». При этом деньги за доработку и настройку они уже взяли. Бурно не понимаю, какую такую доводку системы нужно проводить после ее доработки. Один из моих сотрудников меланхолично замечает: «Теперь систему нужно подогнать по месту с помощью напильника». * * *Становлюсь нарицательным. Передали разговор между директором и сотрудником фирмы-разработчика: «Что вы со мной разговариваете как Орлов!» * * *Обсуждали идею создания специального продмага для женатых программистов. В таком магазине обязательно должны продаваться продукты с названиями «Мясо хорошее», «Картошка крупная», «Бананы негнилые» и «Колбаса какая-нибудь». Мне сказали, что я забыл главные продукты: «Что-нибудь к чаю», «Что-нибудь на десерт», «Что-нибудь на ужин» и продукт-апофеоз «Что-нибудь из еды». Конечно, в этом магазине должны быть и соответствующие единицы измерения продуктов: «немного», «не очень много», «на один раз», «сколько я обычно покупаю». Поехали Проблемы с быстродействием. Внедренцы советуют поставить пользователям более мощные компьютеры. Удивленно сообщаю им, что в ТЗ их система определена как система с тонким клиентом. Похоже, в процессе доработок клиент не на шутку располнел. * * *На экране системы сопровождения программного продукта рядом выводятся два поля: «Заявитель» и «Плановая дата устранения». * * *Модальное окно «Вы действительно хотите выйти из программы?» должно содержать три варианта ответа: «Да», «Нет» и «Еще как». * * *Метод разработки: картошку порезать, пожарить, подать на стол, а если заказчик заметит, что картошка не чищена, начать чистить. * * *Сегодня сформулировал функции ключевых фигур в ИТ-проекте. Таких фигур три: руководитель проекта, главный разработчик и главный аналитик. Аналитик отвечает за вопрос «почему разработали?», разработчик – «как разработали?», а руководитель – «кого за это нужно взгреть?». Как следствие, на вопрос «что сделали?» ответить не может никто. * * *А я понял, почему в этой версии системы не наблюдается никаких следов предыдущего опыта внедрения информационных систем: все обладающие памятью запоминают обещания Б. и увольняются, когда он их не выполняет. Остались только амнезированные. * * *Нет, смертная казнь для некоторых разработчиков – это слишком гуманно. Я бы приговаривал их к пожизненной эксплуатации собственных программных продуктов * * * Причина увольнения: саботировал невысказанное желание руководства. * * *Тоже стиль руководства: всегда принимать меры и никогда не принимать решений. И ведь он хорошо держится на своей должности. * * *Поскольку любая система работает без ошибок только в одном случае – когда ею не пользуются, – то для адекватного отражения реального мира в системе следует остановить реальный мир. Похоже, что большинство IT-консалтеров именно это и пытается сделать. * * *Состояние внедрения: кома. * * *База загигела. Федя сказал, что размер базы превысил гигабайт, подчеркнуто вскользь, между прочим. Но я заметил. Все-таки событие. Нам еще долго предстоит выслушивать истерики пользователей и утирать их слезы, воевать с внедренцами по поводу каждой формы ввода, вытрясать недоделанные куски, но все-таки речь уже идет не об игрушке, а об информационной системе, в которую мы запихнули три года работы нашей компании. * * *Уволен менеджер по сопутствующим товарам. Пока ехали из офиса на склад, я поинтересовался у исполнительного директора, что произошло. – Я, по-твоему, не права? – Права, конечно. Она милая женщина, но я бы ее уволил на год раньше, когда мы ей не смогли объяснить, что нельзя менять розничную цену, не проводя инвентаризации. Но сейчас какие события к этому привели? – Как какие? – удивляется. – Вы же сами сделали новый отчет по товародвижению, который я просила. – Но в отчете про уволить ничего не было. – Зато там было про торговую наценку. А когда я увидела, что торговая наценка по всем товарам, отпущенным со склада за месяц, меньше фонда заработной платы склада, я уже сама догадалась, что делать. Начинаю понимать, что на самом деле значит «использовать информационную систему». Эксплуатация В два часа ночи дома звонит телефон. Старший оператор интересуется, не звонил ли я ему сейчас. * * *Данные не обязательно копировать ежедневно. Достаточно это делать перед аварией с базой. * * *Узнал, что операторы за глаза зовут меня «папа». Сначала расстроился. Потом понял, что это все-таки не худший вариант. * * *Напутствие гендиректора: «Делайте что хотите, работайте ночами, но результат должен быть через час». * * *Не издеваясь и не повышая голоса, абсолютно спокойно объяснить мальчику из техподдержки, что «артикль» и «артикул» – это разные слова, сообщить их значения, а потом попросить писать слово «лучше» через «ч», а не через «д», а то мне неудобно показывать журнал заявок исполнительному директору. * * *Этот мальчик очень старательный. Поняв, что хромое правильнописание несколько меня нервирует, он теперь все тексты, которые я должен прочесть, проверяет с помощью Ворда. И Ворд сообщает ему, что в предложении «Заместа поля Версия мы можем писать имя компьютера» это самое «заместа» нужно писать раздельно. * * *Грустная шутка: «Компания „Супер-Софт“ признала неисправимой в текущей версии своей системы очередную орфографическую ошибку». * * *Мой сотрудник звонит пользователю и представляется: «Это Йохан-программист». Он не кривит душой и не нарушает правила: футбольно-фанатичный папа назвал его в честь Йохана Круиффа, легендарного нападающего сборной Голландии, а в компании принято представляться по имени: «Саша-программист», «Паша-программист». Но каждый раз, когда Йохан звонит новому пользователю и представляется, я представляю, что в этот момент происходит на другом конце провода… * * *Сегодня молодой человек, одетый в малиновый пиджак, горячо благодарил меня за то, что полтора года назад я уволил его с должности оператора. * * *Лучшим сообщением программы времен MS DOS было: Invalid user. Replace and strike any key. А сейчас, конечно же: User was successfully ignored. * * *Кандидат пишет в резюме: «Не имею вредных привычек». Он не догадывается, что в нашей фирме вредной считается привычка ходить домой ночевать. * * *И по прочтении фразы «Ваши предложения прошу высылать в почту» бросил в мусорную корзину очередное резюме. * * *– Я сейчас еще подумаю, и скажу вам, какую программу вы должны были написать вчера. * * *Ощущения, которые я испытываю, когда понимаю, что забыл дома мобильник (на 80 % оплачиваемый фирмой), больше всего похожи на ощущения при потере невинности: смущение, перемешанное с неимоверным облегчением. * * *– Мы сегодня собрались, поскольку у сотрудников накопилось много вопросов, и по офису начали циркулировать различные слухи. Мы ответим сегодня на все ваши вопросы. Мы не уйдем, пока не ответим на каждый ваш вопрос. Но ответ на все вопросы у нас один: мы пока не знаем. * * *А знаете самый простой способ синхронизации любых баз данных? Это полное их уничтожение. Приложение 3. Страшный сон в приказах ПРИКАЗ ПРИКАЗ |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|