Size: a a a

DocOps-сообщество

2021 April 29

ME

Maria Ermakovich in DocOps-сообщество
пуфон ♥
источник

DB

Dima Boger in DocOps-сообщество
Захотелось раскрыть мысль и немного пографоманить

У компании есть прозрачные цели: заработать деньги, захватить рынок, сделать образование доступным, быть этичным по отношению к сотрудникам, етц. В классных компаниях эти цели понятны и видны всем, и техписам, и девопсам, и C-level, и линейным менеджерам.

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

Когда в компании есть прозрачные цели, то любое решение можно приложить к этому компасу и попытаться понять, насколько это новое решение нас двигает в ту сторону. Продакт-овнер просит срезать углы и сделать говнокод? Но ведь мы потом никого нанять на этот проект не сможем, и всё равно переписывать. Фича нужна завтра и мы без неё потеряем тысячи долларов? Сделаем сейчас абы как, но в следующую неделю исправим.

С этим есть пара проблем:
- иногда результат нового решения может казаться слишком туманным: так никто не делал, мы такое не считали, может как хорошо повлиять, так и плохо — такие идеи никогда не пройдут проверку компасом, а часто именно они и являются прорывными
- если идея слишком простая или однобокая (только "заработать денег", например), то очень многие решения придётся проворачивать через "через пять лет это начнёт отнимать у нас деньги"

С первой проблемой можно бороться экспериментами на ограниченном флоу — если автор вопроса предложит "мне очень больно, но я не уверен насколько документация решит мою боль. Давайте разработчики два спринта будут писать документацию, а потом мы соберёмся и обсудим насколько это ок?".

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

В моей текущей команде мы большинство командных изменений проводим экспериментами. (лайфхак — в семье я пользуюсь той же тактикой)

Со второй проблемой чуть сложнее. Она требует не просто создания сложного "компаса", но и синхронизации его сразу у многих людей в компании. Я привык называть этот компас культурой компании, и для меня он не только про бизнес-решения, но и про корпоративные решения: с кем на вы, а с кем на ты; можно ли агрессивно троллить; в каком виде приходит критика; как ставятся задачи.

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

DB

Dima Boger in DocOps-сообщество
Мне очень нравится работать с людьми, у кого есть похожее ощущение рабочей ответственности. От них всегда можно ждать желания понять, разобраться, сверить компасы при конфликтах. Ты никогда не чувствуешь, что вокруг дураки, потому что в такой системе ты прекрасно понимаешь их цели и почему ресурс достался на их решение, а не твоё. И никто не считает дураком тебя 😏
источник

c

critskiy in DocOps-сообщество
шо, по с(к)раму живешь?
источник

DB

Dima Boger in DocOps-сообщество
хз, я давно не читал скрамбуки и аджайл-манифесты 🌚
источник

NV

Nick Volynkin in DocOps-сообщество
+1, я бы с тобой поработал вместе )
источник

ML

Maksim Lapshin in DocOps-сообщество
я хочу добавить, что у программистов зачастую самые эмоциональные критерии.
Т.е. более размытого термина чем «говнокод» ещё поискать.
источник

NV

Nick Volynkin in DocOps-сообщество
Вопрос "зачем нужен менеджер" очень широкий. Всё же зависит от индивидуальных особенностей менеджера, подчинённого и системы, в которой они работают.

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

NV

Nick Volynkin in DocOps-сообщество
Это точно :) Ни разу не слышал, например, о говнотексте или говнозадачах.
источник

ME

Maria Ermakovich in DocOps-сообщество
источник

AN

Andrew Nilove 💔 in DocOps-сообщество
Сегодня задался таким же вопросом. Сам занимаюсь продуктовнерством в мобильной разработке. Если команда выпускает говнокод на прод, то я говнопродуктовнер. А если копнуть глубже... продукт большой и команд много, которые пилят отдельные фичи. Т.е. я не продакт, а говнофичаовнер. Выпускаю на прод отдельные какахи.

Однако в любом случае лучше быть задорной какашкой, чем унылым г@вном. 😁
источник

MK

Mstislav Kazakov in DocOps-сообщество
Лучше быть унылым чистюлей, чем задорной фекалией, всё же.
источник
2021 April 30

MM

Mikhail Mironov in DocOps-сообщество
Всем привет. Есть одна задача: тимлид разработчиков хочет документировать релизы. Меня попросили подыскать какую-то лучшую практику для такого вида документации. Интересует именно техническая информация для внутреннего использования: что, куда и как было написано в течение спринта.

Буду рад, если что-то подскажите. Спасибо)
источник

ML

Maksim Lapshin in DocOps-сообщество
мы делаем следующим образом: у нас релизы строго раз в месяц.

Где-то с 1 по 8 число мая мы зарелизим версию 21.05
В версиях мы используем только и исключительно calendar versioning, потому что semantic versioning — утопия и работает только с игрушечным софтом, который никем толком не используется.

Значит все тикеты которые закрывали в апреле назначаются в редмайне на версию 21.05

В каждом тикете есть комментарий (берется последний) с текстом:

DESC: .....

На отдельной вики страничке в редмайне стоит макрос:


changelog('21.05')


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

Релиз находится в состоянии постоянной готовности по документированию тоже: копипаста из этой странички уже годится для ченжлога.
источник

ML

Maksim Lapshin in DocOps-сообщество
Это базовый уровень: ченжлог по фичам для сисадминов.

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

В емейл рассылке (у нас её заказчиком является маркетинг) должны быть ссылки на документацию в которой написано как заюзать каждую новую фичу.
источник

M

Max in DocOps-сообщество
Отдельное поле в Jira, которое заполняет разработчик или постановщик при формировании (и корректирует при сдаче) таски?
источник

RK

Ruslan Kosolapov in DocOps-сообщество
а в чём выражается тезис "семантик версионинг не работает"?  просто интересно
источник

ML

Maksim Lapshin in DocOps-сообщество
концепция semantic versioning подразумевает смену апи. Вчера было одно апи, а завтра другое.

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


Как правило всё таки сначала приделывают новое, экспериментальное. Потихоньку инкрементально приделывают новое апи, и/или меняют под капотом имплементацию.

Багов много, изменения серьезные, но старое апи не меняется. И вот у нас _совершенно новый_ продукт, а апи старое. При этом есть и новое и туда начинают всех переманивать.


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

Согласно semantic versioning только сейчас надо менять мажорную версию.
источник

ML

Maksim Lapshin in DocOps-сообщество
Semantic versioning остался со времен полуторалетних релизов на сидюках.

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

потом с фанфарами, фуршетом всё релизится.

Оно конечно всё не так, потому что сроки при таком подходе срываются на месяцы и годы и никаких фуршетов нет, но в теории именно так. Вот там то и были разумны версионирования в таком виде.

Да и то:  windows 95 и сразу примерно понятно откуда этот динозавр родом
источник

DB

Dima Boger in DocOps-сообщество
Не понял как описанное конфликтует с semantic versioning 🤔

Потихоньку инкрементально меняй под капотом имплементацию, инкрементируй минорные версии, потом делаешь мажорную и старую депрекейтишь. Большие "взрослые" проекты так и работают, и мажорная версия у них буквально зашита в URL:

https://cloud.google.com/apis/design/versioning
источник