Архив рубрики 'Управление проектами'

Байка-19. Система сменных командиров.

Среда, Май 31st, 2017

Армигер сидел за чашечкой иван-чая и ругался. Будучи выдержанным инженером, он по примеру Федора Кузьмича заменял ненормативную лексику малоизвестными терминами. Но интонацию то не скроешь…
- Ангидрида, твою, сикатив! Никотинамидадениндинуклеотидфосфат. Цикло-пентадие-нилтри-карбонилгидрид-вольфрам.
- О как! – Заяц восхищенно покрутил головой. – Но ты полегче, тут все таки де… Э-э-э… дамы.
- Ты кого тут детьми хотел назвать?! – грозно привстала Соня, автоматически хлопая правой рукой по левому бедру. К счастью, для Зайца, текстолитовый меч остался дома.
- Спокойно, спокойно. Я просто восхищаюсь. Такое выговорить сложнее, чем регулярное выражение для проверки корректности емейла написать.

(more…)

Байка-18. Периодическая система видов тестирования программного обеспечения.

Вторник, Март 21st, 2017

Очередное чаепитие, очередное подтрунивание друг над другом, очередная  постановка мозгов.
Шляпник предложил:
– А давайте попробуем масалу по рецепту чайной «Дом белого журавля»?
– Что за чайная? – заинтересовался Заяц
– Шикарнейшее место с потрясающей атмосферой. Как раз для наших посиделок.
– А что такое масала?
– Чай на молоке с индийскими специями и имбирем.
– О! А мне как раз прислали высокогорный шен-пуэр, – как обычно внезапно появился Кот и принялся колдовать над огромным чайником. – А в «Дом белого Журавля» обязательно сходим.
(more…)

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

Пятница, Январь 13th, 2017

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

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

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

(more…)

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

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

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

(more…)

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

Суббота, Август 27th, 2016

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

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

(more…)

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

Понедельник, Август 1st, 2016

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

(more…)

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

Вторник, Июнь 28th, 2016

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

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

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

(more…)

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

Суббота, Июнь 18th, 2016

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

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

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

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

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

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

——————-

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

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

Понедельник, Июнь 6th, 2016

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

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

Байка для оруженосца-7. Два вида списков задач.

Пятница, Май 13th, 2016

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

- Хай.
- Привет.
- Доброе!
- Кому доброе, а кому и… - проворчал Оруженосец.
- Ничего. Придет время, и под твоей клавой навернется релиз-кандидат.

К чайникам выстроилась очередь. Программисты бурно обсуждали проблемы мержа.

В кухню вошел Черепах Квази. Шум стих.

- Представляете, захожу я сейчас в 42-ю, а там никого нет. Только Соня книгу читает, - сказал Квази, ни к кому конкретно не обращаясь.
- И что? - возмутился Шляпник. - Рекса Блэка надо читать.
- И больше там никого нет. Это все потому, что у вас тайм шитов нет.
- Ну да, а у вас есть. Только на наши релизы заказчик не ругается. Напомнить, что сказал ваш заказчик на ваш последний релиз?

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

Заказчик, в прошлом бандит, с сожалением констатировал, что времена изменились и что сейчас другие методы работы с организаторами подобных эксцессов. Но команду разработчиков попросил заменить. Во избежание.

На тушение пожара выдернули команду Королевы. В майские праздники. Вроде бы откат сделать не проблема. Но не проблема, только если инженеры соблюдают культуру разработки. Как говорится, тяжело править код за программистами, путающими бранч и транк. Да и релиз в пятницу вечером перед большими праздниками нарушал все мыслимые нормы безопасности. За два безумных дня команда Королевы много говорила о своих коллегах. Как подытожила Соня: “Если бы стены могли проявлять впитанные слова - в первый день они бы стали похожи на подъезд в Нижнем Тагиле, а на второй почернели бы полностью”.

- Но в чем-то он прав, - сказал Оруженосец. - Я с утра не слишком загружен.
Заяц и Шляпник переглянулись.
- Я сделаю сенчу. - Шляпник отправился к шкафам, а Заяц подсел за стол оруженосца.
- Сейчас я тебе объясню одну из ключевых концепций современной теории управления. Для начала разберем совершенно тривиальную производственную цепочку из одного рабочего центра. Проще уже некуда.
1654.PNG
- Разработчики работают по списку задач. И этот список может быть одного из двух типов. С недостатком задач или с избытком. Для первой линии техподдержки, админов и т.д. предпочтительным является список с недостачей. Для программистов, как правило, предпочтительным является список с избытком, но иногда применяют и список с недостачей. Например, если программист дежурит на техподдержке. Применение списка с недостачей означает, что разработчики обязаны часть времени простаивать. Обязаны! Если не простаивают - надо вызывать на ковер менеджера. Список с избытком означает, что часть задач обязана быть не сделана. Если делаются все задачи, опять же, нужно разбираться в проблемах управления. Представь, что мощность отдела программистов 100 единиц продукции в неделю. Для списка с недостачей рекомендуется, чтобы входящий поток заказов был в 70-80 единиц. Т.е. разработчики должны простаивать порядка 25% времени. Если используется список с избытком, то входящий поток должен быть отрегулирован на 130 - 200 единиц. Примерно вот так:
2654.PNG

Зеленые зоны - это хорошо настроенный поток. А красная - плохо.

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

- У нас список с избытком. Ты ведь знаешь, что часть задач закрывается триггером по истечении срока давности.
- Да, согласен. Но почему мы с Соней сегодня простаиваем?
- Потому что в производственной цепочке должно быть не более одного рабочего центра с избыточным списком задач. Этот рабочий центр называют ограничением системы. В нашей команде ограничением системы является группа программирования. И это правильно. Все остальные рабочие центры, такие как: менеджмент, тестирование, продажи, анализ - обязаны простаивать. Обязаны! Данный факт не согласуется с нашим представлением о мире и приводит к психологическому дискомфорту. Любой хороший список задач, что с недостачей, что с избытком, приводит к психологическому дискомфорту.

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

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