Книжный куб
11.1K subscribers
2.66K photos
6 videos
3 files
1.96K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
[4/4] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx)

Закончим рассмотрение статьи про developer productivity (1, 2 и 3) и обсудим полученные авторами результаты.

Топ пять факторов, что получились после анализа содержали следующие факторы
- Project code quality (качество кода в проекте)
- Hindrance of shifting priorities (препятствия в изменении приоритетов)
- Technical debt in projects (технический долг в проектах)
- Innovation of infrastructure & tools (инновации в инфраструктуре и инструментах)
- Overall satisfaction with infra & tools (общая удовлетворенность инфраструктурой и инструментами)

Дальше авторы применили панельный анализ с запаздыванием. Суть в том, что они получили корреляцию между продуктивностью инженеров и факторами, что приведены выше, а хотелось бы получить более сильные результаты и понять направление связи. Для этого они выдвинули две гипотезы
1) QaP: изменения в качестве кода в момент T-1 коррелирует с изменениями в продуктивности инженеров во времени T. В виде формулы это выглядело так: Δ𝑃𝑖𝑡 = 𝛼 + 𝛽Δ𝑄𝑖𝑡−1 + Δ𝜖𝑖𝑡
2) PaQ: изменения в продуктивность в момент T-1 коррелирует с изменениями в качестве кода в момент T. В виде формулы это выглядело так: Δ𝑄𝑖𝑡 = 𝛼 + 𝛽Δ𝑃𝑖𝑡−1 + Δ𝜖𝑖𝑡
Оказалось, что первая гипотеза о том, что рост качества кода связан с повышением производительности подтверждается со следующей силой
We found that a 100% increase of satisfaction rating with project code quality (i.e. going from a rating of ‘Very dissatisfied’ to ‘Very sat- isfied’) at time T-1 was associated with a 10% decrease of median active coding time per CL, a 12% decrease of median wall-clock time from creating to mailing a CL, and a 22% decrease of median wall-clock time from submitting to deploying a CL at time T.

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

Отдельно надо рассказать про опасности для валидности этого эксперимента, которые описали авторы. Их всего 4
1) Content. Авторы измеряли продуктивность по ответу на один вопрос в проводимом EngSat опросе, что конечно не дает полной картины. Например, авторы отмечают, что этот вопрос был про индивидуальную продуктивность инженера, а не про эффективность команды. Примерно также не все факторы, что могут влиять на продуктивность были рассмотрены
2) Construct. Восприятие вопроса про продуктивность могло отличаться у респондентов. Например, кто-то мог думать о продуктивности в формате нафигачить быстро фичу, а кто-то учитывал разницу в качестве при создании фичи. Ну и там был еще ряд мест, где респонденты по разному могли воспринять сами вопросы
3) Internal. В этом исследовании авторы используют панельный анализ с запаздыванием, что эффективно предполагает, что эффекты на индивидуальных инженеров не зависят от времени. Например, у одного инженера сменился проект и команда, другому достался крутой ментов, у третьего что-то случилось в семье. Одновременно, могли бы быть проблемы, если какие-то категории инженеров систематически не участвовали в опросе, например, ветераны разработки или наоборот новички. Но авторы такие отклонения контролировали.
4) External. Весь эксперимент основывает только на опыте инженеров внутри Google, а значит может не иметь обобщающей силы на другие компании в индустрии.

Несмотря на все потенциальные проблемы, мне понравилось это исследование не только итоговым ответом на вопрос про то, что улучшает developer productivity в Google, но и самой методологией проведения эксперимента.

#Management #Leadership #Software #SoftwareDevelopment #Architecture #SoftwareArchitecture #Metrics #Devops #Processes
6👍3🔥1
[4/4 + Extra] What Improves Developer Productivity at Google? Code Quality. (Рубрика #DevEx)

В этом посте приложены ключевые иллюстрации из статьи, что разбиралась в четырех предыдущих частях обзора 1, 2, 3 и 4.
🌭3👍2🔥1
2 гига спустя - эпизод первый (Рубрика #News)

Это первый выпуск подкаста с лайтовым обсуждением новостей двумя ведущими Суть в том, чтобы в научпоп формате обсуждать интересные IT новости и выпускать эпизоды раз в неделю. В этом мне помогает Антон Костерин, мой коллега, с которым мы вместе развиваем архитектурную функцию в Т-Банке. Антон входит в программный комитет "Teamlead Conf", а также уже много раз появлялся в моем канале:
- Внешний подкаст с темой "Миграция в срок, реальность или миф?"
- Подкаст "Code of Architecure" в первой серии по книге ван Стина и Таненбаума "Distributed Systems"
- Третий выпуск Code of Architecture по книге "A Philosophy of Software Design"
- Code of leadership #17 - Interview with Anton Kosterin about Architecture

В первом выпуске мы обсудили темы
0) Vibe coding в обсуждении Y Combinator. Где vibe coding становится новым подходом к программированию, позволяющим быстро создавать код с помощью ассистентов без необходимости глубокого изучения программирования, что особенно полезно для стартапов и домашних проектов. Оригинальное видео и мой краткий разбор
1) Forbes написали о том, что 95% объектов критической инфраструктуры используют зарубежные решения, включая Zabbix для мониторинга (85%), что поднимает вопросы импортозамещения
2) Ситибанк допустил серьезную ошибку, случайно переведя 81 триллион долларов вместо 280 тысяч, что подчеркивает необходимость многоуровневой защиты в финансовых системах.
3) C++ сталкивается не только с проблемами безопасности, но и с проблемами маркетинга, что может привести к его упадку, несмотря на то, что он остается стандартом де-факто в индустрии. Об этом рассказал сам создатель языка, Бьерн Страуструп
4) Равинд Шинивас, CEO Perplexity, поделился своим опытом создания компании, разрабатывающей AI поиск с использованием LLM моделей и успешно конкурирует с Google Search, Microsoft Bing и остальными. Оригинальное видео и мой разбор
5) Исследование показало, что внешность кандидата может влиять на успешность прохождения интервью, что поднимает этические вопросы при найме. Нейронные сети могут перенимать человеческие предубеждения из обучающих данных, что особенно проблематично в таких областях как медицина, где важна точность прогнозов.

Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.

#Management #AI #Software #Engineering #Reliability #Processes #Productivity
5👎2🔥2👍1🍌1
ACM A.M. Turing Award для Эндрю Барто и Ричард Саттон (Рубрика #AI)

ACM A.M. Turing Award получили в этом году Эндрю Барто и Ричард Саттон. Эту награду часто называют "Нобелевской премией в области информатики" и им ее дали за их новаторский вклад в reinforcement learning (обучение с подкреплением). Их сотрудничество, начавшееся в 1980-х годах, ввело ключевые концепции, математические основы и влиятельные алгоритмы, которые стали фундаментальными для современных систем ИИ. Reinforcement learning позволяет машинам обучаться оптимальному поведению путем взаимодействия с окружающей средой через метод проб и ошибок, руководствуясь наградами и штрафами.

Среди их наиболее значимых достижений:
- Развитие концепции temporal-difference learning, а точнее TD-Lambda, позволяющей системам учиться на основе разницы между последовательными предсказаниями
- Создание математических основ обучения с подкреплением с использованием марковских процессов принятия решений
- Разработка методов градиента политики (policy-gradient methods)
- Концепция временной абстракции, позволяющая ИИ учиться поэтапно, что критически важно для систем, которым необходимо рассуждать на длительных временных горизонтах
- Использование нейронных сетей для представления изученных функций

Краеугольным камнем их наследия является влиятельный учебник "Reinforcement Learning: An Introduction", впервые опубликованный в 1998 году, со значительно расширенным вторым изданием, выпущенным в 2018 году. Эта книга широко признана определяющим руководством по reinforcement learning, четко излагающим ключевые идеи и алгоритмы. Кстати, я заказал себе как раз второе издание книги на английском, к концу марта оно доедет ко мне и дальше я попробую ее почитать:)

#AI #Math #Engineering #ML #Software
10🔥3👍2🍌1
Code of Leadership #32 - Interview with Nikita Burkov about Marketing, Sales & Xsell

В очередном выпуске подкаста ко мне пришел интересный гость, Никита Бурков, который CTO в сфере X-Sell маркетинга и продаж в Т-Банке. Он обладает обширным и разносторонним опытом, а его карьерный путь начался с оффлайн-продаж в 10 лет, что сформировало его понимание рынка и потребностей клиентов. Также он развивал LMS-системы в университетах, создавал программное обеспечение для бухгалтерии международного процессингового центра и работал над первым финансовым маркетплейсом в России. Никита развивался, как Java-разработчик и стремительно прошел путь до CTO, благодаря страсти к технологиям и лидерским качествам. В подкасте мы обсуждаем как работает маркетинг, продажи, кросс-селл, а также как быть хорошим техническим директором. Вообще мне все эти темы отзываются, так как я уже больше 10 лет связан с маркетингом, привлечением и всем всем всем. Кажется, именно поэтому мы записали рекордный выпуск на 2.5 часа, где мы поговорили на следующие темы

- Личный и профессиональный путь Никиты
- Системы и платформы для кросс-продаж
- Маркетинговые стратегии: кросс-канальность и омниканальность
- Сегментирование и таргетирование
- Бизнес-метрики и NPV в экосистеме
- Архитектура бизнес-доменов
- Типы команд и их функции
- Триггерная система и обработка данных
- Роль технического директора и стратегическое планирование
- Продуктовый подход и развитие сотрудников

Выпуск подкаста доступен в Youtube, VK Video, Podster.fm, Ya Music.

#Architecture #Software #Engineering #ProductManagement #Management #Economics
9👍3🔥2
Модели T-lite и T-pro: training report

Интересный отчет от моих коллег о том, как проходили тренировки моделей T-lite и T-pro.
- Зачем адаптировать модели на русский язык - тут ребята объясняют, а зачем всем этим заниматься, если есть зарубежные open source модели
- Стадии обучения языковой модели - здесь кратко идет речь про Parameter Efficient Fine-Tuning, Supervised Fine Tuning, General Post-Training и главное Continual Pretraining, который применяют ребята. Кратко суть подхода в том, чтобы
Дообучать уже сильные открытые модели, тратя на обучение на порядки меньше ресурсов, чем создатели текущих моделей лидеров индустрии.

А затем авторы разбираю каждый этап в деталях и это действительно интересное чтиво для интересующихся современными подходами к созданию LLM. Рекомендую.

#AI #ML #Software #Engineering
🔥6👍41
The Future of U.S. AI Leadership with CEO of Anthropic Dario Amodei (Рубрика #AI)

11 марта 2025 года состоялась беседа в рамках серии "CEO Speaker Series" Совета по международным отношениям (CFR), где президент совета Майкл Форман провел интервью с генеральным директором и соучредителем компании Anthropic Дарио Амодеем. Именно на этой встрече Дарио дал свое предсказание о том, что 90% кода через полгода будут писать AI, а через год и все 100%. В итоге, я решил посмотреть всю встречу и отметить основные моменты, что мне показались интересными.

1) Основание и миссия Anthropic
Дарио Амодей рассказал о причинах ухода из OpenAI в конце 2020 года и создании Anthropic. Он объяснил, что его команда одной из первых распознала "гипотезу масштабирования" - принцип, согласно которому ИИ становится лучше при увеличении вычислительных мощностей и данных. Anthropic была создана как компания, ориентированная на миссию, с акцентом на безопасность и предсказуемость технологий ИИ. Здесь Дарио недвусмысленно намекнул, что у OpenAI были другие планы на развитие этих технологий
2) Безопасность и ответственное развитие ИИ
Амодей подробно рассказал о подходах Anthropic к безопасности, включая:
- Механистическую интерпретируемость для понимания поведения ИИ
- Конституционный ИИ, обучаемый на основе принципов
- Политику ответственного масштабирования
- Уровни безопасности ИИ, сравнимые с уровнями биобезопасности
3) Будущее программирования
Это самый горячий топик, из-за которого я пошел смотреть это выступление. Амодей сделал прогноз о том, что в течение 3-6 месяцев ИИ сможет писать 90% всего программного кода. При этом он отметил, что роль программистов изменится, но останется важной для определения требований, дизайна приложений и принятия критических решений.
4) Геополитика и национальная безопасность
Амодей подчеркнул важность экспортного контроля над технологиями ИИ и обсудил риски, связанные с возможным доминированием Китая в этой области. Звучала фраза в стиле того, что кто получит доминацию в этой технологии, тот получит военное и экономическое превосходство и во всем остальном. Также обсуждались вопросы контрабанды графических процессоров и сотрудничества с институтами национальной безопасности.
5) Социальные последствия развития ИИ
В беседе затрагивались вопросы влияния ИИ на рынок труда, общество и человеческие ценности. Амодей представил как оптимистичный, так и пессимистичный сценарии будущего, где ИИ может либо помочь людям создавать великие вещи, либо привести к обесцениванию человеческого труда. Интересно, что я сейчас дочитываю книгу "Feeding the Machine" ("Как кормят машину"), где очень интересно поднимаются именно эти темы.
6) Перспективы развития ИИ
Амодей обсудил возможные ограничения роста ИИ, включая потенциальное исчерпание данных к 2030 году, но отметил, что новые методы обучения, такие как "reasoning models", могут устранить эту проблему, позволяя ИИ учиться на основе собственных мыслей.

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

#AI #Software #Engineering #Storytelling #ML #Architecture
👍53🔥1
[2/3] A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-making (Рубрика #Architecture)

Продолжим рассмотрение whitepaper на тему использования Gen AI в архитектуре, начатый в первом посте, рассмотрением паттернов промтинга.

1) Software architect persona pattern

Это паттерн, расширяющий паттерн персоны, где суть в том, чтобы AI генерировал контент релевантный для архитектора, то есть он был точный и адресовал те проблемы, с которыми сталкиваются архитекторы. Это достигается путем создания запросов, которые четко определяют роль архитектора программного обеспечения, цели и ограничения в отношении целевого проектного решения. Вот шаблон промпта от авторов
You are [Persona’s Name] in the role [Role]. Your main goal is [Main Goal]. You cannot [Limitations/Constraints].

В качестве примера промпта приводится следующий
You are a Senior Software Architect specializing in cloud-based solutions.Your main goal is to optimize system scalability and performance. You cannot propose solutions that significantly increase operational costs.


2) Architectural project context
Авторы предлагают задавать контекст проекта через три ключевых фактора
- Операционные, такие как доступное время разработки
- Организационные, такие как размер команды
- Финансовые, такие как бюджет проекта
Эти факторы напрямую влияют на осуществимость и направление архитектурных решений, что требует паттерна, который эффективно интегрирует эти элементы в процесс принятия решений. Интересно, что авторы тут рассматривают проектный подход реализации больших архитектурных изменений. Вот шаблон промпта от авторов
Given a development timeline of [Time], a team of [Team Size], and a budget of [Budget], determine if the proposed architecture [Architecture Description] is feasible and can meet the project requirements without compromising on quality.

В качестве примера промпта приводится следующий
Given a development timeline of 6 months, a team of 10 developers, and a budget of $500k, determine if implementing a microservices-based architecture for our e-commerce platform is feasible and can deliver the required scalability and performance within these constraints.

Как по мне, такое описание контекста проекта кажется слишком убогим, хотелось бы посомтреть как выглядит output LLM, если ей скормить полноценное описание:)

3) Quality attribute question pattern
Для проектирования качественной архитектуры нужно правильно определить функциональные и нефункциональные требования, а также выделить желаемые атрибуты качества. Дальше уже можно выбирать архитектурные паттерны, тенологиии и все остальное. В этом паттерне авторы предлагают научить AI-ассистент задавать вопросы живым архитекторам как раз для выделения этих ключевых атрибутов качества. Вот так выглядит шаблон промпта
You are [Role] responsible for [Description Project]. Your primary focus is to design an architecture that excels in [List Of The Quality Attribute]. Your task is [Decision-making Process]. You should ask [Clarify Doubts]. [Recommendations]. Additionally, provide a [Comprehensive Prompt].

В качестве примера промпта приводится следующий
Уou are an experienced software architect responsible for creating a credit card processing system for a medium-sized financial institution. Your primary focus is to design an architecture that excels in scalability, security, and performance. Your task is to carefully navigate through the decision-making process of the credit card processing system architecture step by step. You should ask any necessary questions to clarify doubts about the quality attributes of the new system. Avoid making any architectural decisions until all questions are answered. Additionally, provide a comprehensive prompt that includes all the data collected in the previous steps, along with an explanation of the rationale behind each architectural decision-making.

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

#Architecture #GenAI #AI #ML #Software #Engineering #SystemDesign #DistributedSystems #Project
👍73🔥2
Баскетбол: ЦСКА - Енисей (Рубрика #LifeStory)

Были вечером в среду с сыном на матче баскетбольного ЦСКА. Решили в этот раз сесть на уровне поля, чтобы оценить насколько по другому смотрится матч. Оказалось, что тут ощущения совсем другие - когда ты сидишь в нескольких метрах от команды и слышишь, что говорит тренер во время перерывов, или видишь игроков, пробегающий почти мимо тебя. В общем, места были зачетные, а еще игра оказалась не проходной - ребята из Енисея в первую половину клали трехи почти без промаха и ЦСКА горел примерно на 15 очков к перерыву. Меня даже Максим, мой сын, спрашивал, а почему ЦСКА так плохо играет. Я ответил, что во второй половине тренер им все объяснит и они начнут переигрывать Енисей. Примерно так и получилось, но матч был близким до последних секунд и еще за полминуты до конца отрыв был всего в треху. Правда, в итоге ЦСКА победил и мы с Максом отправились домой, обсуждая перепитии матча.

#Sport #ForKids
20👍10🔥2
[1/2] Feeding the Machine (Как кормят машину) (Рубрика #AI)

Я всегда ценил расширение наших знаний и возможностей об окружающем мире. Меня с детства интересовало как устроено все вокруг, поэтому мне нравится стремительный темп развития науки и технологий. Но в этой книге авторы поднимают интересные вопросы о том, а что же стоит за красивым фасадом AI (artificial intelligence), самой горячей технологии на сегодняшний день. В название книги вынесена метафора про машину, которую мы кормим своим трудом, знаниями и навыками в надежде на счастливое будущее. Про это рассказывают три автора Джеймс Малдун, Марк Грэм и Каллум Кант. Джеймс Малдун является преподавателем менеджмента в Университете Эссекса, научным сотрудником Оксфордского университета и руководителем цифровых исследований в аналитическом центре Autonomy. Его исследования посвящены вопросам использования современных технологий на благо общества. Марк Грэм — директор проекта Fairwork и профессор Оксфордского института Интернета, специализирующийся на глобальных цифровых рынках труда. Каллум Кант — старший преподаватель бизнес-школы Университета Эссекса, изучающий проблемы труда, технологий и современных кризисов. В общем, достойный коллектив для разбора такой сложной темы.

Авторы идут по пути рассказа о всей цепочке извлечения данных, тратя по главе на каждый этап. В итоге, у нас получается такой список глав
1) The Annotator (разметчик) - Глава посвящена сотрудникам, которые вручную размечают данные, используемые для обучения моделей искусственного интеллекта (AI). Эти работники выполняют монотонные задачи за низкую оплату в нестабильных условиях труда. Так же здесь рассказывается о работе модераторов контента для условных соцсетей. Авторы много работали на африканском континенте и показывает как это устроено в Уганде. Собственно, в страны Глобального Юга обычно аутсорсится такая работа и выполняется ооочень дешево, так как она не требует особой экспертизы и может быть перемещена в любую точку земного шара

Продолжение обзора в следующем посте.

#AI #Software #Management #Processes #Productivity
👍95🔥4
[2/2] Feeding the Machine (Как кормят машину) (Рубрика #AI)

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

2) The Engineer (инженер) - здесь мы переносимся в Лондон и наблюдаем за работой AI engineer, который обучает модели. Ради попадания в сроки приходится идти на компромиссы по безопасности и качеству, а ради удешевления процесса аутсорсить его в африканские страны.
3) The Technician (техник) - здесь мы попадаем в Исландию, где теперь популярно строить датацентры из-за правильного климата. Мы смотрим на все глазами техника в датацентре, который поддерживает работу машин. А дальше авторы разбирают то, как устроен рынок датацентров и электричества для них сейчас, а также рассказывают о паутине из оптоволокна, что связывает все это воедино (и значительной частью этой ключевой инфраструктуры владеют мультинациональные бигтех компании, что усиливает их переговорное плечо с любым правительством - они почти сами себе правительства и государства)
4) The Artist (артист) - здесь рассказывается банальная история про актера озвучки, что подписала контракт на озвучку с передачей полных прав. А дальше этот голос был оцифрован и использован для генерации искусственного голоса и text-to-speech задач. Дальше авторы рассказывают, что по всему миру такая практика применяется все чаще, что, фактически, приводит артистов к конкуренции с цифровыми версиями самих себя
5) The Operator (оператор) - здесь речь идет про операторов на складе Amazon, где ими управляет AI, который составляет рабочий план, контролирует его исполнение и так далее. В общем, весь их распорядок контролируют системы мониторинга производительности. Тут авторы проводят параллели между современными практиками и историческими аналогами вроде конвейеров Форда. А мне вспомнилась книга "Nomadland" ("Земля кочевников"), о которой я писал раньше
6) The Investor (инвестор) - Глава анализирует дилемму инвесторов технологических компаний, вынужденных балансировать между этическими соображениями и стремлением к прибыли, демонстрируя внутренние противоречия капитализма в сфере высоких технологий. Вообще, тут появляется единственный персонаж, из описанных в книге, кто получает бенефиты от машины извлечения и рад сложившемуся порядку. Собственно, это инвестор из Кремниевой Долины, который начинал как сотрудник НКО, а потом бросил все это ради зарабатывания денег. В итоге, он делает все, чтобы стартапы в его портфеле росли, даже если нужно выжимать все соки из аутсорсеров из третьих стран.
7) The Organiser - рассказ начинается с организатора профсоюза разметчиков данных, а дальше рассматриваются стратегии коллективных действий и организации труда, направленные на улучшение условий работы в индустрии искусственного интеллекта.
😍 Rewiring the Machine - здесь авторы предлагают конкретные рекомендации по реформированию систем искусственного интеллекта в сторону большей прозрачности и справедливости путем расширения прав работников и повышения ответственности технологических корпораций.

В общем, авторы показывают, что искусственный интеллект не является нейтральной или полностью автоматизированной технологией. Напротив, это «машина извлечения» (extraction machine), зависящая от огромного количества человеческого труда, который часто остается скрытым от общественности. Они рассказывают про системную эксплуатацию работников в глобальных цепочках поставок, питающих технологии AI, проводя параллели с историческими формами эксплуатации по признакам расы, пола и колониального наследия. Но они не просто сгущают краски, но и выступают за повышение прозрачности процессов разработки AI-технологий, расширение прав работников через профсоюзы и коллективные действия для привлечения крупных технологических компаний к ответственности и построения более справедливого цифрового будущего ... Но я думаю, что призыв останется без ответаа и мы увидим дальнейшее движение AI параллельными треками: хищно капиталистическим в США и неотвратимо социалистическим в Китае. Интересно будет посмотреть какой подход возьмет вверх.

#AI #Software #Management #Processes #Productivity
👍9🔥43