Сообщество - Программисты шутят

Программисты шутят

276 постов 1 255 подписчиков

Популярные теги в сообществе:

12

Обоз

Обоз

Генеральный директор нашей IT-компании, Соловейчик, сошел с ума по-своему. Он не стал бегать голым по офису и не купил остров в Тихом океане. Он съездил в Суздаль, выпил там медовухи и вернулся просветленным.

— Хватит, — сказал он, — низкопоклонства перед Западом. Мы русские люди. Какой еще, к лешему, «Скрам»? Какое «Велью»? С понедельника живем по правде.

Так в нашем опенспейсе наступило средневековье.

В понедельник мы собрались на PI-планирование. Теперь это называлось «Великий Сход». Атмосфера была тревожная. Программисты, люди по природе своей циничные и ленивые, жались к стенам.

В центр зала вышел наш Release Train Engineer, Аркадий. Раньше он носил худи с логотипом React, теперь на нем была льняная рубаха, правда, поверх джинсов. Глаза его горели нездоровым огнем.

— Братья! — возопил Аркадий. — Гой еси, мастеровые! Собрались мы ныне, дабы снарядить Обоз Поставки в путь долгий, на квартал грядущий!

Рядом со мной стоял Леха, наш тимлид. Леха — человек мрачный, его жизненная философия сводится к трем аксиомам: сервер упадет, заказчик идиот, а пиво должно быть холодным.

— Староста, — поправил я его шепотом. — Ты теперь не тимлид, а Староста Артели «Бэкенд».

— Я идиот, — буркнул Леха. — А Аркаша — Голова Обоза. Звучит как диагноз.

Началось все с «Оглашения Замысла». Вышли Попечители (бывшие стейкхолдеры) и полчаса рассказывали, как важно нам захватить рынок доставки собачьего корма. Потом слово взял Град-Зодчий (в девичестве — Enterprise Architect). Он развернул схему микросервисов, похожую на карту взятия Казани, и велел строить хоромы каменные, чтоб на века.

Нас разгнали по углам — на «Артельные Посиделки».

— Так, — сказал Леха, глядя в джиру. — У нас тут Затея висит. «Интеграция с платежным шлюзом». Как оценивать будем?

— В стори-поинтах нельзя, — напомнил я. — Соловейчик велел в Вершках. Или в Пядях.

— Хорошо, — Леха почесал затылок. — Тут работы много. API кривое, документации нет. Потянет на семь пядей во лбу.

— Много, — возразил тестировщик Гриша. — Не сдюжим. У нас Тяга слабая, половина артели в отпусках.

— Ладно, пиши пять вершков. И пусть Господь управит.

Самое страшное началось у Доски Пути. Это была огромная пробка на стене, вся опутанная красными нитками. Аркадий бегал вдоль нее, спотыкаясь о провода, и кричал:

— Чьи Путы?! Кто кого держит? Почему Артель «Фронтенд» не может начать верстать кнопку?

— Дык, — отозвался с галерки фронтендер, — мы ждем, пока бэкендеры базу окучат.

— Путы! — трагически воскликнул Голова Обоза. — Тугие, окаянные путы! Староста Леха, пошто задерживаешь братьев своих?

Леха молчал. Ему хотелось курить и, возможно, убить Аркадия.

К вечеру перешли к «Укрощению Лиха». Это был ритуал ROAM, только с национальным колоритом.

— Лихо первое! — зачитывал Аркадий. — «Сервер падает при нагрузке в тысячу юзеров». Кто возьмет на душу?

— Я возьму, — вздохнул Град-Зодчий. — Буду Опекуном сего Лиха.

— Добро! Лихо второе! «Дизайнер уходит в декрет».

— Тут мы бессильны, — сказали из зала.

— Значит, — Аркадий развел руками, — на все воля Божья. Принимаем как есть. Accepted. То есть, тьфу, «Смирение».

В финале было голосование. «Пятерня Веры». Нужно было поднять руку и показать пальцами, верим ли мы в успех нашего безнадежного Обоза.

Я посмотрел на Леху. Леха смотрел в пол. Он знал, что API не заработает, что сроки сгорят, а Соловейчик через месяц передумает и увлечется буддизмом. Леха хотел показать один палец. Возможно, средний.

Но он был Старостой. У него была ипотека и двое детей.

— Голосуем! — взревел Голова Обоза.

В воздух взмыли десятки рук. Все показывали открытую ладонь. Пять перстов. Полная вера. Зуб даем, всё исполним.

— Любо! — прослезился Аркадий. — Сдюжим, православные! Трогай Обоз!

Мы вышли на улицу курить. Шел мокрый снег. Москва стояла в пробках, гудела, жила своей бестолковой жизнью.

— Пять вершков, — задумчиво сказал Леха, глядя на огонек сигареты. — А ведь не сдюжим.

— Не сдюжим, — согласился я. — Зато как звучит! Не факап, а «Лихо». Не баг, а «Испытание». Чувствуешь величие?

— Чувствую, — сказал он. — Пойдем, Радетель. Нам еще код писать. Или, как теперь говорят, бересту марать.

И мы пошли обратно, в нашу избу из стекла и бетона, ковать цифровое счастье для неведомых Попечителей.


Толковый словарь урядства и благочиния в разработке программных изделий

Раздел I. О Людях и Чинах

  • Agile Team — Артель.

    Боевая единица производства. Группа людей, объединенных общей бедой и сроками. Живут в одной избе (или чате), делят радости и баги.

  • Scrum Master — Староста.

    Человек, который не пашет, не сеет, а только спрашивает: «Что ты делал вчера, мил человек, и что будешь делать сегодня?». Следит, чтобы в Артели не пили медовуху до релиза.

  • Product Owner — Радетель (Хозяин изделия).

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

  • Release Train Engineer (RTE) — Голова Обоза.

    Главный погонщик. Человек с самым громким голосом и самыми расшатанными нервами. Отвечает за то, чтобы все телеги ехали в одну сторону, даже если лошади сдохли.

  • System Architect — Главный Зодчий.

    Старец, рисующий на бересте красивые схемы, которые невозможно воплотить в жизнь. Живет в башне из слоновой кости (или в отдельном кабинете).

  • Developers — Мастеровые.

    Трудовая кость. Люди, которые своими руками превращают безумные фантазии Радетелей в работающий (иногда) код.


Раздел II. О Деяниях и Обрядах

  • PI Planning — Великий Сход.

    Двухдневное гулянье, переходящее в панику. Время, когда все обещают друг другу невозможное, зная, что не сдержат слова.

  • Team Breakouts — Артельные Посиделки.

    Время, когда Мастеровые запираются в углах и пытаются понять, как впихнуть невпихуемое в отведенные сроки.

  • Confidence Vote — Пятерня Веры (Рукоприкладство).

    Обряд всеобщего поручительства. Поднятая рука с пятью пальцами означает: «Зуб даю, сделаем». Один палец (особенно средний) показывать не рекомендуется во избежание гнева Попечителей.

  • ROAM — Укрощение Лиха.

    Ритуал заговаривания проблем. Делится на четыре вида заклинаний:

    1. Избыто (R) — проблему решили (спрятали под ковер).

    2. Взято на душу (O) — нашли крайнего.

    3. На всё воля Божья (A) — смирились с неизбежным крахом.

    4. Соломка подстелена (M) — придумали оправдание заранее.


Раздел III. О Мерах и Вещах

  • Feature — Затея.

    Крупная хотелка Попечителей. Обычно формулируется как «Хочу, чтоб было красиво и само работало».

  • User Story — Поделка.

    Малый кусок работы. То, что реально можно выстругать за пару дней, если не отвлекаться на перекуры.

  • Story Points — Вершки (или Пяди).

    Мера сложности, понятная только самим Мастеровым. Один вершок — работа легкая. Восемь вершков — без пол-литры не разобраться.

  • Dependency — Путы.

    То, что мешает жить. Красные нити на Скрижали Пути, символизирующие, что одна Артель ждет, пока другая перестанет лениться.

  • Capacity — Тяга.

    Сила лошадиная. Способность Артели тащить воз. Обычно переоценивается в два раза в начале пути и недооценивается в конце.

  • Program Board — Скрижаль Пути.

    Доска позора и надежды. На ней видно, кто работает, а кто создает Путы.

Другие подобные рассказы можно прочитать тут https://dovlatov-ai.web.app/

Показать полностью
6

Поезд дальше не идет

Поезд дальше не идет

Раз выжили в коммуналке под названием Scrum, пора переезжать в высотку. Там лифт не работает, консьерж пьет, но зато вид с балкона — на миллион долларов.

Этот переезд называется SAFe (Scaled Agile Framework).

Если Scrum — это джаз-банд в прокуренном кабаке, где трое играют, а один фальшивит, то SAFe — это симфонический оркестр государственной филармонии. Музыкантов сотня, дирижеров пятеро, ноты утверждены в министерстве, и импровизация карается расстрелом (или увольнением, что при ипотеке одно и то же).

Вот как устроен этот колосс.


1. Метафора: Поезд, идущий в никуда (Agile Release Train)

В Scrum была команда. В SAFe придумали ART (Agile Release Train) — Поезд Релиза.

Это не просто метафора, это диагноз. Представьте себе состав, в который загнали 5–10 команд (человек 100–120). Все они должны ехать в одну сторону и с одной скоростью.

  • Если одна команда (вагон) сойдет с рельсов — под откос летит весь состав.

  • Остановить поезд нельзя. Он едет по расписанию, которое называется Program Increment (PI).

  • Обычно этот PI длится 8–12 недель. Это время, за которое поезд должен доехать от станции «Мы ничего не понимаем» до станции «Вроде работает, но трогать страшно».

2. Главный спектакль: PI Planning

Раз в два-три месяца случается событие, по масштабу сравнимое с первомайской демонстрацией. Называется PI Planning.

Сгоняют всех: программистов, начальников, заказчиков и тех, кто просто зашел погреться. Два дня подряд сотня людей в душном помещении (или в Zoom, что еще хуже, так как нельзя выйти покурить с коллегой) планируют будущее.

  • Суть ритуала: Команды пытаются угадать, что они будут делать следующие три месяца.

  • Доска зависимостей (Program Board): Это такой алтарь SAFe. На стену вешают ватман, лепят стикеры и соединяют их красными нитками.

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

Задача мероприятия — убедить руководство, что красные нитки не затянутся у нас на шее.

3. Новые персонажи (Роли)

В Scrum было трое. В SAFe, как в бюрократическом аппарате, количество начальников растет в геометрической прогрессии.

  1. RTE (Release Train Engineer).

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

  2. Product Management (Управление Продуктом).

    Один Владелец Продукта (PO) уже не справляется. Появляется целая каста менеджеров. Они решают, куда едет поезд. Простые смертные разработчики их видят редко, как небожителей.

  3. System Architect (Системный Архитектор).

    Человек, который знает, как в теории всё это должно работать. Он рисует красивые схемы облаков и микросервисов. Когда схемы сталкиваются с реальностью (легаси-кодом 1998 года), Архитектор обычно грустит или говорит: «Это детали реализации».

4. Уровни (Levels)

SAFe любит иерархию.

  • Team Level (Уровень команды): Тут всё по-старому. Сидят ребята, пишут код, ругаются на дейли. Их жизнь почти не меняется, только давления больше.

  • Program Level: Тут живут менеджеры среднего звена и RTE. Тут решают судьбы фич.

  • Portfolio Level (Портфель): Самый верх. Там сидят люди в дорогих костюмах и делят бюджеты. Слов «рефакторинг» и «технический долг» там не знают. Там знают слова «Стратегические Темы» и «ROI».


5. Инновации и Планирование (IP Iteration)

В конце каждого квартала есть специальная итерация — IP (Innovation and Planning).

По задумке авторов методички, в эти две недели команда должна заниматься образованием, инновациями и отдыхом.

В реальности (как и в Советском Союзе) в это время мы в мыле доделываем то, что не успели за предыдущие два месяца. «Инновация» заключается в том, чтобы придумать, как сдать сырой проект и не покраснеть.


Вместо морали

SAFe — это попытка натянуть уютный свитер Agile на слона корпорации. Свитер трещит, слону неудобно, но выглядит солидно.

Если вам говорят: «У нас SAFe», знайте: будет много встреч, много красивых слов, красных ниток и длинных таблиц в Excel. Но в глубине, под толщей этой бюрократии, всё так же сидит одинокий программист, который просто хочет, чтобы его код скомпилировался без ошибок.

И в этом, пожалуй, есть какая-то надежда.

Другие подобные рассказы тут https://dovlatov-ai.web.app/

Показать полностью
4

Компромисс с бэклогом

Компромисс с бэклогом

Жизнь, как известно, хаотична и полна недоразумений. В попытке хоть как-то упорядочить этот абсурд люди придумали религию, уголовный кодекс и методологию Scrum.

Scrum — это не спорт и не ругательство. Это способ коллективного выживания в условиях неопределенности. Суть его сводится к простой мысли: лучше ошибаться часто и понемногу, чем один раз и фатально.

Вот как это выглядит изнутри.


Действующие лица

В этой пьесе три роли. И, как водится, согласия между ними нет.

  1. Владелец Продукта (Product Owner). Человек с фантазией. Он знает, что мы делаем, но понятия не имеет, как. Его задача — хотеть. Хотеть много, сразу и желательно вчера. Он приносит список требований, который деликатно называют Бэклогом, хотя правильнее было бы назвать его «Списком несбыточных надежд».

  2. Скрам-мастер. Это не начальник. Начальников мы не любим. Это, скорее, массовик-затейник с грустными глазами. Он следит за тем, чтобы ритуал соблюдался. Чтобы никто никого не убил во время спора. Он убирает препятствия. Например, если у программиста закончился кофе или вера в человечество, Скрам-мастер должен это исправить.

  3. Команда (Developers). Люди, которые работают. Молчаливые, угрюмые профессионалы. Они превращают фантазии Владельца в суровую реальность кода. Их задача — сделать так, чтобы оно заработало, и уйти домой вовремя (что почти никогда не удается).


Метафизика оценки: Часы и Сторипоинты

Самый тонкий момент — оценка труда. В часах измеряют тюремные сроки и время до закрытия винного отдела. Творческую работу в часах измерять пошло.

Поэтому придумали Story Points (SP). Это такие условные «попугаи».

  • Суть: Мы не говорим: «Я буду делать это два дня». Мы говорим: «Эта задача тянет на 5 попугаев».

  • Почему так? Потому что человек слаб и со временем у него сложные отношения. А вот сравнивать он умеет. Сказать, что одна задача в два раза гаже другой — это мы можем.

  • Числа: Используют числа Фибоначчи: 1, 2, 3, 5, 8, 13... Почему их? Чтобы жизнь медом не казалась.

    • 1-3 SP: Ерунда. Дело на перекур.

    • 8 SP: Придется попотеть. Возможно, пожертвовать выходным.

    • 13 SP: Это уже не задача, это эпопея. Ее нужно рубить на куски, иначе она раздавит вас своим величием.

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


Ритуалы (Events)

Жизнь в Scrum делится на отрезки — Спринты. Обычно это две недели. Две недели надежды, завершающиеся неизбежным дедлайном.

  1. Планирование (Planning). Собираемся и играем в покер. Серьезно. Называется Planning Poker. Берем задачу. Каждый кидает карту с цифрой (те самые попугаи). Если у одного «3», а у другого «13» — начинается беседа. Один утверждает, что там работы на час, другой — что там надо переписывать вседро. Истина, как обычно, где-то посередине, но ближе к пессимизму.

  2. Ежедневный Скрам (Daily). Пятнадцать минут позора каждое утро. Стоя. Говорим три вещи:

    • Что я сделал вчера (обычно — меньше, чем хотел).

    • Что сделаю сегодня (обычно — больше, чем смогу).

    • Что мне мешает (обычно — всё).

  3. Обзор (Review). Конец спринта. Показываем, что наработали. Важно: показывать надо работающую вещь, а не презентацию. Заказчик тыкает кнопки, хмурится или радуется. Мы стоим, потеем и ждем вердикта.

  4. Ретроспектива. Самое русское мероприятие. Сидим, говорим о судьбе. Вопрос «Кто виноват?» стараемся не задавать. Задаем вопрос «Что делать?». Решаем, как в следующем спринте жить лучше. Обычно решаем меньше курить и писать чистый код. В следующем спринте, конечно, все повторяется, но сам разговор имеет терапевтический эффект.


Вместо эпилога

Есть такое понятие — Velocity (Скорость). Это сколько «попугаев» команда умудряется прожевать за спринт. Сначала цифра скачет, как курс валют. Потом стабилизируется.

Главное в этом деле — Definition of Done (Критерий Готовности). Договоритесь на берегу: что значит «Сделано». «Сделано» — это не «я написал, вроде компилируется». «Сделано» — это «проверено, протестировано, залито, и за это не стыдно».

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

Другие подобные статьи тут https://dovlatov-ai.web.app/

Показать полностью
7

Промпт нейросети: "Напиши мне рассказ в стиле Хемингуэя про отладку кода"

Серия Гениальный промт

— Хорошо. "Человек сидел перед монитором. Монитор был чист. Код был чист. Ошибка была не видна. Он ждал. Потом пришла другая ошибка. Её тоже не было видно. Это была хорошая жизнь".

346

Факт

Серия Разработка приложений

Хороший программист всегда смотрит в обе стороны, прежде чем перейти улицу с односторонним движением.

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества