Байка для оруженосца — 17. Декада не в счет, или Совершенная и несовершенная форма управления.

Январь 13, 2017

Примечание. Байка за номером 16 на текущий момент содержит ненормально большое количество ненормативной лексики и пока не может быть опубликована.

——–
Жизнь перед Новым Годом текла неторопливо. Подчищали старые хвосты, обновляли документацию, писали дополнительные скрипты для мониторинга промышленного стенда и т.д. Только код не писали. Кто ж выводит релиз в последнюю декаду? Нет, слухи о том, что это может окончиться благополучно, естественно, ходят. Многие любят рассказать о том, как они нарушали правила безопасности и все оканчивалось благополучно. К сожалению, альпинисты, которые нарушили правила и погибли, уже не могут поделиться опытом. Типичная «ошибка выжившего».

Потому занимались относительно безопасными видами работ. Заяц давно носился с идеей сделать мониторинг промышленной среды не как в девятнадцатом веке, а по взрослому, с использованием карт Шухарта. И вот пришел Время и дал отмашку. Хороший мониторинг на каникулах — это не только спокойное дежурство саппорта, но и крепкий сон программистов. Для начала решили реализовать все критерии из «ГОСТ Р 50779.42-99. Статистические методы. Контрольные карты Шухарта.»

Читать дальше »

Байка для оруженосца-15. Четвертое правило воронки.

Сентябрь 27, 2016
Fais ce que dois, advienne, que pourra -
Делай, что должно, и будь, что будет.

В этот раз собрались не в офисе и не в рабочий день, а арендовали коттедж в загородном доме отдыха в воскресенье. И не от фирмы, а просто от себя. Такие вот IT-шашлыки [1]. Шашлыков, правда, не предвиделось. Приехала команда Королевы и хорошие ребята из других команд. Отмечали день тестировщика и день программиста. И заодно возвращение Оруженосца.

Читать дальше »

Байка для оруженосца- 14. Сбалансированная производственная цепочка.

Август 27, 2016

Сегодня очередное безумное чаепитие проходило на природе. Когда не было особой запарки с проектами, команда выезжала за город. Позади были картинг, пейнтбол, стрельба из лука. Впереди - волейбол и рыбная ловля. Вечером ожидались шашлыки десятка разных сортов, но до них было еще далеко.

Так что за огромным столом был традиционный для команды “five o’clock”. Но и на нем не обошлось без игр. Играли в игру из романа “Слишком много поваров” Рекса Стаута. Чеширский отобрал множество ингредиентов для заварки. Чабрец, липовый цвет, листья земляники … Всего дюжину добавок. И заварил пять огромных пузатых чайников. Но в каждый положил только десять компонентов. И теперь надо было угадать в каком чайнике чего не хватает. Организовалось две команды. Одной верховодила вернувшаяся с Байкала Соня, другой Шляпник. Королева и почтивший чаепитие свои вниманием Время были простыми участниками.

Читать дальше »

Байка для оруженосца- 13. Стратегия тестирования “Синдром стажера”.

Август 1, 2016

- Чего звали? - ввалился в кухню Армигер.
- Естественно, чайку попить. У вас же небось чай из пакетиков. - Заяц был само гостеприимство. - Садись, вот, лимончика отрежь. Или черничного варенья положи.
- Ага, черничное варенье самое то. У, как вкусно!
- Как у тебя с проектом? - перешел к делу Шляпник.
- Все отлично. Запускаем в промышленную эксплуатацию. Вот сегодня справочники залили.
- Справочники? Серьезно? В этом малюсеньком проекте? - Сарказм Зайца явно превышал температуру за окном.
- Ну да. ОКАТО, ОКПО…
- А тебя не смутило, что вторая буква “К”, а не “С”? Почему не ОСАТО? Не ОСПО? - Шляпник, как всегда, был доброжелателен.
- Так, стоп. - И Армигер открыл крышку своего нута. - Сейчас я посмотрю.
Пока Оруженосец яндексил, все наслаждались изысканным букетом чая с Шри-Ланки.

Читать дальше »

Байка для оруженосца-12. Китайская комната.

Июль 3, 2016

В этот раз друзья решили нанести визит вежливости и отправились на чай к Оруженосцу, который все еще был в краткосрочной командировке. В гости отправились вчетвером: Соня, Шляпник, Заяц и новая сотрудница Синица.

Компания ввалилась на кухню, и Шляпник представил нового коллегу:
- Знакомьтесь, это Синица, наша новая тестировщица, а это Оруженосец Королевы. Ну, или будет им.
- Приятно познакомиться.
- Взаимно.
- Чего такой смурной? Приемо-Сдаточные Испытания завалил? Из командировки не отпускают?
- Нет, с испытаниями все отлично. Заказчик был в восхищении и никак не мог поверить, что это не муляж, а готовый к эксплуатации софт. Кстати, спасибо, что натаскали писать программу и методику испытаний. До сих пор в шоке от того, насколько ГОСТ 34.603 позволяет настолько хорошо и быстро сделать софт.
- Дело не в ГОСТе, - нравоучительно сказал Заяц, - а в умении мыть руки перед употреблением бубликов и перед тем, как садишься за клавиатуру.
- Просто умение пользоваться ГОСТами осталось в 90-х. Ладно, колись. Чего случилось? - надавил Шляпник.
Читать дальше »

Байка для оруженосца — 8. Жизненный цикл задачи на изменение кода.

Июль 2, 2016

Дисклеймер.

Герои этого цикла иногда резки в высказываниях. Но в конце концов, это их право. Не со всеми их высказываниями я согласен, но я к ним прислушиваюсь. Мысль о том, что число задач в статусе «выполнено» может быть индикатором проблем в проекте в полном объеме я осознал только после чтения этой статьи.

———————————————-

Сегодня в кухоньке были все свои. Чеширский, Заяц с Шляпником, Соня и, конечно, Королева. Небольшой «чай-брейк» после релиза. Команда всегда делала небольшие паузы между большими блоками задач. Только Армигера не было. Его послали в небольшую командировку. Порулить в несложном проекте с чужой командой.

Соня, как всегда, дремала, лениво перелистывая очередную статью по тестированию, Шляпник с Зайцем азартно вели один из вечных споров типа «Пробелы-Табуляции», иногда скатываясь к проблемам генерации идентификаторов, а Королева с Чеширским просто пили чай. 15 минут это немного. Но и не мало.

— Я не опоздал? — с порога спросил Армигер.
— Заходи, заходи. Пока чай льдом не покрылся. Сегодня мы пьем какой-то редкий сорт, который Чеширский привез из Китая. — И Шляпник наклонил чайник над кружкой с эмблемой SQADays-10.
— Позавчера сам собирал. На плантации старого приятеля. Цените. — Поистине, связям Чеширского Кота оставалось только позавидовать.

Читать дальше »

Байка для оруженосца- 11. Ложная слепота и задача трех тел.

Июнь 28, 2016

grid_3.png
В кухне Шляпник предавался воспоминаниям и травил безумные истории.

- Разрабатывала как-то одна фирма мегасофт. И, как полагается мегасофту, багов там тоже было как термитов в термитнике. Заказчики выли в голос. В какой-то момент руководство узнало о такой профессии, как тестировщик. Круто. Организовали отдел, наняли кучу народа. И процесс пошел. Все как надо: выделенные тестовые стенды, трекер, чеклисты. Да-да процесс поставили как по-взрослому. С маджонгом и гейшами. Но почему-то заказчики выть не переставали. Примерно через полгода руководство робко поинтересовалось: а в чем собственно дело? Слова были немного другие, но смысл такой. И тут выяснилось, что забыли поставить процесс исправления ошибок. Трекер был полон багов в состоянии “New”.

В комнате раздались смешки, но быстро стихли. История выходила совсем невеселая.

Читать дальше »

Байка для оруженосца-10. Военные маневры.

Июнь 18, 2016

Армигер маялся в кухне. Он пришел слишком рано, но ему было невмоготу. Наконец пришли Шляпник и Заяц. Пришли так же неожиданно рано.
— У тебя вид, как будто собираешься на первое свидание и не знаешь, какой букет выбрать.
— Примерно так. Мне завтра программистов собеседовать. А я ж тестировщик.
Шляпник вздохнул, открыл окно, сорвал с растущей рядом липы полною горсть липового цвета и занялся завариванием чая.
— Не умеешь проводить собеседования — не проводи их. У тебя что, времени как у дурака махорки? — Заяц, как всегда, был в своем репертуаре.
— Кстати, ты в курсе, что корреляция между умением проходить интервью и умением работать отсутствует? — поддержал Мартовского Безумный коллега.
— Э-э-э…
— Ладно. Завариваем чай и ждем. Не наливаем. Просто ждем.

Через пару минут дверь отворилась, и вошло около дюжины незнакомых Оруженосцу людей во главе с Соней.
— Привет, Храбрый Мыш. На рекорд идешь? Какой ты раз? Пятый? — спросил Шляпник у одного из вошедших.
— Пятый, пятый. Пока до минус двенадцати не дойду — не успокоюсь.
Рипичип водрузил в центр стола огромную коробку и открыл ее. По кухне разнесся восхитительный запах свежеиспеченных плюшек с маком.
— Угощайтесь.
— Так, коллеги. Берем кружки, берем плюшки, пьем чай, — скомандовала Соня, — а Заяц тем временем все объяснит.
Когда все расселись за огромным столом и сделали по глотку, Заяц приступил к вводной части.
— Первое. Ваши резюме мы не читали. В нашей команде предпочитают добротную фантастику. Кэрролла, например. И да, у нас есть отдел кадрового учета, но нет отдела персонала. Так что ваши резюме вообще никто не читал.
Кто-то за столом закашлялся.
— Как нет отдела персонала?!
Заяц задумался.
— Как-то так. Надо у Чеширского спросить. Тебе надо, ты и спросишь. Продолжим. Собеседования у нас тоже нет. Ибо нефиг.
— Кстати, наличие и собеседования, и испытательного срока противоречит Трудовому Кодексу, — вставил реплику Шляпник.
— Для простоты мы просто берем на работу по краткосрочному контракту на две недели. По итогам двух недель делаем предложение. Или не делаем. Потом идет стандартное трудоустройство с трудовой и прочим. Иногда испытательный срок сокращается до недели.
— А как же три месяца?
— Зачем? — удивился Заяц. Если менеджер за две недели ничего не понял…
— То эти менеджеры работают в других командах, — прервал его Шляпник, — в отличных, замечательных командах. Но других. Не у Королевы.

— О чем это я? Ах, да. Но мы понимаем, что прийти сразу на две недели не для всех удобно. Поэтому мы регулярно проводим «Военные маневры». Никаких задач про люки и мух. Никаких инвертирований списка и сортировок.
— Понимаете, нам с Зайцем за последнею дюжину лет ни разу не приходилось писать сортировку. В реальных проектах.
— Точно. На этой работе вам в основном придется читать и править чужой код. Поэтому если вы умеете инвертировать список, но не способны читать чужой код, вам лучше попробовать свои силы в другой команде.
— Отличной, замечательной команде. Но другой.

— Несколько лет назад мы сохранили копию одного проекта. Все как полагается. Репозиторий, трекер, вики и прочая, и прочая.
— А репозиторий какой?
— Ты текст вакансии читал? Там все написано. Заметим, мы не требуем знания и опыта работы с этими средствами коллективной работы. Мы говорим, что в проекте придется работать с ними. Это не требования, как у некоторых, — и Заяц скосил глаз на соседний корпус. — Не требования, а условия работы. Так вот, на основании этого реального проекта у вас по четыре задачи трех разных типов. Все задачи делать не нужно, делайте шесть. Но нужно сделать минимум по одной задаче каждого типа. Исправить ошибку, сделать рефакторинг чужого кода и реализовать небольшую новую фичу. Рабочие места у вас оборудованы, но интернета нет. Телефон в бункере не ловит. Сделали задачи, залили в транк — свободны. Вечером пришлем ваш результат. На основании этого результата мы не принимаем. Эта оценка — ваш ориентир, на что вы можете рассчитывать. Мы берем и ведущих, и обычных, и начинающих. Стажеров тоже берем. Но мы рассчитываем, что ведущий программист наберет не более полудюжины минусов. И найти ведущего — большая редкость. Сделанная вами работа проходит юнит тесты, ревью кода. А потом начинается самое страшное. Ваш код начинают проверять тестировщики. И это самая точная оценка качества вашего кода.
— Вопросы есть? — скомандовала Соня. — Если нет, хватаем кружки, хватаем плюшки, идем в бункер.
Группу отправляющихся в бункер возглавила Соня, а в арьергарде пристроился Заяц.

— А ты тормозни, — придержал Оруженосца Мартовский. — В бункер успеешь.
Когда все вышли, Шляпник продолжил:
— Тебе, наверное, интересно, как идет оценка?
Оруженосец кивнул и налил новую чашку чая.
— Идеальная работа оценивается в ноль баллов. Это ровно шесть задач, с выдержанным стилем кодирования, прошедшие не только юнит тесты, но и тесты Сони. Такой результат встречается исключительно редко. Если точнее — встретился один раз за последние три года. Соня нашла, правда, одну ошибку, но сама признала, что для равновесия по Паретто это неизбежность.
— А кто это?
— К сожалению, он к нам не пошел. Живет в другом городе, а к нам просто зарулил на огонек. Продолжим. За каждый косяк идет от одного до дюжины минусов. Сделал меньше шести задач — минусы. Сделал больше — минусы. Вышел за час — минус. Не смог сделать по одной задаче каждого типа — минусы. Пренебрег кодестайлом — минусы. Использовал неправильную венгерскую нотацию — минус. Мы рассчитываем, что ведущий программист знает разницу между правильной и неправильной венгерской нотацией. Завалил юнит тесты — много минусов. Ошибку нашла Соня — меньше минусов. Не запустил юнит тесты после сборки — сразу дюжина минусов. Принципиально не уходит в фичебранч… За это надо бить ногами, но мы просто минусуем. При коммите не указал номер задачи из трекера — минусы. Не перевел задачу в «Open» при бранче — минус. Не перевел при мерже в транк — полная обойма из минусомета. Не оставил комментарий — ладно, есть номер задачи. Оставил бессмысленный комментарий — четыре минуса. За каждый бессмысленный комментарий. И т.д. Вот полный список.
И Шляпник протянул брошюру.
— Большая часть проверок автоматизирована.
— А если минусов больше шести, то не берем на работу?
— Почему не берем? Берем. Еще как берем. И даже если минусов больше сотни, тоже берем. И даже при полном бите минусов тоже берем. Просто будет не ведущий. Но, по-любому, это решается после двухнедельного испытательного срока.
— А почему Храброго Мыша не взяли?
— Мы бы его взяли, да он директор одной из софтверных компаний. К нам ходит из любви к искусству. Как сам говорит, что если бы платил за каждый сеанс по штуке баксов — его фирма все равно была бы в огромном плюсе. И он с удовольствием берет тех, кто к нам не пошел, но показал высокий результат. Набрал не более 128 минусов.

Помолчав, Шляпник добавил:
— У него сейчас великолепный результат. За полгода и четыре сеанса он поднял свой уровень очень сильно. Ну все, тронулись. Смени Зайца в бункере.

——————-

[1] Рипичип, он же Храбрый Мыш - герой романа “Покоритель Зари, или Плавание на край света” из цикла “Хроники Нарнии”

Байка для оруженосца - 9. Чтобы больше сделать, нужно меньше делать.

Июнь 6, 2016

Оруженосец шел в переговорку, как вдруг за дверью кухни услышал знакомые голоса
- А я тебе говорю, Load! - горячился Заяц.
- Сам знаю, что, Load! Но тут еще куча букв.

Армигер автоматически свернул в знакомую дверь. В конце концов, до совещания целых 20 минут, чашка отличного чая не повредит недавно назначенному руководителю проекта, и нужно понять, почему Заяц с Шляпником разгадывают его кроссворд в неурочное время. Сейчас самое начало рабочего дня, и до положенного времени чаепития еще очень далеко. А к Времени и Заяц, и Шляпник относились очень трепетно. Один раз они уже “пошутили”. И Оруженосец решительно толкнул дверь. На кухне собрались все программисты, и только программисты.
Читать дальше »

Байка для оруженосца - 0. Герои цикла.

Май 22, 2016

Дисклеймер. Это не мой текст. Такими этих героев увидела моя жена. У меня другое мнение, но я уважаю чужую точку зрения.

——————————-
Красная Королева (и нет, это не про “Обитель Зла”) - Руководитель команды. Потрясающая женщина. Страшная женщина. Железная женщина. Нет, кроме шуток. У нее стальные нервы, железная хватка, титановые яичники и чугунная задница. Поговаривают, что единственное, что у Королевы сделано не из металла - это сердце. Потому что оно каменное. Несмотря на все вышеперечисленное, обожает свою команду, и та отвечает ей тем же. Почти никто не может понять, как Королеве удалось собрать такую дрим-тим, ведь у большинства этих хмырей уважающий себя менеджер по работе с персоналом даже резюме смотреть не стал бы. А вот поди ж ты. Команда Королевы справляется с любыми заданиями, разгребает любые факапы, и если бы дело было в СССР, то вымпел “Передовики производства” поселился в их комнате навеки. Королева знает свое дело от и до и никогда не отказывается поделиться опытом с молодежью - чай, корона не свалится.
Все знают, что в фирме может смениться даже руководство, но Королева никуда не денется. А если захочет уйти, то с ней уйдет и вся команда. И их с радостью примут - хоть в НАСА, хоть в НАТО. На худой конец и “Майкрософт” сойдет.

Безумный Шляпник
- один из мастодонтов. На его кресле висит свитер, в котором, как утверждает сам Шляпник, он написал свою первую программу, на ЭВМ с ферритовыми сердечниками памяти. Этот свитер до чертиков пугает новичков - может, потому что он в неприятную красно-зеленую полоску, навевающую ассоциации с “Кошмаром на улице Вязов” и мальчиком, которого съела кровать. Впрочем, Шляпник и сам кого хочешь сожрет, без всякой кровати. Но если не испугаться свитера и спросить Шляпника о чем-нибудь по предмету, можно узнать кучу всего интересного.

Мартовский Заяц - тоже один из тех, кто переносил “Страну багровых туч” на восьмидюймовых дискетах и помнит времена, когда компьютеры были большими. Славен тем, что когда вся команда бьется над участком кода и не может сладить, лепит код из говна и палок молча приходит, садится и пишет код, больше похожий на бессмысленный набор символов, который при этом, что удивительно, работает как часы. Главное - не лезть в него и не пытаться ничего менять.

Чеширский Кот
- наглая, беспринципная, циничная сволочь с очень злым чувством юмора, граничащим с сарказмом. Иногда кажется, что он умеет быть сразу в нескольких местах одновременно. За рабочий день успевает пофлиртовать с девушками на ресепшене, попить чаю с тортиком с бухгалтерами и сыграть с гендиром пару раундов в “Need For Speed”. Однако когда злопыхатели пытаются уличить его в лености и невыполнении служебных обязанностей, выясняется, что у Чешира всегда все готово. Просто он умеет распоряжаться своим временем. Злые языки утверждают, что у него был роман с Королевой, но это совершенно не их дело.

Оруженосец - молодой парень, который совсем недавно попал в цепкие руки Королевы команду. До этого считал, что,  отлично разбирается в своей специальности и в том, как работать в команде и над проектом. Теперь ему все чаще кажется, что он вообще ничего не знает. Глупо загадывать заранее, но, возможно, это та самая пешка, которая однажды дойдет до конца поля.

Соня - милая девушка, пришла в команду до Оруженосца, но, в отличие от него, своей карьерой особо не интересуется. Нет, когда начальству взбредает в голову отправить ее на какой-нибудь семинар и повысить ее квалификацию, она добросовестно ездит и даже получает свои законные сертификаты и дипломы. Которые потом складывает в верхний ящик стола - их там уже целая пачка. Короче, крепкий, надежный тыл. Для Сони главное, чтобы зарплаты хватало на жизнь и на хобби - в свободное от работы время она ездит по ролевым играм.

Квазичерепах - руководитель другой команды в фирме. Идиот, каких много, при этом самоуверенный, гоношистый и наглый. Убойное сочетание. Большинство факапов, которые приходится разгребать команде Королевы - его рук дело.