Forwarded from Денис Бесков написал
Что такое настоящий бизнес-анализ, как я это вижу
Опишу линейно, хотя там есть несколько циклов:
1. Взять первичный запрос, сформулировать в виде проблемы, также если у инициатора есть видение решения, тоже сформулировать
2. Определить, о каком участке бизнеса идёт речь, построив модель контекста
3. Построить онтологию и модель деятельности на этом участке
4. Выявить организационные роли в окружении участка бизнеса и их интересы, оценки текущей реализации интересов
5. Построить проблемное месиво и структурировать его через причинно-следственные связи (дерево текущей реальности), найти корневые причины, экономически измерить ущерб, наносимый последствиями
6. Построить дерево будущей реальности, выйдя на целевые эффекты
7. Сформулировать ограничения на решение
8. Из интересов оргролей сформулировать требования к решению
9. Разработать несколько вариантов решений, для каждого оценить стоимость и риски
10. Обосновать выбор конкретного решения
11. Принять участие в заказе, реализации и приёмке решения
12. Оценить эффект от решения, соотнести его с плановым
#бизнес_анализ
Опишу линейно, хотя там есть несколько циклов:
1. Взять первичный запрос, сформулировать в виде проблемы, также если у инициатора есть видение решения, тоже сформулировать
2. Определить, о каком участке бизнеса идёт речь, построив модель контекста
3. Построить онтологию и модель деятельности на этом участке
4. Выявить организационные роли в окружении участка бизнеса и их интересы, оценки текущей реализации интересов
5. Построить проблемное месиво и структурировать его через причинно-следственные связи (дерево текущей реальности), найти корневые причины, экономически измерить ущерб, наносимый последствиями
6. Построить дерево будущей реальности, выйдя на целевые эффекты
7. Сформулировать ограничения на решение
8. Из интересов оргролей сформулировать требования к решению
9. Разработать несколько вариантов решений, для каждого оценить стоимость и риски
10. Обосновать выбор конкретного решения
11. Принять участие в заказе, реализации и приёмке решения
12. Оценить эффект от решения, соотнести его с плановым
#бизнес_анализ
👍9🔥1🤔1
Случайно наткнулся на видео, в котором Александр Покрышкин рассуждает о лидерстве, об инструкциях и менеджменте, о роли теории, об искусстве побеждать. О том, как побеждать в условиях, когда инструкции и менеджмент препятствуют победе.
Когда-то я услышал фразу, что заяц не может научить охотиться. Сегодняшний рынок знаний переполнен всяким хламом о лидерстве от зайцев. Поэтому, я всегда читал в первоисточнике тех людей, лидерские способности которых не вызывают сомнений. Особый интерес вызывает путь тех людей, которые выбились в лидеры не благодаря природным способностям, а вопреки им. Взять, например, Ивана Кожедуба:
"В начале военной карьеры Ивана Никитовича преследовали неудачи, его даже чуть было не перевели на пост оповещения. Только заступничество командира полка майора И. Солдатенко помогло ему остаться в полку. Свою первую победу летчик одержал в ходе 40-го боевого вылета, сбив немецкий пикировщик."
—"Кожедуб Иван Никитович" / Киселев О. Н.
Раз уж затронул тему лидерства, то нелишне было бы в очередной раз упомянуть книгу "Becoming a Technical Leader" by Gerald M. Weinberg.
Кстати, глава о лидерстве в этой книге начинается со слов Лао Цзы:
If you are a good leader,
Who talks little,
They will say,
When your work is done,
And your aim fulfilled,
"We did it ourselves."
- Lao Tse
А так же книгу "Дао Лидера" Джона Хейдера, которая является современной интерпретацией "Дао Де Цзин" Лао Цзы и учит лидерству на основе диалектической философии. Ну и подборку по лидерству от "Harvard Business Review".
Когда-то я услышал фразу, что заяц не может научить охотиться. Сегодняшний рынок знаний переполнен всяким хламом о лидерстве от зайцев. Поэтому, я всегда читал в первоисточнике тех людей, лидерские способности которых не вызывают сомнений. Особый интерес вызывает путь тех людей, которые выбились в лидеры не благодаря природным способностям, а вопреки им. Взять, например, Ивана Кожедуба:
"В начале военной карьеры Ивана Никитовича преследовали неудачи, его даже чуть было не перевели на пост оповещения. Только заступничество командира полка майора И. Солдатенко помогло ему остаться в полку. Свою первую победу летчик одержал в ходе 40-го боевого вылета, сбив немецкий пикировщик."
—"Кожедуб Иван Никитович" / Киселев О. Н.
Раз уж затронул тему лидерства, то нелишне было бы в очередной раз упомянуть книгу "Becoming a Technical Leader" by Gerald M. Weinberg.
Кстати, глава о лидерстве в этой книге начинается со слов Лао Цзы:
If you are a good leader,
Who talks little,
They will say,
When your work is done,
And your aim fulfilled,
"We did it ourselves."
- Lao Tse
А так же книгу "Дао Лидера" Джона Хейдера, которая является современной интерпретацией "Дао Де Цзин" Лао Цзы и учит лидерству на основе диалектической философии. Ну и подборку по лидерству от "Harvard Business Review".
🔥10👍2🤣1
Forwarded from ROSTMEO
Media is too big
VIEW IN TELEGRAM
В этот день 6 марта 1913г родился советский легендарный лётчик-ас, Александр Покрышкин 🫡
Фильм "Хозяин неба" (1985г)
Фильм "Хозяин неба" (1985г)
🔥6
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Случайно наткнулся на видео, в котором Александр Покрышкин рассуждает о лидерстве, об инструкциях и менеджменте, о роли теории, об искусстве побеждать. О том, как побеждать в условиях, когда инструкции и менеджмент препятствуют победе. Когда-то я услышал…
💬 The more I struggled against becoming a leader, the more I was setting my own direction—and the more I was becoming a leader.
💬 Whenever I want to learn about something, I arrange to teach a course on the subject. After I've taught the course enough to learn something, I write a book.
💬 Leaders are leaders of change – change in other people, change in working groups, and change in organizations. Above all, leaders are leaders of change in themselves. To become a leader, you have to understand how change happens; yet it's difficult to see change in yourself.
-- "Becoming a Technical Leader" by Gerald M. Weinberg.
💬 Whenever I want to learn about something, I arrange to teach a course on the subject. After I've taught the course enough to learn something, I write a book.
💬 Leaders are leaders of change – change in other people, change in working groups, and change in organizations. Above all, leaders are leaders of change in themselves. To become a leader, you have to understand how change happens; yet it's difficult to see change in yourself.
-- "Becoming a Technical Leader" by Gerald M. Weinberg.
👍6🔥1
Z-lib позволяет создавать персонализированный бот.
💬 Bot is a fast and convenient way to download books. And now our users can get and configure their own personal bot. To do this visit our library website > Edit Profile or click on the bot icon at the bottom of the website page.
https://news.1rj.ru/str/zlibrary_official/6
💬 Bot is a fast and convenient way to download books. And now our users can get and configure their own personal bot. To do this visit our library website > Edit Profile or click on the bot icon at the bottom of the website page.
https://news.1rj.ru/str/zlibrary_official/6
Telegram
Z-Library Official 📚
Our recent updates (January):
🔹Personal Telegram bot
Bot is a fast and convenient way to download books. And now our users can get and configure their own personal bot. To do this visit our library website > Edit Profile or click on the bot icon at the…
🔹Personal Telegram bot
Bot is a fast and convenient way to download books. And now our users can get and configure their own personal bot. To do this visit our library website > Edit Profile or click on the bot icon at the…
🔥6
За что отвечает архитектура?
1. За выявление наиболее существенных требований и за разрешение противоречивых (конфликтующих или обратно-коррелирующих требований).
2. За устранение напряжения между требованиями и конструкцией (это когда то, что хотим, - не можем, а то, что можем, - не хотим).
3. За выбор способа разрешения неопределенности требований путем выбора соответствующей SDLC-модели разработки. Т.е. за выбор соотношения предиктивного и адаптивного способов разрешения неопределенности.
4. В случае выбора адаптивного способа обработки неопределенности (итеративная SDLC-модель разработки и её производные) - за достижение Quality Attribute Modifiability. Т.е. за максимизацию количества открытых решений, где открытость определяется стоимостью изменения решения. Т.е. за опеспечение постоянства скорости (стоимости) разработки по мере роста размера системы. На практике график роста стоимости разработки обычно обретает характер роста близкий к логарифмическому, и задача архитектуры - предотвратить экспоненциальный рост. Достигается это путем минимизации когнитивной нагрузки, т.е. путем управления сложностью, и локализацией изменений. Если этого не сделать, то адаптивный способ разрешения неопределенности утратит экономическую целесообразность, поскольку стоимость реализации решения будет существенно зависеть от момента принятия решения.
5. В случае выбора многокомандной инкрементальной SDLC-модели разработки и её производных (Scaled Agile) - за обеспечение постоянства скорости разработки по мере увеличения количества команд разработки, т.е. за решение Проблемы Брукса. Достигается это путем минимизации коммуникативной нагрузки на команды разработки за счет выявления правильных границ Bounded Contexts.
Это те функции, для осуществления которых нанимается архитектор.
Теперь подойдем к часто обсуждаемому в профессиональных сообществах вопросу.
Давайте представим пациента, госпитализированного с острым воспалительным процессом, которому доктор назначил лечение в виде курса антибиотиков. Пока еще можно обойтись консервативным лечением, но если его не осуществить вовремя, то потребуется уже хирургическое вмешательство. А если и его не осуществить, то возможен летальный исход. И тут пациент говорит, что у него сегодня важная бизнес-встреча, и нужно бухнуть вискаря, тем самым нейтрализовав антибиотики. Что делает в таком случае доктор? Он выписывает пациента из стационара за нарушение предписанного режима, и тем самым он снимает с себя ответственность за последствия, которые от него не зависят. Потому что иначе это будет называться преступная халатность. Она не может быть оправдана тем, что доктор получил за халатность деньги (т.е. наличием корыстного умысла). Доктор-убийца никому не нужен. Он получает деньги за исполнение возложенных на него функций.
Размытость в понимании своих функций иногда на практике приводит к тому, что архитектор начинает противодействовать им, оправдываясь тем, что "кто платит, тот и танцует..." Такое, конечно, тоже может быть, только это уже не функции архитектуры. И если человек не осуществляет функций архитектуры, то называть его архитектором уже ошибочно.
1. За выявление наиболее существенных требований и за разрешение противоречивых (конфликтующих или обратно-коррелирующих требований).
2. За устранение напряжения между требованиями и конструкцией (это когда то, что хотим, - не можем, а то, что можем, - не хотим).
3. За выбор способа разрешения неопределенности требований путем выбора соответствующей SDLC-модели разработки. Т.е. за выбор соотношения предиктивного и адаптивного способов разрешения неопределенности.
4. В случае выбора адаптивного способа обработки неопределенности (итеративная SDLC-модель разработки и её производные) - за достижение Quality Attribute Modifiability. Т.е. за максимизацию количества открытых решений, где открытость определяется стоимостью изменения решения. Т.е. за опеспечение постоянства скорости (стоимости) разработки по мере роста размера системы. На практике график роста стоимости разработки обычно обретает характер роста близкий к логарифмическому, и задача архитектуры - предотвратить экспоненциальный рост. Достигается это путем минимизации когнитивной нагрузки, т.е. путем управления сложностью, и локализацией изменений. Если этого не сделать, то адаптивный способ разрешения неопределенности утратит экономическую целесообразность, поскольку стоимость реализации решения будет существенно зависеть от момента принятия решения.
5. В случае выбора многокомандной инкрементальной SDLC-модели разработки и её производных (Scaled Agile) - за обеспечение постоянства скорости разработки по мере увеличения количества команд разработки, т.е. за решение Проблемы Брукса. Достигается это путем минимизации коммуникативной нагрузки на команды разработки за счет выявления правильных границ Bounded Contexts.
Это те функции, для осуществления которых нанимается архитектор.
Теперь подойдем к часто обсуждаемому в профессиональных сообществах вопросу.
Давайте представим пациента, госпитализированного с острым воспалительным процессом, которому доктор назначил лечение в виде курса антибиотиков. Пока еще можно обойтись консервативным лечением, но если его не осуществить вовремя, то потребуется уже хирургическое вмешательство. А если и его не осуществить, то возможен летальный исход. И тут пациент говорит, что у него сегодня важная бизнес-встреча, и нужно бухнуть вискаря, тем самым нейтрализовав антибиотики. Что делает в таком случае доктор? Он выписывает пациента из стационара за нарушение предписанного режима, и тем самым он снимает с себя ответственность за последствия, которые от него не зависят. Потому что иначе это будет называться преступная халатность. Она не может быть оправдана тем, что доктор получил за халатность деньги (т.е. наличием корыстного умысла). Доктор-убийца никому не нужен. Он получает деньги за исполнение возложенных на него функций.
Размытость в понимании своих функций иногда на практике приводит к тому, что архитектор начинает противодействовать им, оправдываясь тем, что "кто платит, тот и танцует..." Такое, конечно, тоже может быть, только это уже не функции архитектуры. И если человек не осуществляет функций архитектуры, то называть его архитектором уже ошибочно.
👍18🔥12❤🔥2💯2🤔1
Forwarded from Системный сдвиг
Postman, кроме того, что производит инструмент для тестирования API, ещё собирает лучшие практики проектирования.
Для этого у них есть отдельная команда Postman Open Technologies, которая также собирает информацию о стандартах, отраслевых форматах и спецификациях, открытых API.
Каталог практик и паттернов оформлен как рабочее пространство Postman: https://www.postman.com/postman/workspace/postman-open-technologies-openapi-governance-templates/overview (открывается прямо в Postman!)
Смысл каталога в том, чтобы не придумывать каждый раз "как мы будем возвращать сумму платежа" или "как будем делать пагинацию", а брать готовое решение.
На текущий момент там описаны следующие паттерны:
🔸 Форматы данных:
🔹Коды стран (ISO 3166)
🔹Коды валют (ISO 4217)
🔹Дата, время и временные промежутки (ISO 8601)
🔹Числа с десятичными дробями
🔹Кастомные заголовки HTTP
🔹Расширенное описание ошибки (RFC 9457 - кстати, очень хороший формат для передачи смысла ошибки HTTP)
🔸Управление кэшированием:
🔹Параметр Cache-control
🔹Параметр Etag
🔹Параметр Expires
🔸Фильтрация:
🔹Параметры поискового запроса
🔹Точное соответствие
🔹Диапазон значений поля
🔹Выбор полей для ответа
🔸Пагинация:
🔹Заголовки page and per_page (rfc 5988)
🔹Курсор / NextRecordKey
🔹Параметры Limit и Offset
🔸Сортировка:
🔹По одному полю - параметры sort_by, sort_order
🔹По нескольким полям
🔸Версионирование:
🔹На уровне URL API
🔹На уровне отдельного ресурса
🔹Через заголовок Accept-Version
🔹Через заголовок Accept
🔸Информация:
🔹Контакты разработчиков
🔹Лицензия
🔹Условия использования
🔹Заголовок Sunset (предупреждение, что ресурс станет недоступным в определенное время)
Набор паттернов интересный, я, например, про RFC 9457, версионирование на уровне ресурсов и Sunset header раньше не слышал.
Для этого у них есть отдельная команда Postman Open Technologies, которая также собирает информацию о стандартах, отраслевых форматах и спецификациях, открытых API.
Каталог практик и паттернов оформлен как рабочее пространство Postman: https://www.postman.com/postman/workspace/postman-open-technologies-openapi-governance-templates/overview (открывается прямо в Postman!)
Смысл каталога в том, чтобы не придумывать каждый раз "как мы будем возвращать сумму платежа" или "как будем делать пагинацию", а брать готовое решение.
На текущий момент там описаны следующие паттерны:
🔸 Форматы данных:
🔹Коды стран (ISO 3166)
🔹Коды валют (ISO 4217)
🔹Дата, время и временные промежутки (ISO 8601)
🔹Числа с десятичными дробями
🔹Кастомные заголовки HTTP
🔹Расширенное описание ошибки (RFC 9457 - кстати, очень хороший формат для передачи смысла ошибки HTTP)
🔸Управление кэшированием:
🔹Параметр Cache-control
🔹Параметр Etag
🔹Параметр Expires
🔸Фильтрация:
🔹Параметры поискового запроса
🔹Точное соответствие
🔹Диапазон значений поля
🔹Выбор полей для ответа
🔸Пагинация:
🔹Заголовки page and per_page (rfc 5988)
🔹Курсор / NextRecordKey
🔹Параметры Limit и Offset
🔸Сортировка:
🔹По одному полю - параметры sort_by, sort_order
🔹По нескольким полям
🔸Версионирование:
🔹На уровне URL API
🔹На уровне отдельного ресурса
🔹Через заголовок Accept-Version
🔹Через заголовок Accept
🔸Информация:
🔹Контакты разработчиков
🔹Лицензия
🔹Условия использования
🔹Заголовок Sunset (предупреждение, что ресурс станет недоступным в определенное время)
Набор паттернов интересный, я, например, про RFC 9457, версионирование на уровне ресурсов и Sunset header раньше не слышал.
🔥23👍4❤3👎2🙏1
Еще одна книга от PostgresPro:
Путеводитель по базам данных. Комаров В. И. — М.: ДМК Пресс, 2024. — 520 с.
ISBN 978-5-93700-287-7
Книга рассказывает об архитектурных принципах, на которых базируются все современные системы управления базами данных, а также об алгоритмах и структурах данных, которые в них используются. Особое внимание уделено сравнению реализаций одних и тех же подходов в близких по функциональности платформах.
Эту книгу следует прочесть всем, кого не устраивает уровень подготовки на трехмесячных курсах типа «войти в айти». Практическим знаниям она даст прочный фундамент в виде понимания общих закономерностей. Книга написана для архитекторов информационных систем и ведущих разработчиков. Иными словами, для элиты и для тех, кто хочет ей стать.
https://postgrespro.ru/education/books/dbguide
Путеводитель по базам данных. Комаров В. И. — М.: ДМК Пресс, 2024. — 520 с.
ISBN 978-5-93700-287-7
Книга рассказывает об архитектурных принципах, на которых базируются все современные системы управления базами данных, а также об алгоритмах и структурах данных, которые в них используются. Особое внимание уделено сравнению реализаций одних и тех же подходов в близких по функциональности платформах.
Эту книгу следует прочесть всем, кого не устраивает уровень подготовки на трехмесячных курсах типа «войти в айти». Практическим знаниям она даст прочный фундамент в виде понимания общих закономерностей. Книга написана для архитекторов информационных систем и ведущих разработчиков. Иными словами, для элиты и для тех, кто хочет ей стать.
https://postgrespro.ru/education/books/dbguide
postgrespro.ru
Путеводитель по базам данных
Postgres Professional - российская компания, разработчик систем управления базами данных
🔥27👍6❤2👎1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
В процессе обсуждения в чате канала ко мне в библиотеку попала новая книга "Джедайские техники конструктивного общения" Александра Орлова. Там была одна метафора, которая заставила меня задуматься: 💬 Что делает кирпичную стену прочной? Идеальная геометрия…
Наглядно о том, чем руководство (формальное) отличается от лидерства (неформального):
https://habr.com/ru/articles/536292/
В Nokia разработали собственную мобильную операционную систему MeeGo. Но формальные руководители решили, что будут использовать Windows Phone для смартфонов Nokia.
Далее цитатами:
💬 ситуация в Nokia и в разработке MeeGo была настолько дезорганизована за последние пару лет
💬 Команда MeeGo и другие сотрудники Nokia были задеты за живое, и у них была только одна цель — закончить продукт на основе MeeGo и отправить его на полки магазинов в течение 2011 года.
💬 команда MeeGo была распущена после выпуска N9 и нескольких обновлений прошивки
💬 С 2005 года очень небольшая группа людей с ограниченными ресурсами в Nokia разрабатывала операционную систему Maemo на базе Linux и устройства на ее основе. Команда была известна как OSSO (Open Source Software Operations), и, по словам одного из членов команды, который работал там с самого начала, целью было создание продукта, который изменит мир. Команда OSSO была переименована в команду Maemo в 2007 году. А в результате партнерства Nokia и Intel в 2010 году она была переименована в команду MeeGo. С самого начала группу возглавлял Ари Якси, который ушел из Nokia в октябре 2010 года и перешел в HP для разработки операционной системы WebOS.
Здесь мы видим человека с лидерскими качествами, который силами небольшой группы собрался изменить мир. Но столкнулся с проблемами:
💬 Конечный продукт в основном производился через аутсорсинг без большой помпы и поддержки со стороны топ-менеджмента. Никто не вмешивался в процесс, и это привело к проблемам с качеством готовой продукции. Принимая во внимание небольшие ресурсы и работу с подрядчиками, самая низкая цена всегда была первым приоритетом при выборе компонентов, а остальные требования были на вторых позициях.
Тут отчетливо просматривается недооценка проекта формальным руководством.
💬 Сокращение расходов на разработку программного обеспечения не было особо мотивирующим фактором. Учитывая, что экономия была достигнута за счет менее качественных компонентов...
💬 Трудно было сохранить качество работы субподрядчиков, и контракты не контролировались должным образом. Субподрядчики могли жульничать, заменяя лучших специалистов, которые были в начале, на менее квалифицированных людей потом. Приведенные примеры включали плохой код, написанный в Индии, и проблемы со связью с китайцами и японцами из-за их плохого знания английского языка.
На эту тему была серия постов: https://news.1rj.ru/str/emacsway_log/1096
Которая вылилась в черновик доклада: http://kr.msk.ru/
Далее началась "Проблема Брукса", и очевидно, что формальное руководство с ним не справилось:
💬 В то же время размер команды вырос, а вместе с ней и бюрократия. Это привело к снижению гибкости и к замедлению в разработке программного обеспечения.
Далее мы видим, что разработчики осознавали ответственность за судьбу проекта больше, чем руководство. И начали защищать проект от руководства:
💬 Предложение было сразу же отвергнуто, но разработчик не сдался, поделившись примером функциональности для тестирования другими. В результате во внутренней системе Bugzilla, используемой сотрудниками Nokia для обработки ошибок, появилась цепочка длиной в несколько сотен сообщений, где руководство и разработчики спорили друг с другом по поводу этой функции. Наконец, эта функция была сделана, и в обновлении PR 1.1 она использовалась по умолчанию.
Тут просматриваются проблемы с организацией SDLC в контексте разрешения неопределенности требований:
💬 Постоянно меняющиеся требования к разработке пользовательского интерфейса вызывали внутренние проблемы в команде разработчиков
Дальнейшее развитие ситуации сравнили с историей:
💬 о человеке, работающем на нефтяной вышке, который просыпается ночью от взрыва и понимает, что вся платформа объята пламенем. Человеку удается добраться до края платформы, и ему необходимо принять решение: остаться и умереть или прыгнуть на 30 метров в темные и холодные воды. Это решение надо принять срочно.
Продолжение...
https://habr.com/ru/articles/536292/
В Nokia разработали собственную мобильную операционную систему MeeGo. Но формальные руководители решили, что будут использовать Windows Phone для смартфонов Nokia.
Далее цитатами:
💬 ситуация в Nokia и в разработке MeeGo была настолько дезорганизована за последние пару лет
💬 Команда MeeGo и другие сотрудники Nokia были задеты за живое, и у них была только одна цель — закончить продукт на основе MeeGo и отправить его на полки магазинов в течение 2011 года.
💬 команда MeeGo была распущена после выпуска N9 и нескольких обновлений прошивки
💬 С 2005 года очень небольшая группа людей с ограниченными ресурсами в Nokia разрабатывала операционную систему Maemo на базе Linux и устройства на ее основе. Команда была известна как OSSO (Open Source Software Operations), и, по словам одного из членов команды, который работал там с самого начала, целью было создание продукта, который изменит мир. Команда OSSO была переименована в команду Maemo в 2007 году. А в результате партнерства Nokia и Intel в 2010 году она была переименована в команду MeeGo. С самого начала группу возглавлял Ари Якси, который ушел из Nokia в октябре 2010 года и перешел в HP для разработки операционной системы WebOS.
Здесь мы видим человека с лидерскими качествами, который силами небольшой группы собрался изменить мир. Но столкнулся с проблемами:
💬 Конечный продукт в основном производился через аутсорсинг без большой помпы и поддержки со стороны топ-менеджмента. Никто не вмешивался в процесс, и это привело к проблемам с качеством готовой продукции. Принимая во внимание небольшие ресурсы и работу с подрядчиками, самая низкая цена всегда была первым приоритетом при выборе компонентов, а остальные требования были на вторых позициях.
Тут отчетливо просматривается недооценка проекта формальным руководством.
💬 Сокращение расходов на разработку программного обеспечения не было особо мотивирующим фактором. Учитывая, что экономия была достигнута за счет менее качественных компонентов...
💬 Трудно было сохранить качество работы субподрядчиков, и контракты не контролировались должным образом. Субподрядчики могли жульничать, заменяя лучших специалистов, которые были в начале, на менее квалифицированных людей потом. Приведенные примеры включали плохой код, написанный в Индии, и проблемы со связью с китайцами и японцами из-за их плохого знания английского языка.
На эту тему была серия постов: https://news.1rj.ru/str/emacsway_log/1096
Которая вылилась в черновик доклада: http://kr.msk.ru/
Далее началась "Проблема Брукса", и очевидно, что формальное руководство с ним не справилось:
💬 В то же время размер команды вырос, а вместе с ней и бюрократия. Это привело к снижению гибкости и к замедлению в разработке программного обеспечения.
Далее мы видим, что разработчики осознавали ответственность за судьбу проекта больше, чем руководство. И начали защищать проект от руководства:
💬 Предложение было сразу же отвергнуто, но разработчик не сдался, поделившись примером функциональности для тестирования другими. В результате во внутренней системе Bugzilla, используемой сотрудниками Nokia для обработки ошибок, появилась цепочка длиной в несколько сотен сообщений, где руководство и разработчики спорили друг с другом по поводу этой функции. Наконец, эта функция была сделана, и в обновлении PR 1.1 она использовалась по умолчанию.
Тут просматриваются проблемы с организацией SDLC в контексте разрешения неопределенности требований:
💬 Постоянно меняющиеся требования к разработке пользовательского интерфейса вызывали внутренние проблемы в команде разработчиков
Дальнейшее развитие ситуации сравнили с историей:
💬 о человеке, работающем на нефтяной вышке, который просыпается ночью от взрыва и понимает, что вся платформа объята пламенем. Человеку удается добраться до края платформы, и ему необходимо принять решение: остаться и умереть или прыгнуть на 30 метров в темные и холодные воды. Это решение надо принять срочно.
Продолжение...
Хабр
История Nokia MeeGo
Вступление от переводчика: Эта статья на английском была опубликована в далеком 2012 году. Тогда еще были свежи воспоминания о смене стратегии Nokia, отказе от разработки собственных ОС. А переход на...
❤2👍2🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Наглядно о том, чем руководство (формальное) отличается от лидерства (неформального): https://habr.com/ru/articles/536292/ В Nokia разработали собственную мобильную операционную систему MeeGo. Но формальные руководители решили, что будут использовать Windows…
Наглядно о том, чем руководство (формальное) отличается от лидерства (неформального). Продолжение.
Была принята новая стратегия:
💬 ОС Windows Phone 7 от Microsoft, выпущенная осенью 2010 года, и ее последующие версии станут новой основной платформой для смартфонов Nokia.
Но лидеров больше интересовали интересы дела, нежели угодничество руководству - они принимают решение продолжать без руководства, которое в фигуральном смысле превратило компанию в горящую нефтяную вышку. Поэтому:
💬 Финская компания Jolla Ltd. (от фин. jolla — шлюпка), основанная бывшими разработчиками MeeGo из Nokia, вышла в свет через Twitter в июле 2012 года. Компания, в которой на данный момент [на момент публикации] работает около 60 человек, продолжает разработку операционной системы и смартфонов MeeGo, где ранее остановилась Nokia.
Вывод:
💬 Организация, однако, стала ахиллесовой пятой проекта. Под конец отдельные разработчики не имели права голоса или, что еще хуже, не знали о решениях и изменениях, которые произошли за их спиной.
💬 Появлялось все больше руководящих должностей, что в итоге не помогало двигать проект вперед и вести его к завершению.
Вполне ожидаемый результат - истребление слабоприспособленной формы хозяйствования:
💬 Пока Nokia погружалась в пучину разработки Harmattan и MeeGo, ее злейшие конкуренты Apple и Google успешно создали работающие экосистемы вокруг своих операционных систем и захватили рынок Северной Америки.
Причиной поражения в конкурентной борьбе сдала слишком долгая адаптация продукта к скоротечно изменившимся рыночным условиям. Причиной этому стал "плохой код" и Проблема Брукса.
В конечном итоге, Nokia под руководством руководителей прекратила производить смартфоны. А MeeGo, возглавляемый лидерами, продолжил свое развитие без Nokia. На его базе возникла Sailfish OS.
В 2018 году «Ростелеком» приобрел пакет акций Jolla. В 2019 году Sailfish Mobile OS Rus поменяла название на ОС «Аврора».
Поему я вспомнил об этой истории? Из обсуждений в профессиональных пабликах можно сделать вывод, что описанная в Nokia ситуация является не исключительной, а, скорее, типовой для рынка. У многих специалистов не хватает аргументов для того, чтобы предотвратить неизбежные последствия. Эта статья позволяет снабдить их хорошим аргументом - просто задайтесь вопросом: "запас финансовой прочности вашей компании больше, чем у Nokia?"
Была принята новая стратегия:
💬 ОС Windows Phone 7 от Microsoft, выпущенная осенью 2010 года, и ее последующие версии станут новой основной платформой для смартфонов Nokia.
Но лидеров больше интересовали интересы дела, нежели угодничество руководству - они принимают решение продолжать без руководства, которое в фигуральном смысле превратило компанию в горящую нефтяную вышку. Поэтому:
💬 Финская компания Jolla Ltd. (от фин. jolla — шлюпка), основанная бывшими разработчиками MeeGo из Nokia, вышла в свет через Twitter в июле 2012 года. Компания, в которой на данный момент [на момент публикации] работает около 60 человек, продолжает разработку операционной системы и смартфонов MeeGo, где ранее остановилась Nokia.
Вывод:
💬 Организация, однако, стала ахиллесовой пятой проекта. Под конец отдельные разработчики не имели права голоса или, что еще хуже, не знали о решениях и изменениях, которые произошли за их спиной.
💬 Появлялось все больше руководящих должностей, что в итоге не помогало двигать проект вперед и вести его к завершению.
Вполне ожидаемый результат - истребление слабоприспособленной формы хозяйствования:
💬 Пока Nokia погружалась в пучину разработки Harmattan и MeeGo, ее злейшие конкуренты Apple и Google успешно создали работающие экосистемы вокруг своих операционных систем и захватили рынок Северной Америки.
Причиной поражения в конкурентной борьбе сдала слишком долгая адаптация продукта к скоротечно изменившимся рыночным условиям. Причиной этому стал "плохой код" и Проблема Брукса.
В конечном итоге, Nokia под руководством руководителей прекратила производить смартфоны. А MeeGo, возглавляемый лидерами, продолжил свое развитие без Nokia. На его базе возникла Sailfish OS.
В 2018 году «Ростелеком» приобрел пакет акций Jolla. В 2019 году Sailfish Mobile OS Rus поменяла название на ОС «Аврора».
Поему я вспомнил об этой истории? Из обсуждений в профессиональных пабликах можно сделать вывод, что описанная в Nokia ситуация является не исключительной, а, скорее, типовой для рынка. У многих специалистов не хватает аргументов для того, чтобы предотвратить неизбежные последствия. Эта статья позволяет снабдить их хорошим аргументом - просто задайтесь вопросом: "запас финансовой прочности вашей компании больше, чем у Nokia?"
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Наглядно о том, чем руководство (формальное) отличается от лидерства (неформального):
https://habr.com/ru/articles/536292/
В Nokia разработали собственную мобильную операционную систему MeeGo. Но формальные руководители решили, что будут использовать Windows…
https://habr.com/ru/articles/536292/
В Nokia разработали собственную мобильную операционную систему MeeGo. Но формальные руководители решили, что будут использовать Windows…
🔥4👍2❤1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Идет мужик по лесу, смотрит - другой мужик лес рубит топором. - Что делаешь? - Лес рублю. - Бензопила же рядом лежит. Возьми её - быстрее будет. - Я не умею ею пользоваться. - Инструкция лежит же рядом. Возьми, прочитай. - Мне некогда - лес рубить надо. К…
Сказ о том, как я трубку загубил, и причем здесь ИТ?
Если кто не знал - я курю трубку с 2010 года (и при этом веду спортивный образ жизни с первого класса). Так вот, была у меня трубочка, и на ней немного сошел лак. Это нормальное и естественное явление, но тогда я об этом не знал. Я ничего не понимал ни в лаках, ни в восках. Я просто хотел вернуть ей прежний блеск. Где-то я прочитал, что нужно натереть трубочку карнаубским воском. Вместо того, чтоб купить чистый карнаубский воск в виде хлопьев, я купил его смесь на основе скипидара (растворителя лака). Потому что я хотел как можно скорее получить результат. Я не мог ждать, пока я изучу что делать с твердыми хлопьями твердого карнаубского воска. Промедление было смерти подобно. Мне достаточно было увидеть в составе неизвестной смеси слово "карнаубский воск", и в условиях недостаточной информированности когнитивные искажения сделали свое дело - я был убежден в том, что это то, что мне нужно. И это освободит меня от долгого изучения правильного пути. Дело подогревалось моей хронической перегруженностью. Удивительно, но чем больше я хотел как можно скорее вернуть ей блеск, тем больше я его уничтожал.
В погоне за функцией (блеск) я пренебрёг конструкцией (которая этот блеск поддерживает). Натерев пару раз восковой смесью на основе скипидара, я обнаружил, что блеска осталось еще меньше. Но я отказывался в это верить, пока, наконец, половина трубки не осталась без лака. Ничего страшного в этом нет, и лак можно было заместить воском (некоторые даже делают так преднамеренно), но я в тот момент думал, что все испортил, и пошел на отчаянный шаг - попытался шлифануть на диске, пока не испортил покрытие окончательно. Удивительно то, что шеллачный лак у меня на тот момент был в наличии, но я не хотел тратить время на изучение способа его применения. Тогда я снял полностью покрытие наждачкой. И, вместо того, чтобы изучить про морилки и набраться недостающих знаний, я намазал трубку маслом с твердым воском графитового цвета, потому что его можно было купить в соседнем хобби-магазине Леонардо прямо сейчас, а не ждать несколько дней доставку нужной морилки. Поверхность трубки пропиталась маслом, но нужный тон цвета так и не обрела. Она настолько пропиталась маслом, что стала резиновой на ощуп, и насенение новых слоёв уже не влияло на её тон. Тогда я в сердцах её выбросил, потому что не знал о том, что бриаровая пыль используется для мелкого ремонта других трубок. Об этом я узнал потом, когда купил превосходную редкую трубку с незначительной каверной внутри мортиза, которая обычно легко шпаклюется смесью бриаровой пыли и обычного канцелярского силикатного клея (обладающего удивительной термостойкостью).
В общем, будучи ослепленным сиюминутным достижением результата, я, опытный архитектор, совершил все возможные конструктивные ошибки. Я действовал как типичный Product Owner, под воздействием системных и хорошо изученных причин. Я пренебрег долгосрочными техническими интересами в угоду краткосрочных бизнесовых интересов, и собственными руками уничтожил продукт. Я совершил все то, о чем так много говорил и предупреждал, стоило лишь мне ступить на ранее неизвестную мне конструктивную область.
Я попал в условия рядового Product Owner и поступил в точности как рядовой Product Owner. Имея доступ ко всей информации о конструкции, обеспечивающей необходимую мне функцию, я не счел нужным мириться с порогом окупаемости решения. Выбирая между "плохо, но сегодня" или "хорошо, но завтра", я ожидаемо выбрал первое. Так устроен мозг человека.
Согласитесь, что потратить несколько часов на узучение воскования и морения намного проще, чем изучать несколько лет ИТ-архитектуру. Но я, опытный архитектор, все-равно пренебрег даже этой технической малостью. Чего тогда ожидать от рядового Product Owner?
Если вы думаете, что причиной загнивания вашего проекта являются личные морально-деловые качества вашего Product Owner, то вы ошибаетесь. Эти причины системны и устраняются организацией процессов разработки таким образом, чтобы взаимокомпенсировать когнитивные искажения сторон разработки.
Если кто не знал - я курю трубку с 2010 года (и при этом веду спортивный образ жизни с первого класса). Так вот, была у меня трубочка, и на ней немного сошел лак. Это нормальное и естественное явление, но тогда я об этом не знал. Я ничего не понимал ни в лаках, ни в восках. Я просто хотел вернуть ей прежний блеск. Где-то я прочитал, что нужно натереть трубочку карнаубским воском. Вместо того, чтоб купить чистый карнаубский воск в виде хлопьев, я купил его смесь на основе скипидара (растворителя лака). Потому что я хотел как можно скорее получить результат. Я не мог ждать, пока я изучу что делать с твердыми хлопьями твердого карнаубского воска. Промедление было смерти подобно. Мне достаточно было увидеть в составе неизвестной смеси слово "карнаубский воск", и в условиях недостаточной информированности когнитивные искажения сделали свое дело - я был убежден в том, что это то, что мне нужно. И это освободит меня от долгого изучения правильного пути. Дело подогревалось моей хронической перегруженностью. Удивительно, но чем больше я хотел как можно скорее вернуть ей блеск, тем больше я его уничтожал.
В погоне за функцией (блеск) я пренебрёг конструкцией (которая этот блеск поддерживает). Натерев пару раз восковой смесью на основе скипидара, я обнаружил, что блеска осталось еще меньше. Но я отказывался в это верить, пока, наконец, половина трубки не осталась без лака. Ничего страшного в этом нет, и лак можно было заместить воском (некоторые даже делают так преднамеренно), но я в тот момент думал, что все испортил, и пошел на отчаянный шаг - попытался шлифануть на диске, пока не испортил покрытие окончательно. Удивительно то, что шеллачный лак у меня на тот момент был в наличии, но я не хотел тратить время на изучение способа его применения. Тогда я снял полностью покрытие наждачкой. И, вместо того, чтобы изучить про морилки и набраться недостающих знаний, я намазал трубку маслом с твердым воском графитового цвета, потому что его можно было купить в соседнем хобби-магазине Леонардо прямо сейчас, а не ждать несколько дней доставку нужной морилки. Поверхность трубки пропиталась маслом, но нужный тон цвета так и не обрела. Она настолько пропиталась маслом, что стала резиновой на ощуп, и насенение новых слоёв уже не влияло на её тон. Тогда я в сердцах её выбросил, потому что не знал о том, что бриаровая пыль используется для мелкого ремонта других трубок. Об этом я узнал потом, когда купил превосходную редкую трубку с незначительной каверной внутри мортиза, которая обычно легко шпаклюется смесью бриаровой пыли и обычного канцелярского силикатного клея (обладающего удивительной термостойкостью).
В общем, будучи ослепленным сиюминутным достижением результата, я, опытный архитектор, совершил все возможные конструктивные ошибки. Я действовал как типичный Product Owner, под воздействием системных и хорошо изученных причин. Я пренебрег долгосрочными техническими интересами в угоду краткосрочных бизнесовых интересов, и собственными руками уничтожил продукт. Я совершил все то, о чем так много говорил и предупреждал, стоило лишь мне ступить на ранее неизвестную мне конструктивную область.
Я попал в условия рядового Product Owner и поступил в точности как рядовой Product Owner. Имея доступ ко всей информации о конструкции, обеспечивающей необходимую мне функцию, я не счел нужным мириться с порогом окупаемости решения. Выбирая между "плохо, но сегодня" или "хорошо, но завтра", я ожидаемо выбрал первое. Так устроен мозг человека.
Согласитесь, что потратить несколько часов на узучение воскования и морения намного проще, чем изучать несколько лет ИТ-архитектуру. Но я, опытный архитектор, все-равно пренебрег даже этой технической малостью. Чего тогда ожидать от рядового Product Owner?
Если вы думаете, что причиной загнивания вашего проекта являются личные морально-деловые качества вашего Product Owner, то вы ошибаетесь. Эти причины системны и устраняются организацией процессов разработки таким образом, чтобы взаимокомпенсировать когнитивные искажения сторон разработки.
Substack
Behavior Change = Revenue Versus Structure Change = Option
“Wait, that can’t be right!”
🔥20👍4❤🔥2⚡1❤1👏1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Сказ о том, как я трубку загубил, и причем здесь ИТ? Если кто не знал - я курю трубку с 2010 года (и при этом веду спортивный образ жизни с первого класса). Так вот, была у меня трубочка, и на ней немного сошел лак. Это нормальное и естественное явление,…
В продолжение темы. После института я работал в одной небольшой компании, и по объявлению нашли человека, который продавал необходимое нам б/у оборудование. Я с водителем собрался ехать на переговоры, но директор выдал мне наличную сумму новенькими банкнотами на треть меньше запрошенной, что было существенно ниже рыночной стоимости. Я попытался было возразить, но он ответил "просто достань банкноты и покажи их ему". И это сработало. Это всегда работает. Хотя он мог получить больше, если бы владел эмоциями, чем пользуются профессиональные трейдеры.
💬 It’s not about the personalities of Product versus Engineering. It’s not about short-sighted versus visionary thinking. The struggle is economic—do we make some money now or more money later? The answer is always “both”. We have to make some money now to survive. We want to make more money later. Fear versus greed. No wonder it’s so hard to get time to refactor.
-- "Behavior Change = Revenue Versus Structure Change = Option" by Kent Beck
💬 It’s not about the personalities of Product versus Engineering. It’s not about short-sighted versus visionary thinking. The struggle is economic—do we make some money now or more money later? The answer is always “both”. We have to make some money now to survive. We want to make more money later. Fear versus greed. No wonder it’s so hard to get time to refactor.
-- "Behavior Change = Revenue Versus Structure Change = Option" by Kent Beck
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Сказ о том, как я трубку загубил, и причем здесь ИТ?
Если кто не знал - я курю трубку с 2010 года (и при этом веду спортивный образ жизни с первого класса). Так вот, была у меня трубочка, и на ней немного сошел лак. Это нормальное и естественное явление…
Если кто не знал - я курю трубку с 2010 года (и при этом веду спортивный образ жизни с первого класса). Так вот, была у меня трубочка, и на ней немного сошел лак. Это нормальное и естественное явление…
👍7🔥4
Forwarded from Михаил
Наткнулся на любопытную статью про ООП, хочу порекомендовать вам ее в контексте недавних обсуждений: https://blog.sigma-star.io/2024/01/people-dont-understand-oop/ и перевод на хабре.
Хабр
Люди не понимают ООП
«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин...
🔥6👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Вот хорошая книга про конфронтации и споры. https://www.ozon.ru/product/dzhedayskie-tehniki-konstruktivnogo-obshcheniya-orlov-aleksandr-elektronnaya-audiokniga-917253665/?asb=Be%252FFUBK71EHhLQk04ZAlECN22i2r54PLYZjRAV%252FwRMo%253D&asb2=b3hGw0AlGeI7bXnX6OqomduBi5…
💬 Пример из жизни. На одном из тренингов на этапе сбора ожиданий мы обычно спрашиваем всех участников, чего они ждут от этих двух дней и какие вопросы хотят разобрать. Доходит очередь до инженера лет тридцати с очень уставшим видом:
– Я хотел бы научиться отказываться от проектов.
– ?.. Расскажите нам больше…
– Понимаете, сейчас я работаю над пятью проектами одновременно. И мне очень тяжело. Я хотел бы, когда принесут шестой проект, так ловко от него отказаться, чтобы не взять его и чтобы руководство не обиделось.
– А что было, когда вам давали пятый проект?
– [после паузы] Я работал над четырьмя… Мне было очень тяжело… Я им говорил, что не потяну… А они сказали, что очень надо…
– Ну и как, вы потянули?
– Потянул…
– Тогда руководство знает, как дать вам и шестой проект…
Довольно часто руководство и заказчики приходят к нам со срочными просьбами о совершении подвига. И на слова «это невозможно» всегда находится аргумент «ребята, очень надо». После чего мы обычно беремся за этот воз, не спим ночами и совершаем небольшое чудо (иногда вместе с командой). Выдыхаем и надеемся спокойно поработать дальше. И это не получается.
Как эта ситуация выглядит с точки зрения руководства /заказчика? Приходишь к ребятам, просишь что-то сделать.
Поначалу они сопротивляются, говорят, что это невозможно, но после аргумента «очень надо» берут и делают, большие молодцы!
Или, наоборот, руководство подозревает, что, когда вы говорите «невозможно», то, мягко говоря, лукавите. Значит, и дальше надо грузить.
Ни один реальный подвиг не должен оставаться «непроданным». Любой подвиг – это повод для обсуждения с заказчиком подвига (после совершения, когда тот находится в приятственном расположении духа, хорошо к вам относится и готов вас слушать): «Как там, все нормально? Так вот, я поэтому и пришел. То, что произошло, – это чудо, потому что… Как бы нам сделать так, чтобы это все предусмотреть и в следующий раз вас не подвести?»
Зачастую решение одной проблемы создает следующую, которую мы упускаем из виду. И это тоже распространенноенарушение принципа своевременности.
-- "Джедайские техники конструктивного общения" Александра Орлова
– Я хотел бы научиться отказываться от проектов.
– ?.. Расскажите нам больше…
– Понимаете, сейчас я работаю над пятью проектами одновременно. И мне очень тяжело. Я хотел бы, когда принесут шестой проект, так ловко от него отказаться, чтобы не взять его и чтобы руководство не обиделось.
– А что было, когда вам давали пятый проект?
– [после паузы] Я работал над четырьмя… Мне было очень тяжело… Я им говорил, что не потяну… А они сказали, что очень надо…
– Ну и как, вы потянули?
– Потянул…
– Тогда руководство знает, как дать вам и шестой проект…
Довольно часто руководство и заказчики приходят к нам со срочными просьбами о совершении подвига. И на слова «это невозможно» всегда находится аргумент «ребята, очень надо». После чего мы обычно беремся за этот воз, не спим ночами и совершаем небольшое чудо (иногда вместе с командой). Выдыхаем и надеемся спокойно поработать дальше. И это не получается.
Как эта ситуация выглядит с точки зрения руководства /заказчика? Приходишь к ребятам, просишь что-то сделать.
Поначалу они сопротивляются, говорят, что это невозможно, но после аргумента «очень надо» берут и делают, большие молодцы!
Или, наоборот, руководство подозревает, что, когда вы говорите «невозможно», то, мягко говоря, лукавите. Значит, и дальше надо грузить.
Ни один реальный подвиг не должен оставаться «непроданным». Любой подвиг – это повод для обсуждения с заказчиком подвига (после совершения, когда тот находится в приятственном расположении духа, хорошо к вам относится и готов вас слушать): «Как там, все нормально? Так вот, я поэтому и пришел. То, что произошло, – это чудо, потому что… Как бы нам сделать так, чтобы это все предусмотреть и в следующий раз вас не подвести?»
Зачастую решение одной проблемы создает следующую, которую мы упускаем из виду. И это тоже распространенноенарушение принципа своевременности.
-- "Джедайские техники конструктивного общения" Александра Орлова
👍10🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
💬 Пример из жизни. На одном из тренингов на этапе сбора ожиданий мы обычно спрашиваем всех участников, чего они ждут от этих двух дней и какие вопросы хотят разобрать. Доходит очередь до инженера лет тридцати с очень уставшим видом: – Я хотел бы научиться…
В этой же книге:
💬 Когда два сотрудника друг другу в курилке жалуются на начальство: «Блин, опять переезд в новый офис. Сколько можно? Третий раз за год! Заколебали уже…» – это не вполне конструктивно. Потому что, если есть проблема с переездами, они вряд ли решат ее между собой в курилке.
Вот если кто-то после этого разговора пойдет к начальствувыяснять, что и как с переездами, то произойдет переключение в конструктив.
Тут я с автором второй раз не соглашусь, что, правда, не уменьшает ценность книги. Те, кто знаком с теорией управления изменениями, знают, что иногда большего совокупного эффекта можно достигнуть, если позволить кризису назреть, нежели пытаться его компенсировать. Сейчас уже не вспомню, кто автор этого подхода, кажется John P. Kotter (поправьте, пожалуйста, если я ошибаюсь).
С одной стороны, в условиях кризиса меньше сопротивление изменениям, т.к. необходимость изменений становится очевидной для всех.
С другой стороны, кризис может привести к самосвержению руководства, уровень компетентности которого является причиной кризиса. В моей практике такой случай был. И чем скорее кризис назрел, тем быстрее проект освободился от причины кризиса и начал оздоравливаться.
Существуют еще причины в виде политических дивидендов, о которых упоминал Егор Толстой здесь. Я тоже не считаю такие причины допустимыми для профессионала.
Но хочу упомянуть об одном интересном случае, который я наблюдал на практике. Product Owner пытался убедить руководство в проведении дорогостоящего рефакторинга, но эти попытки оказались безуспешны, и они лишь пошатнули его авторитет в глазах команды слабостью своего влияния. Тогда он переключился на формирование общественного мнения команды, т.е. выступил в роли лидера общественного мнения, и вскоре ему удалось осуществить задуманное. Т.е. он сделал в точности наоборот утверждению автора, и это оказалось конструктивно. Если руководство небезнадежное, то оно мониторит общественное мнение. Правда, Product Owner не ныл деструктивно, как в обсуждаемом фрагменте книги, а конструктивно, как подобает настоящему лидеру, излагал каким именно образом можно облегчить деятельность команды.
В общем, не существует абсолютно правильных решений - многое определяется контекстом.
Можно ли назвать деструктивным самоустранение Ивана Грозного от власти и бегство из Москвы? А заявление Сталина с просьбой освободить его от занимаемой должности? В обоих случаях их влияние только увеличилось, хотя, казалось бы, такое поведение эмоционально и деструктивно.
💬 Когда два сотрудника друг другу в курилке жалуются на начальство: «Блин, опять переезд в новый офис. Сколько можно? Третий раз за год! Заколебали уже…» – это не вполне конструктивно. Потому что, если есть проблема с переездами, они вряд ли решат ее между собой в курилке.
Вот если кто-то после этого разговора пойдет к начальствувыяснять, что и как с переездами, то произойдет переключение в конструктив.
Тут я с автором второй раз не соглашусь, что, правда, не уменьшает ценность книги. Те, кто знаком с теорией управления изменениями, знают, что иногда большего совокупного эффекта можно достигнуть, если позволить кризису назреть, нежели пытаться его компенсировать. Сейчас уже не вспомню, кто автор этого подхода, кажется John P. Kotter (поправьте, пожалуйста, если я ошибаюсь).
С одной стороны, в условиях кризиса меньше сопротивление изменениям, т.к. необходимость изменений становится очевидной для всех.
С другой стороны, кризис может привести к самосвержению руководства, уровень компетентности которого является причиной кризиса. В моей практике такой случай был. И чем скорее кризис назрел, тем быстрее проект освободился от причины кризиса и начал оздоравливаться.
Существуют еще причины в виде политических дивидендов, о которых упоминал Егор Толстой здесь. Я тоже не считаю такие причины допустимыми для профессионала.
Но хочу упомянуть об одном интересном случае, который я наблюдал на практике. Product Owner пытался убедить руководство в проведении дорогостоящего рефакторинга, но эти попытки оказались безуспешны, и они лишь пошатнули его авторитет в глазах команды слабостью своего влияния. Тогда он переключился на формирование общественного мнения команды, т.е. выступил в роли лидера общественного мнения, и вскоре ему удалось осуществить задуманное. Т.е. он сделал в точности наоборот утверждению автора, и это оказалось конструктивно. Если руководство небезнадежное, то оно мониторит общественное мнение. Правда, Product Owner не ныл деструктивно, как в обсуждаемом фрагменте книги, а конструктивно, как подобает настоящему лидеру, излагал каким именно образом можно облегчить деятельность команды.
В общем, не существует абсолютно правильных решений - многое определяется контекстом.
Можно ли назвать деструктивным самоустранение Ивана Грозного от власти и бегство из Москвы? А заявление Сталина с просьбой освободить его от занимаемой должности? В обоих случаях их влияние только увеличилось, хотя, казалось бы, такое поведение эмоционально и деструктивно.
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
💬 Пример из жизни. На одном из тренингов на этапе сбора ожиданий мы обычно спрашиваем всех участников, чего они ждут от этих двух дней и какие вопросы хотят разобрать. Доходит очередь до инженера лет тридцати с очень уставшим видом:
– Я хотел бы научиться…
– Я хотел бы научиться…
👍8👏2
Forwarded from Блог Сергея Баранова (Sergey Baranov)
О масштабировании
Будем считать систему масштабируемой, если она способна справляться с возрастающей нагрузкой при добавлении ресурсов. Например, мы добавляем новые узлы в систему, что позволяет ей справится с возрастающей нагрузкой. То же самое с компанией — если при увеличении количества планируемой работы добавляются новые команды и при этом система команд продолжает справляться с возрастающей нагрузкой, то система масштабируема (в реальности это далеко не всегда так).
Производительность и масштабируемость — это связанные, но различные концепции. Производительность — это оптимизация времени ответа. Масштабируемость — это оптимизация возможности держать возрастающую нагрузку.
С точки зрения организационной структуры производительность — это то, насколько быстро мы можем выпускать новую функциональность, а масштабируемость — это возможность реализовать большее число бизнес-инициатив, причем не обязательно с увеличением штата сотрудников.
Улучшение производительности сокращает время ответа, однако поддерживаемая нагрузка может не измениться. При этом улучшение масштабируемости увеличивает возможности держать возрастающую нагрузку. Производительность каждого запроса в отдельности может не измениться.
Что сдерживает машстабирование?
Будем считать систему согласованной, если все члены системы имеют единое представление о ее состоянии. Если мы выполним один и тот же запрос на всех инстансах одного сервиса и получим один и тот же ответ, то система согласована. Точно так же, если в команде или компании, — если мы всем зададим один и тот же вопрос и получим один и тот же ответ, то команда или компания согласованы. В противном случае — система не согласована.
Система является доступной, если она продолжает работать несмотря на отдельные сбои. В интернет магазине может перестать работать поиск, но все остальное продолжит работать. В команде один разработчик может заболеть, но это не повлияет на возможности команды выполнять работу (возможно — медленнее или быстрее).
Микросервисы — это распределенные системы. Распределенные системы разделены в пространстве. Физика накладывает ограничение на скорость передачи информации (скорость света). Когда две системы разделены в пространстве, всегда требуется время для достижения консенсуса. В то время, когда информация передается от источника к потребителю, состояние источника может измениться.
Вышесказанное означает, что получатель информации всегда имеет дело с устаревшей информацией. Это справедливо и для информационных систем и для людей и вообще для любых физических систем. Таким образом, реальность — согласована в конечном счете.
Согласованность в конечном счете гарантирует, что в отсутствии новых обновлений, все обращения за доступом с специфичной части данных, в конечном счете вернут последние актуальные данные.
Существуют и другие виды согласованности — строгая, последовательная, причинно-следственная. Традиционные монолитные системы опираются на строгую согласованность. Строгая согласованность означает, что прежде чем обновленные данные станут доступными, все узлы должны должны подтвердить, что обновили свое состояние. Примеры строгой согласованности в жизни — суд присяжных или жюри, которые должны прийти к общей договоренности (или признать, что это сделать не удалось).
Как достигнуть строгой согласованности, если физика говорит, что это невозможно? С помощью блокировок. Распределенные системы изолируются в не распределенные блокировки. Блокировки привносят оверхед в виде конкуренции.
Любые две системы, соперничающие за доступ к общему ресурсу находятся в отношении конкуренции. Эта конкуренция может иметь только одного победителя. Остальные вынуждены ждать, пока победитель не закончит работу и не освободит ресурс. По мере роста уровня конкуренции, возрастает время освобождения ресурса (так как увеличивается размер очереди для доступа к ресурсу).
По мере увеличения нагрузки в конечном счете система выйдет за рамки приемлемого времени выполнения.
Будем считать систему масштабируемой, если она способна справляться с возрастающей нагрузкой при добавлении ресурсов. Например, мы добавляем новые узлы в систему, что позволяет ей справится с возрастающей нагрузкой. То же самое с компанией — если при увеличении количества планируемой работы добавляются новые команды и при этом система команд продолжает справляться с возрастающей нагрузкой, то система масштабируема (в реальности это далеко не всегда так).
Производительность и масштабируемость — это связанные, но различные концепции. Производительность — это оптимизация времени ответа. Масштабируемость — это оптимизация возможности держать возрастающую нагрузку.
С точки зрения организационной структуры производительность — это то, насколько быстро мы можем выпускать новую функциональность, а масштабируемость — это возможность реализовать большее число бизнес-инициатив, причем не обязательно с увеличением штата сотрудников.
Улучшение производительности сокращает время ответа, однако поддерживаемая нагрузка может не измениться. При этом улучшение масштабируемости увеличивает возможности держать возрастающую нагрузку. Производительность каждого запроса в отдельности может не измениться.
Что сдерживает машстабирование?
Будем считать систему согласованной, если все члены системы имеют единое представление о ее состоянии. Если мы выполним один и тот же запрос на всех инстансах одного сервиса и получим один и тот же ответ, то система согласована. Точно так же, если в команде или компании, — если мы всем зададим один и тот же вопрос и получим один и тот же ответ, то команда или компания согласованы. В противном случае — система не согласована.
Система является доступной, если она продолжает работать несмотря на отдельные сбои. В интернет магазине может перестать работать поиск, но все остальное продолжит работать. В команде один разработчик может заболеть, но это не повлияет на возможности команды выполнять работу (возможно — медленнее или быстрее).
Микросервисы — это распределенные системы. Распределенные системы разделены в пространстве. Физика накладывает ограничение на скорость передачи информации (скорость света). Когда две системы разделены в пространстве, всегда требуется время для достижения консенсуса. В то время, когда информация передается от источника к потребителю, состояние источника может измениться.
Вышесказанное означает, что получатель информации всегда имеет дело с устаревшей информацией. Это справедливо и для информационных систем и для людей и вообще для любых физических систем. Таким образом, реальность — согласована в конечном счете.
Согласованность в конечном счете гарантирует, что в отсутствии новых обновлений, все обращения за доступом с специфичной части данных, в конечном счете вернут последние актуальные данные.
Существуют и другие виды согласованности — строгая, последовательная, причинно-следственная. Традиционные монолитные системы опираются на строгую согласованность. Строгая согласованность означает, что прежде чем обновленные данные станут доступными, все узлы должны должны подтвердить, что обновили свое состояние. Примеры строгой согласованности в жизни — суд присяжных или жюри, которые должны прийти к общей договоренности (или признать, что это сделать не удалось).
Как достигнуть строгой согласованности, если физика говорит, что это невозможно? С помощью блокировок. Распределенные системы изолируются в не распределенные блокировки. Блокировки привносят оверхед в виде конкуренции.
Любые две системы, соперничающие за доступ к общему ресурсу находятся в отношении конкуренции. Эта конкуренция может иметь только одного победителя. Остальные вынуждены ждать, пока победитель не закончит работу и не освободит ресурс. По мере роста уровня конкуренции, возрастает время освобождения ресурса (так как увеличивается размер очереди для доступа к ресурсу).
По мере увеличения нагрузки в конечном счете система выйдет за рамки приемлемого времени выполнения.
👍11🔥3
Forwarded from Блог Сергея Баранова (Sergey Baranov)
Продолжение
Здесь стоит сделать отсылку с CAP-теореме, но чтобы не усложнять, приведу пример. У вас была одна команда. Вы добавили вторую. Обе команды разрабатывают разные части системы, но используют одно тестовое окружение. Им нужно договориться (добиться согласованности) о внесении изменений в это окружение. CAP теорема говорит, что достижение одновременно 100%-й согласованности, 100%-й доступности и устойчивости к разделению невозможно. То есть, пока команды не имеют возможности договориться, но им требуется 100%-я согласованность, они теряют свойство доступности, – просто не могут начать тестировать. В распределенных системах, в том числе в структуре команд, необходимо при проектировании закладывать такие принципы и свойства, которые позволят принимать максимальное число решений автономно (в данном случае – собственные тестовые среды), а оставшиеся зависимости должны быть неблокирующими (например, – выпуск частей солюшена разными командами в удобном им ритме, но с испоьзованием версионирования API и Feature Toggle). Это и есть обеспечение устойчивости к разделению с использованием согласованности в конечном счете.
Какие еще аналоги можно встретить в компаниях?
Архитектурные комитеты, если они блокируют работу, общие тестовые среды на несколько команд, если для того, чтобы протестировать необходимо вставать в очередь, интеграционные компоненты, вроде ESB, в которых реализована бизнес-логика и команда поддержки ESB становится таким компонентом системы, сдерживающим масштабирование.
В действительности, проектируя микросервисное решение, мы проектируем организацию, потому что если автономность и независимость микросервисов не поддерживается автономостью и неблокирующими зависимости на уровне структуры организации, польза от микросервисов будет крайней ограниченной, а вот всю привносимую ими дополнительную сложность бонусом компания получит в любом случае.
Обобщая вышесказанное, – говоря о масштабировании микросервисов чаще всего подразумевается возможность технически поддержать возрастающую нагрузку. Но это половина правда. Особенность этого стиля в том, что он явным образом поддерживает и масштабируемость разработки (производственной системы), что для компании иногда даже более важно, а этого добиться без организационных изменений в общем случае невозможно.
Здесь стоит сделать отсылку с CAP-теореме, но чтобы не усложнять, приведу пример. У вас была одна команда. Вы добавили вторую. Обе команды разрабатывают разные части системы, но используют одно тестовое окружение. Им нужно договориться (добиться согласованности) о внесении изменений в это окружение. CAP теорема говорит, что достижение одновременно 100%-й согласованности, 100%-й доступности и устойчивости к разделению невозможно. То есть, пока команды не имеют возможности договориться, но им требуется 100%-я согласованность, они теряют свойство доступности, – просто не могут начать тестировать. В распределенных системах, в том числе в структуре команд, необходимо при проектировании закладывать такие принципы и свойства, которые позволят принимать максимальное число решений автономно (в данном случае – собственные тестовые среды), а оставшиеся зависимости должны быть неблокирующими (например, – выпуск частей солюшена разными командами в удобном им ритме, но с испоьзованием версионирования API и Feature Toggle). Это и есть обеспечение устойчивости к разделению с использованием согласованности в конечном счете.
Какие еще аналоги можно встретить в компаниях?
Архитектурные комитеты, если они блокируют работу, общие тестовые среды на несколько команд, если для того, чтобы протестировать необходимо вставать в очередь, интеграционные компоненты, вроде ESB, в которых реализована бизнес-логика и команда поддержки ESB становится таким компонентом системы, сдерживающим масштабирование.
В действительности, проектируя микросервисное решение, мы проектируем организацию, потому что если автономность и независимость микросервисов не поддерживается автономостью и неблокирующими зависимости на уровне структуры организации, польза от микросервисов будет крайней ограниченной, а вот всю привносимую ими дополнительную сложность бонусом компания получит в любом случае.
Обобщая вышесказанное, – говоря о масштабировании микросервисов чаще всего подразумевается возможность технически поддержать возрастающую нагрузку. Но это половина правда. Особенность этого стиля в том, что он явным образом поддерживает и масштабируемость разработки (производственной системы), что для компании иногда даже более важно, а этого добиться без организационных изменений в общем случае невозможно.
🔥13👍4
💬 Проблема заключается в том, что советы, если они вообще берутся на вооружение, тотчас же становятся механическими инструментами. Это значит, что необходимо вводить интервалы между похвалами. Открываются «текущие счета похвал». Когда-то сердитые менеджеры превращаются в машины для метания похвал, а сотрудники только покачивают головами, замечая: «Он опять был на семинаре». Новая причуда техники управления уходит в пустоту.
Следует признать: многие люди на рабочем месте болезненно переживают дефицит признания. Но чувствуют ли они дефицит похвалы? Здесь уместен скепсис. Потому что похвала при более точном ее рассмотрении представляет собой весьма противоречивый и коварный стиль поведения, роковое действие которого проявляется не сразу. В известных обстоятельствах она, однако, скорее вредит отношениям между начальником и подчиненными, чем идет им на пользу. И это следует пояснить.
...
Тот, кто пользуется похвалой как мотивом, наказывается рапортами об успехах. - Это было бы приемлемо в том случае, если бы удовлетворялась только индивидуальная страсть к похвале, а в остальном работники побуждались бы к быстрому и эффективному достижению целей. Но велика опасность получения сообщений о мнимых успехах.
Подразумевается разного рода обман на этикетках, в статистике, в сообщениях о том, что работа идет полным ходом, в нецеленаправленной активности, результаты которой невозможно проверить. Если дарящий похвалу шеф докапывается до истины, то он, глубоко оскорбленный, жалуется на эгоизм и увертливость своих работников, т. е. на те черты характера, которыми он хотел сам воспользоваться в качестве рычага для получения своей выгоды. И потерпел неудачу в соревновании хитрецов!
..
Наоборот: похвала умаляет достоинство! Тот, кто зависит от похвалы, старается до тех пор, пока не получит, что хочет. Он прилагает усилия до «барьера похвалы». Тем самым он делает похвалу шефа и, следовательно, его критерии оценки масштабом своего величия.
Подсмотрено здесь:
https://news.1rj.ru/str/ru_arc_chat/23615
P.S.: Что думаете по этому поводу?
Следует признать: многие люди на рабочем месте болезненно переживают дефицит признания. Но чувствуют ли они дефицит похвалы? Здесь уместен скепсис. Потому что похвала при более точном ее рассмотрении представляет собой весьма противоречивый и коварный стиль поведения, роковое действие которого проявляется не сразу. В известных обстоятельствах она, однако, скорее вредит отношениям между начальником и подчиненными, чем идет им на пользу. И это следует пояснить.
...
Тот, кто пользуется похвалой как мотивом, наказывается рапортами об успехах. - Это было бы приемлемо в том случае, если бы удовлетворялась только индивидуальная страсть к похвале, а в остальном работники побуждались бы к быстрому и эффективному достижению целей. Но велика опасность получения сообщений о мнимых успехах.
Подразумевается разного рода обман на этикетках, в статистике, в сообщениях о том, что работа идет полным ходом, в нецеленаправленной активности, результаты которой невозможно проверить. Если дарящий похвалу шеф докапывается до истины, то он, глубоко оскорбленный, жалуется на эгоизм и увертливость своих работников, т. е. на те черты характера, которыми он хотел сам воспользоваться в качестве рычага для получения своей выгоды. И потерпел неудачу в соревновании хитрецов!
..
Наоборот: похвала умаляет достоинство! Тот, кто зависит от похвалы, старается до тех пор, пока не получит, что хочет. Он прилагает усилия до «барьера похвалы». Тем самым он делает похвалу шефа и, следовательно, его критерии оценки масштабом своего величия.
Подсмотрено здесь:
https://news.1rj.ru/str/ru_arc_chat/23615
P.S.: Что думаете по этому поводу?
Telegram
Sergey Baranov in RASA Chat
По вопросам мотивации и демотивации очень сильно рекомендую.
👍4🔥2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
💬 Проблема заключается в том, что советы, если они вообще берутся на вооружение, тотчас же становятся механическими инструментами. Это значит, что необходимо вводить интервалы между похвалами. Открываются «текущие счета похвал». Когда-то сердитые менеджеры…
Статья о том, почему софтверные компании умирают, когда власть захватывают менеджеры вместо технических профессионалов.
Обращает на себя внимание фраза, которая развивает тему предыдущего поста:
💬 The only person whose praise matters is another programmer.
Именно в этом заключается, как мне кажется, истинный путь к лидерству. Ведь слово "ведущий" (т.е. лидер) имеет смысл только в контексте "ведущий кого"?
Когда специалист действует ради сиюминутной похвалы от руководства, то он тем самым блокирует собственное развитие до топового уровня (или до основания собственной компании) по одной простой причине - у него сформирована потребность в том, чтоб его постоянно "кто-то хвалил сверху". Т.е. он добровольно ограничивает себя ролью второй скрипки.
На практике иногда приходилось наблюдать как специалист уступал профессиональностью своего решения в обмен на благорасположение бизнес-менеджмента, что приводило к утрате авторитета среди коллег, к загниванию системы, и, в конечном итоге, как это ни парадоксально звучит, к утрате того самого доверия менеджмента, ради которого он так действовал, а иногда даже к увольнению под благовидным предлогом, чтоб не задеть ущемленное самолюбие и не спровоцировать негативные отзывы о компании. Специалист думал, что занимая "удобную" для менеджмента позицию он тем самым перекладывает на него всю полноту ответственности за последствия такого решения. Но менеджмент видел это так, что если специалист согласился, то он осознаёт все последствия и считает возможным реализовать "хотелку" без ущерба для системы. Истина в том, что ответственность не перекладывается вместе с полномочиями, но это становится очевидным слишком поздно.
Истинный авторитет обнажается только тогда, когда время отобьет весь шлак дешевого авторитета. На это требуется время и не у всех хватает смелости вытерпеть.
Мудрый специалист мыслит дальше, чем сиюминутная похвала менеджмента, и оценивает свои решения объективными последствиями, от которых зависит то, продолжит ли завтра этот менеджер хвалить его, сохранив свой пост в компании, выстоявшей в конкурентной борьбе.
💬 All successful software companies had, as their dominant personality, a leader who nurtured programmers.
P.S.: Большинство моих бывших коллег-программистов сегодня занимают ответственные руководящие или архитектурные должности в крупных высокотехнологичных компаниях. Я никогда не получил бы поддержку такого количество руководителей ИТ-рынка, если бы пренебрег автортетом перед ними.
А лучшее признание - это признание от своих бывших коллег, с которыми ты уже не работаешь вместе, потому что его бескорыстность не вызывает сомнений.
Обращает на себя внимание фраза, которая развивает тему предыдущего поста:
💬 The only person whose praise matters is another programmer.
Именно в этом заключается, как мне кажется, истинный путь к лидерству. Ведь слово "ведущий" (т.е. лидер) имеет смысл только в контексте "ведущий кого"?
Когда специалист действует ради сиюминутной похвалы от руководства, то он тем самым блокирует собственное развитие до топового уровня (или до основания собственной компании) по одной простой причине - у него сформирована потребность в том, чтоб его постоянно "кто-то хвалил сверху". Т.е. он добровольно ограничивает себя ролью второй скрипки.
На практике иногда приходилось наблюдать как специалист уступал профессиональностью своего решения в обмен на благорасположение бизнес-менеджмента, что приводило к утрате авторитета среди коллег, к загниванию системы, и, в конечном итоге, как это ни парадоксально звучит, к утрате того самого доверия менеджмента, ради которого он так действовал, а иногда даже к увольнению под благовидным предлогом, чтоб не задеть ущемленное самолюбие и не спровоцировать негативные отзывы о компании. Специалист думал, что занимая "удобную" для менеджмента позицию он тем самым перекладывает на него всю полноту ответственности за последствия такого решения. Но менеджмент видел это так, что если специалист согласился, то он осознаёт все последствия и считает возможным реализовать "хотелку" без ущерба для системы. Истина в том, что ответственность не перекладывается вместе с полномочиями, но это становится очевидным слишком поздно.
Истинный авторитет обнажается только тогда, когда время отобьет весь шлак дешевого авторитета. На это требуется время и не у всех хватает смелости вытерпеть.
Мудрый специалист мыслит дальше, чем сиюминутная похвала менеджмента, и оценивает свои решения объективными последствиями, от которых зависит то, продолжит ли завтра этот менеджер хвалить его, сохранив свой пост в компании, выстоявшей в конкурентной борьбе.
💬 All successful software companies had, as their dominant personality, a leader who nurtured programmers.
P.S.: Большинство моих бывших коллег-программистов сегодня занимают ответственные руководящие или архитектурные должности в крупных высокотехнологичных компаниях. Я никогда не получил бы поддержку такого количество руководителей ИТ-рынка, если бы пренебрег автортетом перед ними.
А лучшее признание - это признание от своих бывших коллег, с которыми ты уже не работаешь вместе, потому что его бескорыстность не вызывает сомнений.
👍11❤2🔥1💯1
Forwarded from Бренды на коне
Media is too big
VIEW IN TELEGRAM
Парень сделал краткий пересказ 95% выступлений на IT-конференциях. Я прям ждала, когда он скажет «мы делаем этот мир лучше».
😁33👍15🔥4❤3💯2