Армигер чуть не подавился чаем и, кажется, с трудом сдержал порыв прикрыть листочки рукой:
– Да откопал тут в недрах интернета таблицу сочетаемости проектных ролей. Изучаю.
– Насколько, я тебя знаю, ты достаточно неглуп и достаточно настырен, чтобы не остановиться на одном варианте. – Шляпник поставил на стол круглую коробочку. – А потому переходи к нам, на темную сторону.
– У нас есть печеньки, – пропели в унисон Шляпник и Заяц и зловеще захохотали. Потом так же хором добавили: – сейчас мы эти таблицы анализировать будем.
– Перехожу, перехожу, – кивком головы выразив благодарность, Оруженосец взял печенье. – Действительно, я откопал несколько разных таблиц. Более-менее соответствующих друг другу, но отличающихся в деталях.
– И что, роль программиста везде не может сочетаться с остальными?
– Не везде. Как минимум с проектированием архитектуры сочетаться может. Хотя бы в одной из моделей, – присоединилась к беседе Соня. Из Сониного угла не было видно полдюжины листков, разложенных Оруженосцем на столе. Но благодаря дурному влиянию коллектива, Соня давно научилась думать на несколько ходов вперед и выдвигать высоковероятные гипотезы.
– Замечательно, – повернулся от окна Кот – Следующий ход?
– Поискать общее, – внесла предложение Соня.
За столом зашелестели бумажками.
– Че вы там шуршите. Я вам и так скажу. Во всех вариантах не рекомендуется сочетание ролей тестировщика и программиста, – прервала их, вставая, Соня.
Быстро проглядев листки, троица подтвердила вывод Сони.
– Иии? – просил с нажимом Заяц, и команда синхронно повернулась и выжидательно уставились на Оруженосца. Только Королева не стала отвлекаться от медитации над своим пауэром.
Но оруженосец уже довольно долго посещал тренировки на мышление в условиях стресса и не сплоховал:
– Модель MSF предлагает создавать минимальные коллективы не менее чем из трех человек. Не анализируя глубоко остальные модели, мы на основании несочетаемости ролей тестировщика и программиста можем выдвинуть гипотезу о том, что минимальный коллектив для создания относительно сложного ПО во всех моделях должен состоять минимум из двух сотрудников. Но это противоречит тем фактам, что: а) множество сложных больших продуктов создавались людьми в одиночку, б) в команде XP тестировщиков нет, что не мешает им быть успешными.
– Неплохо, – резюмировал Шляпник.
– Растешь, – хлопнул по плечу Заяц.
Соня одобрительно хмыкнула и мгновенным движением ухватила печенюшку.
– Но, вообще говоря, этого недостаточно, – начал анализ Чеширский. – Можно возразить, что XP-шники используют свою модель для уменьшения потерь на вариациях. Или что в проектах на полсотни инженеров разделение будет выгодно. Или, что если уже есть разделение на программистов и тестировщиков, то выгоднее запретить изменять роль в рамках проекта, чем не запретить. Для проверки последней гипотезы было бы очень удобно взять несколько параллельных вселенных с одинаковыми командами и одним разрешить, другим запретить. С параллельными вселенными у нас сегодня не получится, поэтому попробуем придумать эксперимент попроще. У нас есть тестировщик Соня. Она регулярно пишет сложные SQL-скрипты. Часто у нее уходит на это полчаса, хотя камрады справились бы с этим за пару минут. А недавно она написала модуль импорта отчетов в Excel. Вполне нормально написала. А еще у нас есть программисты. Которые регулярно пишут тестовые наборы и тестируют по ним. Вы зачем это делаете?
Заяц с Шляпником пожали плечами. Для них вопрос не имел смысла, так как ответ был очевиден.
– Так можно сделать проект быстрее, – ответил Заяц и обратился к Соне: – Ты ведь модуль тоже писала, потому что так быстрее?
– Ну да, – ответила Соня.
– Заметим, наши коллеги в рамках одного проекта регулярно переключаются из одного ролевого кластера в другой. И все отмечают, что это переключение позволяет сделать проект быстрее. Замечу также, что у Сони это переключение происходит несколько легче, чем у остальных. – Увидев непонимающие взгляды, Чеширский пояснил: – Как программисты, да и как тестировщики вы посильнее Сони будете, но вот переключение между ролями для нее менее болезненно.
Участники безумного чаепития согласно кивнули.
– А теперь! – и жестом фокусника Кот достал из шляпы лист бумаги и протянул компании.
– Что это?
– Это куб Неккера, иллюстрирующий любопытный феномен. Вы может увидеть, что серая грань находится сзади?
Коллеги кивнули.
– Вы можете увидеть, что серая грань находится спереди?
Еще кивки.
– Но довольно трудно видеть и то и другое одновременно. Вероятно, с написанием кода и тестированием ситуация схожая. Довольно трудно мыслить в разных контекстах одновременно. Но можно, зная об этой особенности мышления, сознательно переключать контекст. – Помолчав, Чеширский добавил: – И снять ограничения на совмещения ролей.
– Полагаю, это не единственное ограничение, которое вам встретится в разработке ПО. Очень вероятно, что стоит явно разделять написание плана в терминах результатов, английское planning, и написание другого документа в терминах действий, английское scheduling. Попытка думать одновременно в двух контекстах, как правило, приводит к появлению забавных…
– Уродцев, – закончила Королева. – И хватит на сегодня. У нас еще релиз не выпущен.
Байка для оруженосца 7. Два вида списков задач
С самого начала рабочего дня Армигер скучал в чаепительной. За окном цвели яблони, а ему было нечего делать, и он составлял кроссворд на основании терминологии ISTQB. Кроме оруженосца в кухне был Чеширский, но он изучал какие-то документы. Но вот кухню омыла волна программистов во главе с Шляпником и Мартовским Зайцем.
– Хай.
– Привет.
– Доброе!
– Кому доброе, а кому и… – проворчал Оруженосец.
– Ничего. Придет время, и под твоей клавой навернется релиз-кандидат.
К чайникам выстроилась очередь. Программисты бурно обсуждали проблемы мержа.
В кухню вошел Черепах Квази. Шум стих.
– Представляете, захожу я сейчас в 42-ю, а там никого нет. Только Соня книгу читает, – сказал Квази, ни к кому конкретно не обращаясь.
– И что? – возмутился Шляпник. – Рекса Блэка надо читать.
– И больше там никого нет. Это все потому, что у вас таймшитов нет.
– Ну да, а у вас есть. Только на наши релизы заказчик не ругается. Напомнить, что сказал ваш заказчик на ваш последний релиз?
Квази гордо вышел из кухни. Присутствующим в комнате история была памятна. Чтобы выслужиться, Квази выпустил релиз почти вовремя. Почти. В пятницу вечером. В пятницу вечером 29 апреля. Сырой релиз положил промышленный сервер. Промышленный сервер розничной сети садовых магазинов. Промышленный сервер розничной сети садовых магазинов в начале дачного сезона.
Заказчик, в прошлом бандит, с сожалением констатировал, что времена изменились и что сейчас другие методы работы с организаторами подобных эксцессов. Но команду разработчиков попросил заменить. Во избежание.
На тушение пожара выдернули команду Королевы. В майские праздники. Вроде бы откат сделать не проблема. Но не проблема, только если инженеры соблюдают культуру разработки. Как говорится, тяжело править код за программистами, путающими бранч и транк. Да и релиз в пятницу вечером перед большими праздниками нарушал все мыслимые нормы безопасности. За два безумных дня команда Королевы много говорила о своих коллегах. Как подытожила Соня: «Если бы стены могли проявлять впитанные слова, то в первый же день они бы стали похожи на подъезд в Нижнем Тагиле, а на второй почернели бы полностью.»
– Но в чем-то он прав, – сказал Оруженосец. – Я с утра не слишком загружен.