Нейронные сети в управлении (на примере автоматизации digital-агентства)Машинное обучение
Эксперт в области разработки web-сервисов. Автор многочисленных публикаций о проблематиках web-разработки и эффективного взаимодействия заказчиков и подрядчиков. В качестве докладчика участвует в профессиональных конференциях (РИФ+КИБ, RIW, SECR, SCNE, Agile Days, Russian Internet Week, Tagline, Сайт-2011-2013, IBC- RUSSIA, Формула Сайта, 1C Битрикс, и т.д.).
С 2003-го года — директор крупнейшей в Сибири студии интернет-решений Сибирикс.
КРАТКО:
Как распределять нагрузку на разработчиков с учетом их кармы, статистики факапов и успехов по предыдущим проектам, сработанности с конкретными менеджерами и текущей загрузкой digital-продакшна. Наш опыт реализации системы управления компанией, часть управленческих функций мы доверили нейронным сетям.
ПОЛНО:
В чём главная боль управления заказной разработкой?
Много ее. Например — слишком рваный поток задач. То густо, то пусто. То прилетает очень много, но очень, ОЧЕНЬ ВАЖНОЙ технической поддержки. То отменяется или слайдится на пару месяцев проект в 5 спринтов, на который уже забронирована команда.
Динамическая подстройка планов к реальности должна быть очень простой. Однако, если в компании десятки активно-существующих проектов и около сотни рабочих рук, управление потоком работ (или «единичных изделий», как это принято в LEAN) быстро превращается в ад комбинаторной сложности. В общем, чтобы сыпались деньги, ежедневно нужно крутить окровавленную, покрытую слезами ручку заказной web-разработки. Быстро. И сильно.
Подобного рода планирование, как правило, выполняется в довольно специфичном (редком и дорогом) программном обеспечении. Project Portfolio Management (PPM). Мы перепробовали, пожалуй, весь софт, который был на тот момент. От Microsoft Project Server и Oracle Primavera до специфичных SaaS-решений. Просто шли по списку и пробовали всё подряд. Всего более сотни. К сожалению, даже близко не увидели решение тех задач, которые мы вручную решали ежедневно. Например, распределить нападавшую за ночь техподдержку по приоритетам между разработчиками (у которых прямо сейчас есть еще и основной проект).
Внутреннее чувство подсказывало, что нужно всё увязывать в одну систему. Динамическое планирование. Сбор и контроль состояния спринтов и задач. Контроль счетов и релиз-менеджмент. Но именно задача управления потоком работ для нас стала первостепенной. И мы решились использовать нейронные сети.
У нас были подробные карты компетенции разработчиков. Данные по всем (ВСЕМ!) выполненным нами задачам за последние десять лет. Кто с каким менеджером работал. Какие задачи выполнил. А какие — зафакапил. И насколько. Не то, чтобы нам все это было нужно, но когда ты начинаешь — ты не можешь остановиться.
Мы добавили карму, контроль отставаний и затрат (что-то вроде метода освоенного объема), экспертные алгоритмы определения — перегружен разработчик или нет; полуавтоматическую генерацию запросов ресурсов.
В этом докладе я расскажу и покажу, что в итоге получилось. Как выглядит наша система управления на данный момент. Расскажу, что смогла и что не смогла нейросеть. А также, какие у нас есть планы по дальнейшему развитию.