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

Сергей Мартыненко, 2022

Это производственный роман о разработке программного обеспечения. Во многом вдохновение я черпал из цикла «Бета-тестеры», много лет печатавшийся в журнале «Лучшие компьютерные игры».Главы относительно слабо связаны и, в принципе, читать можно с любой.В книге довольно много отсылок к «Глубинным знаниям» по Демингу. Психология, теория вариаций, методы познания мира.Главы достаточно обильно разбавлены юмором. Но это же байки. Если вам не нравится такой стиль изложения, просто не читайте.Примеров кода практически нет. Я не хотел повторять другие книги.Целевая аудитория – IT-шники. Остальным вряд ли интересно.В книге отсутствуют сцены насилия, курения, секса, употребления алкоголя.

Оглавление

Байка для оруженосца 6. Куб Неккера

— Скоро, скоро зацветет сирень — мечтательно протянул, глядя в окно и прихлебывая «Спринг Мелоди», Чеширский Кот. Он с интересом следил за крадущимися к Оруженосцу Зайцем и Шляпником.

— У, какая знакомая табличка, — вдруг заявил Мартовский.

Армигер чуть не подавился чаем и, кажется, с трудом сдержал порыв прикрыть листочки рукой:

— Да откопал тут в недрах интернета таблицу сочетаемости проектных ролей. Изучаю.

— Насколько, я тебя знаю, ты достаточно неглуп и достаточно настырен, чтобы не остановиться на одном варианте. — Шляпник поставил на стол круглую коробочку. — А потому переходи к нам, на темную сторону.

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

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

— И что, роль программиста везде не может сочетаться с остальными?

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

— Замечательно, — повернулся от окна Кот — Следующий ход?

— Поискать общее, — внесла предложение Соня.

За столом зашелестели бумажками.

— Че вы там шуршите. Я вам и так скажу. Во всех вариантах не рекомендуется сочетание ролей тестировщика и программиста, — прервала их, вставая, Соня.

Быстро проглядев листки, троица подтвердила вывод Сони.

— Иии? — просил с нажимом Заяц, и команда синхронно повернулась и выжидательно уставились на Оруженосца. Только Королева не стала отвлекаться от медитации над своим пауэром.

Но оруженосец уже довольно долго посещал тренировки на мышление в условиях стресса и не сплоховал:

— Модель MSF предлагает создавать минимальные коллективы не менее чем из трех человек. Не анализируя глубоко остальные модели, мы на основании несочетаемости ролей тестировщика и программиста можем выдвинуть гипотезу о том, что минимальный коллектив для создания относительно сложного ПО во всех моделях должен состоять минимум из двух сотрудников. Но это противоречит тем фактам, что: а) множество сложных больших продуктов создавались людьми в одиночку, б) в команде XP тестировщиков нет, что не мешает им быть успешными.

— Неплохо, — резюмировал Шляпник.

— Растешь, — хлопнул по плечу Заяц.

Соня одобрительно хмыкнула и мгновенным движением ухватила печенюшку.

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

Заяц с Шляпником пожали плечами. Для них вопрос не имел смысла, так как ответ был очевиден.

— Так можно сделать проект быстрее, — ответил Заяц и обратился к Соне: — Ты ведь модуль тоже писала, потому что так быстрее?

— Ну да, — ответила Соня.

— Заметим, наши коллеги в рамках одного проекта регулярно переключаются из одного ролевого кластера в другой. И все отмечают, что это переключение позволяет сделать проект быстрее. Замечу также, что у Сони это переключение происходит несколько легче, чем у остальных. — Увидев непонимающие взгляды, Чеширский пояснил: — Как программисты, да и как тестировщики вы посильнее Сони будете, но вот переключение между ролями для нее менее болезненно.

Участники безумного чаепития согласно кивнули.

— А теперь! — и жестом фокусника Кот достал из шляпы лист бумаги и протянул компании.

— Что это?

— Это куб Неккера, иллюстрирующий любопытный феномен. Вы может увидеть, что серая грань находится сзади?

Коллеги кивнули.

— Вы можете увидеть, что серая грань находится спереди?

Еще кивки.

— Но довольно трудно видеть и то и другое одновременно. Вероятно, с написанием кода и тестированием ситуация схожая. Довольно трудно мыслить в разных контекстах одновременно. Но можно, зная об этой особенности мышления, сознательно переключать контекст. — Помолчав, Чеширский добавил: — И снять ограничения на совмещения ролей.

— Полагаю, это не единственное ограничение, которое вам встретится в разработке ПО. Очень вероятно, что стоит явно разделять написание плана в терминах результатов, английское planning, и написание другого документа в терминах действий, английское scheduling. Попытка думать одновременно в двух контекстах, как правило, приводит к появлению забавных…

— Уродцев, — закончила Королева. — И хватит на сегодня. У нас еще релиз не выпущен.

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я