Найти в Дзене
CodeInside

Разработка ПО: в штате или аутсорс?

Оглавление

Создание программного продукта очень схоже со строительством дома. Это ответственно, многоэтапно и требует экспертности. И на начальном этапе всегда возникает вопрос: справиться самому или пригласить специалистов? В случае, если важен результат в короткий срок и нет времени для изучения технологий, организации рабочих процессов и контроля - лучшим решением станет приглашение рабочей бригады. Так и в разработке, высокое качество в сжатые сроки сможет обеспечить команда разработки ПО на аутсорсе.

В этой статье мы объясняем почему аутсорсинг это более эффективное решение для бизнеса, как найти надежного подрядчика и организовать совместную работу.

Почему аутсорсинг эффективнее отдела разработки программного обеспечения?

-2

Разберем данный вопрос на примере “Компании А”. “Компания А” планирует создать собственный программный продукт в сжатые сроки. Компания занимается фармакологическим бизнесом и из IT-специалистов в штате один системный администратор.

Вопрос: что рациональнее для “Компании А” - организовать отдел разработки или обратиться за помощью к подрядчику?

Давайте предположим, что “Компания А” все же решает организовать свой отдел разработки. Для этого необходимо рассчитать несколько переменных: аренда дополнительных рабочих мест и затраты на их обслуживание (Х), заработная плата разработчиков (Y), покупка оборудования и софта (Z). Возьмем средние значения по рынку.

1. Рассчитаем расходы на команду:

Команда: 3 бэкенд-разработчика, 1 фронтенд-разработчик, 2 мобайл-разработчика (андроид и айос), руководитель проектов, тестировщик, DevOps инженер и руководитель отдела (технический директор). В общей сложности - 10 человек. Именно такая команда может обеспечить надлежащее качество.

Аренда дополнительных рабочих мест + затраты на их обслуживание (на 1 сотрудника в месяц) - 15 000

Итого: Х = 150 000 (руб/ мес)

  • Заработная плата специалистов - 100 000 рублей в месяц ( в среднем).

Y= 1 000 000 (руб/ мес)

  • Покупка оборудования и софта - 50 000 за 1 рабочее место.

Z = 500 000 (руб)

2. Добавим к этим составляющим косвенные расходы (налоги, премии, страховка) и получим, что расходы на содержание отдела разработки “Компании А” составит около 16 млн рублей в первый год.

P.S.: расчёты не претендуют на 100% точность

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

Кроме того, знаком ли вам термин «недоутилизация инженерного персонала»? Этот показатель означает коэффициент загруженности сотрудниками задачами в рабочее время. Недоутилизация не может равняться нулю - любой штатный сотрудник вынужден в течении рабочего дня решать организационные вопросы, проходить обучение и прочее. И чем выше недоутилизация инженеров отдела разработки, тем дороже она обойдется работодателю. В отличии от штатного отдела разработки аутсорсер может управлять недоутилизацией своих специалистов и перераспределять ресурсы при большом количестве проектов. Это работает благодаря тому, что сотрудники аутсорсинговой компании успевают сработаться со своими коллегами за время работы над другими проектами, что позволяет работать более гибко и эффективно.

Подытожим:

  • Создание отдела разработки ПО в компании - ресурсозатратный процесс. Удаленная команда обойдется дешевле: не такие высокие ЗП (можно обратиться к компаниям в регионах), нет расхода на амортизацию рабочих мест
  • Создать свой отдел разработки и выпустить продукт в короткий срок (3 месяца-год) объективно не получится. В данном случае больше времени уйдет на запуск процесса, а не продукта.
  • Аутсорс команда разработчиков работает результативнее, слаженнее и быстрее, чем офисная - они эффективнее управляют недоутилизацией специалистов, а благодаря выстроенной внутренней системе имеют возможность гибкой замены кадров. Плюс ко всему, существует разница в проектном и процессном подходе. Когда люди заточены на проектный подход, работая в одном и том же контексте, они начинают выгорать. Люди из команд, которые занимаются аутсорсингом, чаще заточены на развитие в разных проектах из разных отраслей.

Где искать и как выбрать команду разработчиков на проект?

-3

Помимо поиска потенциальных кандидатов в Google и LinkedIn Recruiter, стоит обратиться к ассоциациям разработчиков ПО, например “РУССОФТ”, “АРПЭ” или “Отечествтенный софт”. Членство в ассоциации свидетельствует о надежности компании. Выбрав потенциальных кандидатов, первым делом необходимо получить ответы на следующие вопросы:

1. Есть ли у компании опыт подобной разработки?

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

2. Какой технологический стек используется разработчиками?

Узнайте у разработчика какой стек он использует: опытные компании следят за технологиями и постоянно прокачивают свои скиллы. При личном общении хороший знак, если разработчик поясняет почему конкретный язык и фреймворк оптимальнее всего использовать.

3. Есть ли проекты, которые можно попробовать?(демо-версии, готовые программы, сайты, приложения и т.д.)

Если в кейсах компании есть веб-сайты - перейдите по ссылке и оцените качество. Если указаны мобильные приложения, то найдите их в App Store и Google Play, выясните какие у приложения оценки. Скачайте, протестируйте и оцените юзабилити.

4. Какова стоимость услуг компании?

Самые бюджетные варианты все же стоит отсеять. Дешево - не значит хорошо. Есть риск получить на выходе продукт низкого качества.

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

На начальных этапах выясните какая модель ценообразования будет на проекте. Наиболее популярные: Time & Material (для трудоемких проектов, предполагающими множественные изменения) или Fixed Price (для проектов с четким ТЗ). Также запросите оценку проекта в человеко-часах. Она покажет сколько времени необходимо заказчику на выполнение задачи. (В среднем оценка занимает 3-5 дней и предполагает детализацию крупных задач).

5. Насколько публична компания?

Активно ли компания ведет соц.сети? Публикует ли экспертный и информационный контент? Принимает ли участие в отраслевых мероприятиях? Да, публичность - не гарантия хорошего продукта, но однозначное преимущество.

6. Как организуется менеджмент?

Выясните то, как осуществляется взаимодействие с заказчиком, как организуется работа. Методология создания ПО обычно описано в кейсах компании. Мы, например, используем две модели разработки: agile (гибкая методология) и Waterfall (водопадная или каскадная модель). Применяем ту или другую в зависимости от проекта.

Модель управления проектами, которую мы используем в CodeInside.
Модель управления проектами, которую мы используем в CodeInside.

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

7. Какие условия пост-релизного обслуживания?

Уточните у компании-разработчика, предусмотрена ли поддержка после релиза. Это, пожалуй, один из самых важных пунктов. Выясните, какие гарантийные сроки готов предоставить исполнитель.

8. Есть ли возможность стартовать с демо-версии?

Нашим клиентам, если мы видим, что они сомневаются, предлагаем попробовать не сразу реализовывать крупный проект целиком, а только часть. Это позволяет заказчику определить: удобен ли данный формат работы, устраивает ли качество и скорость решения проблем.

Обсудить разработку —> codeinside.ru