воскресенье, 27 марта 2011 г.

Проклятие аутсорсинга

Разработка и вывод программного продукта на рынок сильно отличается от программирования на заказ.

Технологии работы аутсорсинговой и продуктовой компаний очень различны.

Есть такое выражение - "проклятие аутсорсинга". Оно означает, что когда аутсорсинговая компания вроде бы с умными программистами берётся создавать свой собственный продукт, это часто заканчивается ни чем. Усилия и деньги тратятся впустую.

Такая ситуация, на первый взгляд, выглядит странно, потому что в аутсорсинговой компании работают вроде бы опытные люди, грамотные технари.

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

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

Успешная технология разработки продукта организует работу всех этих людей, как единой системы.

Каждый специалист занимается своим делом. Технология предоставляет чёткие критерии качества работы для каждого специалиста.

Попробую привести некоторые типовые ошибки, которые совершает команда, взявшись разрабатывать собственный продукт:


1) Разработка продукта для себя, а не для потребителя.

2) Отсутствие продуктового или игрового дизайна. Функции дизайнера продукта неявным образом передаются программистам или, что ещё хуже, заказчику (когда продукт целиком делается на заказ).

3) Замах грандиозус. Несоответствие требований к программе имеющейся технологической, технической и кадровой базе. Слабые производственные мощности.

Фантазирование в отрыве от реальных технических или финансовых ограничений.

4) Непонимание целевой аудитории, отсутствие представления о сегменте рынка и регионе, на котором будет распространяться продукт.

5) Подсистемное мышление.

Отсутствие комплексного представления о продукте. Замена такого представления фичезацией. Стремление опередить конкурентов при помощи как можно большего количества рюшечек и фич.

Неудержимый поток идей способен разрушить работу слаженной команды.

6) Смешение ролей: инвестора, директора компании, дизайнера и менеджера проекта. Менее критическое отношение к результатам своего труда.

Руководитель берёт на себя функцию дизайнера, но вместо дизайна сыплет идеи, оторванные от контекста, и затем, неявным образом, передаёт функции дизайна своим подчинённым: "Я тут всё основное уже придумал. Вам осталось только это запрограммировать".

7) Неопределённость платформы, под которую разрабатывается продукт.

Смена платформы в процессе разработки. Особенно страшно, если выбраны технологии, привязанные к платформе.

8) Подмена реальной цели - "выпуск продукта" - желанием поразбираться в новых технологиях, разработать "гибкую архитектуру" с кучей плагинов, написать крутой шейдер, использовать понравившийся паттерн и т.п.

9) При наборе персонала: подмена поверки квалификации и работоспособности программиста проверкой умения решить какую-нибудь "креативную" задачу, как правило, очень далёкую от реальных производственных проблем.

10) И т.д. Буду рад вашим дополнениям.

5 комментариев:

  1. Аутсорсинговая разработка ориентированна на процесс и локальный результат, продуктовая - на конечный продукт. Отсюда и разные цели - у первых делать как можно больше наиболее трудозатратных проектов, у вторых занять нишу и быть в ней лидером.
    Как подмечено выше "Технологии работы аутсорсинговой и продуктовой компаний очень различны". Непонимание этого факта и есть типовая ошибка :)

    ОтветитьУдалить
  2. Почти все пункты мало относятся к "аутсорсинговой" компании как к таковой. Часть из пунктов (2, 4, 8, 9) можно отнести ко всем программистам в принципе - это общие проблемы всех IT гиков.

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

    ОтветитьУдалить
  3. Видимо у автора просто накипело, пообщавшись с аутсорсинговой компанией. Даже если это и так - всё равно начинать разработку надо причём и аутсорсинговой компании и индивидуальным разработчикам и вообще кому попало. Да, да не надо смеяться, иногда может "выстрелить" неплохой проект, "плохого" программиста или дизайнера или пиарщика или директора. Но заниматься этим надо. Чем больше людей займётся тем выше процент выхода в свет "хороших" разработок, ну или "хороших" доработок, "по - началу "плохих" разработок.

    ОтветитьУдалить
  4. Согласен с коллегами.

    2 Анонимный: Начинать разработку, конечно же, надо, но нужно стараться делать это максимально грамотно.

    ОтветитьУдалить