Очень часто приходится слышать как программисты сравнивают и противопоставляют продуктовую и аутсорсинговую (outsourcing) разработку. И часто при этом говорят, что аутсорсинг - это ерунда и неинтересные проекты, а вот если разрабатывать продукты или начать стартап, то сразу будет счастье. Если быть до конца точными, то все это разделение не совсем корректно, т.к. сравниваются метры с килограммами.
Кстати, само слово “стартап” также часто используется неверно среди IT-шников. Стартап - это любой начинающийся бизнес, не только IT, просто наибольшее распространение он получил именно в нашей сфере в эпоху доткомов.
Сразу хочу извиниться перед теми, для кого эта информация будет сродни откровениям кэпа, но очень хочется внести ясность в этот вопрос.
Итак, компании, так или иначе занимающиеся разработкой ПО, можно условно разделить на 2 группы:
- производящие ПО для собственных нужд или с целью самостоятельного распространения (продукты и услуги)
- предоставляющие услуги по разработке ПО для сторонних заказчиков
Вторую группу составляют именно те компании, которые обычно называют аутсорсинговыми, но так ли это, что они не разрабатывают продукты? В первую группу входят компании, которые обычно называют продуктовыми, но единственные ли они в этой группе?
С точки зрения рынка разработки ПО, это самое ПО, в свою очередь, также можно разделить на 2 группы:
- продукты (в основном настольные, мобильные и embedded, реже - веб), а также веб-решения, предоставляющие пользователям различные услуги, но предназначенные для использования большим количеством сторонних пользователей, а не самой компанией
- custom solutions - индивидуальные решения, предназначенные для внутреннего использования одним потребителем, например, внутри компании или организации
Если и другие классификации ПО, но нам они сейчас не очень интересны.
Понятно, что custom solutions могут разрабатываться как внутри самой компании (in-house), так и на заказ у какого-нибудь вендора. Но ведь и продукты со “стартапами” не всегда разрабатываются внутри компании, которая потом эти продукты продает.
Если скрестить это все, то получим следующую картинку:
То есть любая аутсорсинговая компания может производить для своих заказчиков как индивидуальные решения, так и продукты. С точки зрения разработки продуктов их отличие от продуктовых компаний лишь в том, что аутсорсинговые компании, как правило, не принимают решения по продукту (Product Management на стороне заказчика) и не продают эти самые продукты, т.е. почти не рискуют, но и не собирают все сливки.
Поймите меня правильно, я ни в коем случае не хочу сказать, что разработка ПО на заказ (по сути, продажа труда, знаний и времени разработчиков) - лучше, чем разработка и продажа собственных продуктов или услуг на базе собственных решений. Разрабатывать продукты сложнее, потому что лишь 20-30% этого процесса - непосредственно разработка, остальное - анализ рынка и конкурентов, работа с пользователями, и самое главное - продажи. И после всех усилий и вложенных средств еще неизвестно - взлетит или не взлетит. Продавать услуги по разработке ПО в этом отношении намного проще и гораздо менее рискованно. В то же время и возможности заработка в аутсорсинговой модели ограничены рейтами, а разница между доходами и расходами невелика, в то время как в случае успеха продукта или стартапа доход может быть в разы, десятки и сотни раз выше, чем расходы. Но, как известно, кто не рискует, тот не пьет шампанского.
Ну, и напоследок, раз мы разобрались с разработкой продуктов в аутсорсинговых компаниях, то надо упомянуть еще и аутстаффинговые (outstaffing) компании, которые тоже присутствуют на нашем рынке в большом количестве. Чтобы два раза не вставать. Отличие между этими компаниями в том, что аутсорсинговые компании проводят разработку внутри себя, получая на входе различные требования, и отдавая на выходе программный продукт, т.е. продают услуги по разработке. Аутстаффинговые же компании “продают” заказчикам (как правило, техническим компаниям) не результат, а разработчиков или целые команды. При этом разработчики могут даже подписывать индивидуальные контракты с “работодателем”, а компания выступает лишь небольшой инфраструктурной и организационной платформой - предоставляет офис, оборудование, бухгалтерию, развлечения и прочие блага.
Согласен, аутсорсинг и аутстаффинг очень близки. Но их тоже нужно различать, потому что отличия в организации и поведении существенны. В некоторых компаниях даже на уровне документов команды - это оффшорные подразделения забугорных компаний, а разработчики подписывают индивидуальные контракты. По сути - это работа "по удаленке" с посредником, который занимается организацией и инфраструктурой. И в случае закрытия оффшорного центра команда, по сути, увольняется, кроме ребят, которых удается распихать по другим вакансиям компании, в отличие от обычных аутсорсинговых компаний, где люди садятся на бенч и ждут нового проекта, который зайдет в компанию.
ReplyDeleteСподвигло написать общение с разными разработчиками. Не ожидал, но довольно много ребят путаются в этих терминах или просто не до конца верно их понимают.
Всё правильно написано, но всё равно украинские компании можно условно поделить на аутсорсинг+аутстафинг и продуктовые (с уточнением "свои продукты") с нюансами. В аутсорсинговых компаниях большой спектр вариантов: от тупо, как говорят, "бодишопа" до так построенной работы с клиентом (как правило, большим и постоянным), что для обычного программиста не видно разницы, то ли его компания продуктовая, то ли аутсорсинговая. А, например, Геймлофт Украина - это типа "продуктовая" компания, а по сути - аутсорсеры для центрального офиса в Париже.
ReplyDeleteМало кто знал. что трудовые ресурсы оказывается тоже можно брать в аренду серьезно экономля на текущих растратах и на содержании сотруднуков, и всего то, такие технологии как аутсорсинг и аутстаффинг весьма расширили возможности работодателей, хотя немало и негативного высказывается именно за аутсорсинг и аутстаффинг
ReplyDelete