Классическая схема отдела такая — народ сидит в офисе (ну или как сейчас на удалёнке) за повременную оплату (8 часов в день) или в бодишопах на почасовке. Добираются на работу в течении 30 — 120 минут. Найм человека происходит через hh или похожие сайты, кандидат проходит hr’а, техсобес где пытаются составить матрицу компетенций. В Москве кандидатов много с любым уровнем знаний, в регионах с этим проблема. Если нет технического вуза поблизости, а бизнес вести хочется, едь в ближайший миллионник и плати местные зарплаты. Последнее для стартапа особенно неприятно. Хорошо если на проекте куда взяли человека существует и ведётся документация по решениям с описанием схем движения данных и т.д., но я такого не встречал ни разу. Бывают обрывки, хаотично ведущиеся записи, протоколы собраний с обоснованиями принятых решений, но систематически ведущаяся документация по разработке — это как двойное затмение луны. Зачем нужна документация со схемами и обоснованиями? Когда архитектор набрасывает макет будущего проекта, то он является носителем уникальных знаний которых нет больше ни у кого. Это серьёзная проблема, если спец заболеет, погибнет, уйдёт — то с ним уйдут и компетенции. Восстановление компетенций без документации и носителя знаний настолько нетривиальная задача, что проще переписать всё заново (и то и другое большие деньги). Ввод в проект нового бойца или старого с другого проекта — это полгода наставничества и отвлечения внимания уже работающих. При этом новая единица тоже ограниченно функциональна по большему счёту. Система постановки задачи может ветвиться, разделяться на подзадачи и сливаться вновь возвращаясь из неожиданных мест. Задача может не проходить через лидов или архитекторов, что добавляет треша и угара в попытках расширить архитектуру или впихнуть непвихуемое.
Проблемы при классической схеме
Человеческие ресурсы ограничены наличным количеством и оперативному изменению практически не поддаются. Отсюда проблема простоев и переработок.
Невыгодно держать узких специалистов. Такие спецы уникальный источник знаний, но и расходы на содержание высоки, а задачи редки. Отсюда проблема простоя и застоя в компетенциях.
Люди в командах специализируются на текущих задачах и начинают деградировать если не делают над собой усилий или их не принуждают к таким усилиям.
Найти человека с нужными компетенциями трудно или вообще невозможно за выделенные деньги и время.
Отсутствие документации с описанием проекта для быстрого онбординга новичка.
Необходимость менторов.
Проблема расширения функционала без глубокого анализа такой возможности, а такой анализ возможен только носителем широких компетенций в проекте — архитектором.
Проблема выбывания носителей уникальных знаний по проекту.
Проблема моральной атмосферы в коллективе и личных отношений влияющих на принятие важных решений.
Проблема непрозрачности финансов для заказчика и исполнителей по оплате труда.
Проблема повышения статуса исполнителя и типа выполняемых задач.
Можно ли как-то нивелировать указанные проблемы не меняя парадигму(модель) управления разработкой? Короткий ответ — нет! В дальнейшем такая модель будет тормозить работу, а при увеличении бизнеса и бюрократизации процессов вообще может вынудить к переводу разработки на аутсорс. Хорошо ли это — вынос разработки на аутсорс? — Короткий ответ — да, если это ускорит и облегчит развитие продукта! Может ли быть аутсорс — внутренним для компании? — Легко. А внешним? — тут сложнее, права, безопасность это всё… но возможно! А внутренним и внешним? — Можно и вот как это сделать.
Сервис представляет собой
- Систему коммуникации заказчика и исполнителей.
- Обеспечивает динамическое подключение специалистов с требуемыми компетенциями.
- Осуществляет расчеты с заказчиком и исполнителями.
- Оперативно показывает статус проекта и прогресс по задачам.
- Предоставляет заказчику отчёт о потраченных средствах с детализацией выплат.
- Позволяет войти в сервис с проектом на любом шаге и также выйти из него.
- Контролирует исполнение задач и их качество.
- Позволяет находить узких специалистов для решения задач.
- Позволяет динамически организовывать ресурсы на проекте в зависимости от нагрузки.
Вертикальная иерархия ролей специалистов в сервисе
- Менеджеры проектов. Роль осуществляет общее управление старшими специалистами, коммуникации между ними, разрешение спорных ситуаций, утверждает решения или обосновывает отказ.
- Лидеры направлений. Роль формирует декомпозиционное дерево подзадач и установку их в пул для нижестоящих ролей данной ветви компетенций. “Графика, анимация, дизайн, эффекты” — решает задачи по разработке общих концепций по всему что касается графики и звука. “Экономика и маркетинг” — маркетинговое исследование про спросу на продукт, таргет группы, инвестирование в проект, аналоги, примерные сметы расходов на этапы. “Разработка” — создание программной версии продукта на всех этапах его жизненного цикла, архитектура, сборки пакетов, платформы. “Тестирование” — ручное и автоматизированное. “Юридическое обеспечение” — защита авторских прав и патентные исследования, проверки чистоты сделок с средствами заказчика, обоснование выплат исполнителям в автоматическом режиме. “Игровой дизайн и сценарии” — относится в основном к игровой индустрии, занимаются механиками, фичами, сценами и монетизацией.
- Старший специалист. Роль получает из пула специализированную но всё ещё общую задачу созданную лидерами. Имеет опыт в решении подобных задач, широкую компетенцию в специализации. Может решить задачу сам или оценив сложность исполнения декомпозировать в пул задач для следующей роли.
- Специалист. Роль получает из пула подготовленную задачу не требующую дальнейшей декомпозиции. Задача точно поставлена, оговорены сроки исполнения, необходимые технологии и критерии успешного результата.
Каждая из вышестоящих ролей формирует пул декомпозированных подзадач для нижестоящей, указывает критерии выполнения и стоимость выполнения задачи. Вышестоящая роль не может директивно назначить исполнителя или назначить себя на подзадачу.
Нижестоящая роль при декомпозиции задачи обязана получить подтверждение на своё решение у вышестоящей роли поставившей исходную задачу.
Нижестоящая роль, после получения задачи, может отправить её на ревью постановщику с обоснованием обнаруженных ошибок или неточностей либо открыть спор с арбитражем и голосованием.
Вышестоящая роль может взять задачу любой нижестоящей если не является её(задачи) постановщиком.
Выполненная задача находится в специальном пуле для ревью и утверждения. Ревью задачи может проводить текущая роль(но не исполнитель) или на одну выше и ниже.
За выполненную и утвержденную задачу исполнителю начисляется указанная в задаче оплата (за вычетом комиссии сервиса за транзакцию) и балы рейтинга.
За выполненное ревью с обоснованным указанием об ошибке или отступлении от критериев ревьюиру начисляются балы, а у ревьюируемого они списываются. Споры по результатам ревью решаются автоматически общим голосованием ролей участвовавший в ревью.
Переход к вышестоящей роли происходит автоматически по достижении определённого количества балов у исполнителя. Таким образом можно пройти всю иерархию вплоть до менеджера не решив ни одной задачи, но набрав балы в ревью чужих задач.
Каждая задача и декомпозиционное дерево задач сопровождается созданием набора документов обосновывающих выбор решения и кратко описывающих его. Каждая задача не являющаяся веткой уже существующей, то есть расширение функционала — должна начинаться с утверждения у менеджера и далее проходить утверждения по ролям вплоть до конечного исполнителя.
Задача автоматически считается невыполненной если была взята в работу, но сроки выполнения завершились и от исполнителя не было направлено обоснование на продление сроков.
Невыполненная задача устанавливается обратно в пул задач на выполнение, а исполнителю назначается штраф в виде списания балов.
Набор определённого отрицательного уровня балов ведёт к автоматической блокировке исполнителя по выбранной компетенции.
Отсутствие выполненных задач или ревью за определенный срок ведёт к автоматическому понижению общего бала.
При снижении бала ниже порогового уровня роли происходит переход статуса исполнителя на нижестоящую роль.
Схема движения заказа от заказчика до готового продукта
Заказчик заводит в сервисе проект описывая бизнес задачу (это является первичной информацией). Вносит на свой счёт в сервисе объём средств минимально необходимый для экономико-маркетинговой экспертизы или если она уже есть, то для составления технического задания лидером(разработки, архитектором). Экономическая экспертиза и техническое обоснование включает в себя заключения экспертов о экономической целесообразности данного продукта. Экономическая целесообразность — это исследование аналогов, спроса, доступных ресурсов, практической реализуемости представленное в виде документа с рекомендациями. На следующий этап задача переходит при достаточности средств на счету заказчика в сервисе. Заказчик может предоставить свою экспертизу или ТЗ(техническое задание, архитектуру проекта) на согласование. Если согласование не пройдено, то задача(проект) не может быть взята в разработку. Заказчик может выйти из сервиса на любом шаге или заморозить его в сервисе за отдельную плату. Заказчик имеет доступ на чтение ко всей документации и исходникам по проекту, к сборкам пакета приложения или ресурсов, к прогрессу выполнения проекта и задач, ведомостям по оплате исполнителям.
Разработка ведётся согласно правил установленных на старте проекта, это касается языка составления документов и описаний, соглашению по оформлению кода и самодокументирующимся комментариям. Приоритет в написании классов и функций отдаётся максимально простому и чистому коду. В каждом случае, когда это возможно, код покрывается Unit тестами. В разработке должны быть специалисты обеспечивающие работу контроля версий, автоматической сборки, удалённое подключение исполнителей к необходимому оборудованию на стороне сервиса или заказчика.
Ввод исполнителей в сервис возможен после получения матрицы компетенций. Матрицу компетенций возможно получить в сервисах специализирующихся на тестировании в автоматизированном режиме. Аккредитованные сервисы предоставляют API с помощью которого можно получить матрицу по соискателю. В зависимости от полученных результатов для аккаунта исполнителя устанавливаются стартовые роли и компетенции для которых будут видны специализированные задачи. Резюмируя, исполнитель регистрируется в сервисе и получает ссылку на сервис тестирования компетенций и проходит их. Результаты тестирования заполняют матрицу компетенций и аккаунту открывается возможность брать задачи, проводить ревью, читать документацию доступную для своей роли.
Рекомендуется на первом этапе ввести в сервис оформленных исполнителей на существующей базе “офиса”. Проверить работу с заказчиком в реальных проектах. Провести рекламную компанию в специализированных сообществах и соцсетях с тезисами — “Полная прозрачность и честность, никаких секретов. Работай над чем хочешь, откуда хочешь и тогда когда хочешь. Тебе никто не приказывает. Заработай сколько сможешь унести, никаких ограничений для всех и навсегда. ”
Вопросы требующие отдельной проработки
- Безопасносность.
- Оплата и расчёты с заказчиком и исполнителями.
- Юридические вопросы до договорам с заказчиком и сдельной оплате исполнителям, трансграничные переводы.
- Защита авторского права.
DrPass
Короткий ответ: нифига не легко, и то, что вы написали, не «взлетит».
Чуть более развёрнутый ответ: обезличенный исполнитель в пуле никак не гарантирует ни качества, ни сроков исполнения, а система рейтингов в скором времени приведёт лишь к тому, что в системе сформируется группа очень востребованных и очень дорогих лидеров, и большой пул аутсайдеров-тёмных лошадок.
Второй момент, почему это не заменит, по крайней мере, внутреннюю разработку: аутсорс требует достаточно высокой степени формализации взаимодействия между заказчиком и исполнителем. Во многих конторах, которые имеют внутренние отделы разработки, коммуникация между заказчиком и исполнителем крайне упрощена. Они не будут готовы этим жертвовать.
Третий момент — сложность и ненадёжность администрирования всего этого колхоза.
wmgeek
Про группу лидеров полностью согласен, наглядно на хабр фрилансе представлена. А вот с аутсорсом все не так плохо, если аутсорсить много. Например, департамент по частям — руки (field service), процессы (service management), эксплуатация (operations), разработка и развитие (development), связи с бизнесом (brm) и управление и планирование (Strategic planning and governanace). И да, это не просто.
medex81 Автор
Вы наверное не прочитали статью полностью или может не всё поняли.
Задача не может быть утверждена без ревью, ревью стимулируется у исполнителей набором балов и доступом к другому уровню задач и стоимостей.
хм… не люблю самоцитирования но
И это есть в статье. Для набора рейтинга необходимо решать задачи или ревьювить их, для большой группы не будет хватать задач их уровня, а на нижнем уровне они не будут иметь преимуществ в выборе задач из пула. Просто так сидеть на троне тоже не выйдет потому, что без активности рейтинг снижается. Новички учатся их через ревью менторят старички и это нормально и полезно. Придраться не выйдет так как есть система споров с арбитражем и голосованием.
Любая деятельность отличная от выковыривания сопли из носа имеет сложность и ненадёжность и сопровождается сложностями в администрировании.
DrPass
Я понял вашу идею. Это как раз вы сами толком не понимаете, как оно работает в реальности.
Во-первых, ревью также никак не гарантирует качества, тем более если ревью проводится таким же анонимным исполнителем, пусть и более высокого ранга. Во-вторых, ревью — это оплачиваемая работа, как много клиентов готовы за это платить? Во внутренних проектах ревью вообще скорее исключение, чем правило. В третьих, вот не прошёл какой-то код ревью — а работа-то не выполнена. Заказчику ведь надо было получить решённую задачу, а не ждать, пока там шестеренки между собой порешают, годный код или не годный.
Эм… это называется «сорваны сроки», так, чтобы вы были в курсе. То, о чём я и пишу. Заказчику, повторюсь ещё раз, решенная задача была нужна. А не «справедливое возмездие» не вложившемуся в сроки исполнителю в виде списания баллов, которого он и видит-то в первый и последний раз.
Почему вы так решили? Говорить о существовании какого-то баланса в достаточно тонкой структуре, которая и существует только как не до конца проработанная концепция, как минимум преждевременно. Тем более что посмотрите на любую биржу фриланса, там аналогичные проблемы и аналогичные тренды.
Любая. Но время и бюджеты всегда ограничены, а возможности раздувать бюрократию, наворачивая друг на друга цепочки контроля, метрики там всякие, безграничны.
medex81 Автор
Одним может и нет, двумя и более вполне возможно. Если трое скажут что всё хорошо, такому ревью вероятно стоит доверять. Да и такие вопросы возможно балансировать.
Конечно оплачиваемая, за ревью можно получить балы, если спери исполнителей нет желающих всегда можно назначить цену и это тоже предмет баланса и настроек. Клиент не готов платить за качество кода? Сомнительно!
И что? Это проблемы этих внутренних сервисов, есть мировая практика доказавшая свою эффективность и её результатами стоит воспользоваться.
Заказчик не работает на уровне задач, он работает на уровне сроков и смет, поэтому можно смело это исключить. Зависшая задача — это проблема, но не данной концепции так у всех случается постоянно. Концепция не серебряная пуля которая сделает ваш проект суперменом, она позволяет быстро и эффективно решать проблемы. В рамках описанной концепции проблема ревью задачи решается повышением её привлекательности, тоесть повышением балов или установка стоимости на неё. Как вариант можно иметь команду из разных компетенций и уровней которые в пожарном режиме, за отдельную плату, согласны решать директивные задачи.
Бюрократия — это система делегирования. На одном её конце полная остановка любых решений на другом полный хаос. Нужно стараться придерживаться середины. Без небольшой бюрократии у вас будет ручной режим управления и микроменеджмент. Если вам такое подходит — работайте так.
DrPass
Хорошо, следующий вопрос: зачем два и более сеньора будут выверять код неизвестного им миддла или там джуна? Вам не кажется, что такой расход времени квалифицированных специалистов
слегкаохренеть как удорожает бюджет и увеличивает сроки любого проекта?Что значит «получить баллы»? Вы считаете, что сеньоры будут тратить время на выполнение задач-пустышек за виртуальные звёздочки, в то время как они могут тратить время на выполнение оплачиваемых задач?
Что значит «доказавшая свою эффективность»? Код ревью, как и любая другая методика, имеет свои рамки применения, где она эффективна. И за их пределами она неэффективна. Не надо натягивать одну и ту же сову на все глобусы. Если вы хотите продать свой сервис тем, кто сейчас ведёт инхаусную разработку, начинать с убеждения, что дескать вот вам теперь надо платить больше, но это эффективная мировая практика — так себе дебютный номер.
Как-то слишком вы смелый :) Допустим, я, заказчик, хочу получить проект 01.01.2021, и вы мне что, предлагаете чёрный ящик, в котором оно само с помощью анонимов раздаёт задачи, утверждает их результаты, наказывает в виртуальной «валюте» других анонимов за срывы сроков, потом докладывает мне, что сроки сдвигаются до 01.04.2021 (но тем, кто виноват, баллы сняты)? Спустить на тормозах и ждать результата, дескать, система сама всё порешает? А риски на себя кто брать-то будет? Страховые компании в вашу систему привлекать, что ли?
Подумайте сами, кто в здравом уме захочет этим пользоваться?