define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS', true); Аутсорсинг. Часть первая (уникальная архитектура)

Аутсорсинг. Часть первая (уникальная архитектура)

Все события и персонажи вымышленные, а любые совпадения случайны ;).

В тот момент, когда проект становится по настоящему большим, а бюджет на з.п. программистам ещё больше, компания начинает задумываться об экономии бюджетов и реорганизации. У кого-то из менеджеров возникает мысль об аутсорсинге (при этом почему-то все забывают о «заветах» Фредерика Брукса, успокаивая себя тем, что якобы на support (MOL) закон Брукса не распространяется). Менеджеры некого звена начинают лоббировать аутсорсинг как панацею. И наконец-то компания зааутсорсила часть работ.

Чем отличается аутсорсинг от самостоятельной разработки (или как иногда говорят инсорсинга)? Для того чтобы увидеть отличия нужно взглянуть на одни и те же вещи с разных сторон. Рассмотрим на примере некого long term проекта.

Инсорсинг

Набравшись мужества, менеджер сказал разработчикам:

— Топ менеджмент сообщил, что у нас будут сокращения. Будем aутсорсить проект в Россию, Китай или Индию. Окончательного решения ещё нет. Но вообще так будет дешевле для компании. Мы сможем показать прибыль в следующем квартале для наших инвесторов.

— Нас нельзя сокращать! Только мы знаем архитектуру продукта.

— Но вы же столько времени потратили на документирование… Разве у вас нет документов по дизайну, разве вы не говорили, что используете методы автогенерации документации из комментариев кода?

— Да, всё так. Но без определённого опыта документацию сложно понять. Нужно провести тренинги, не все фичи задокументированы, не все документы актуальны…

— Придётся провести тренинги, — сказал не убедительно менеджер, и задумался на тему возможного языкового барьера. — Я уверен, что нам удастся убедить менеджмент оставить часть команды — самых сильных экспертов.

— Надеюсь, вы подумаете на тему информационной безопасности. Не хотелось бы, чтобы наш «кровный труд»  (код) ушёл к нашим конкурентам, — сказал один из опытных девелоперов.

— Мы уже подумали на эту тему. Дадим только частичный доступ к коду, а часть кода закроем. Также откроем не все внутренние ресурсы…

— Нам придётся организовать CM инфраструктуру для внутреннего и внешнего девелопмента, — сказал CM-инженер.

— Придётся. Я дам распоряжение письмом.

— Окей.

Заработал аутсорсинг на «полную катушку». Разработчики жалуются менеджменту:

— Они спамят нас письмами с глупыми вопросами. Мы не нанимались на них отвечать.

— Все когда-то начинали. Сейчас они «разгоняются». Конечно, мы им платим за самостоятельную работу, но с вашей небольшой помощью (в рамках разумного) они намного быстрее выйдут на нормальный уровень производительности…

Завязалась дискуссия…

Аутсорсинг

Менеджер обращается к разработчикам:

— Мы получили проект X. Нас ждёт ramp up. Наша цель: как можно быстрее разобраться в архитектуре и коде. Нам сообщили, что у них с документацией всё в порядке, и мы быстро разгонимся.

— Расскажите про проект. Чем мы будем заниматься?

— Мы будем заниматься…, — сказал менеджер помпезно. — Это очень перспективно с точки зрения опыта и развития компании. По началу вам придётся заниматься баг-фиксами ;)

— Уууу…,— в основном опытные разработчики про себя что-то «промычали».

— В будущем нам будут давать более серьёзные задания (фичи)… Всем спасибо. Пора начинать работать.

Разработчики констатируя факты менеджеру:

—  В интернете про их проект и используемые технологии вообще ничего нет. То, что прислал Akers, слишком мало и обрывками, ppt-ки без видео роликов не информативны, в коде почти нет комментариев и т. п. Есть ощущение, что архитектуры вообще нет, и всё держится на «магических» знаниях девелоперов, которые начинали разрабатывать проект. Слова богу, что есть стандарт кодирования.

— Я договорился, что мы получим доступ к их внутренним ресурсам. Там есть вся документация. И код мы сможем брать прямо с транка (а не rip-ами с ftp как раньше).

Через пару дней (а может и недель) девелопер сидя у себя в кубике:

— Чёрт, как меня «задолбало» вводить эти пароли, чтобы просто найти документ. Вы прошли десятый уровень доступа,— произнеся  последнею фразу как будто из какого-то фильма про шпионов, после третьего ввода одного и того же пароля даже с работающим VPN-ом. ;) — О! я нашёл линк на документ, где точно должен быть документ. Опять нет прав для доступа.

Менеджер (к девелоперам):

— Какие есть проблемы?

— VPN жутко тормозит, вчера вообще не работал. Как результат мы не смогли скачать последний код, чтобы воспроизвести багу… К некоторым докам у нас нет доступа.

— Сделайте тикет админам. Я поговорю с админами, чтобы ускорить решение этой проблемы. Кстати, говорил с их менеджерами. Вот контакты их экспертов. Вы можете им написать письмо с вопросом или попросить документацию, если у вас есть или будут вопросы по архитектуре/коду.

Девелопер отправил письмо день назад. Эксперт молчит. «Не знаю… Как оно должно работать и работало ли оно вообще когда-нибудь?» — подумал девелопер про некий код. Прошло ещё два дня. На конец-то девелопер поймал в IM-е эксперта, а тот пообещал ответить на следующий день.

Менеджер на общем собрании с девелоперами:

— Есть ли какие-нибудь проблемы?

— Да, есть. Их «эксперты» очень медленно отвечают и такое ощущение, что они сами не знают архитектуру.

— Но вы должны понимать, что нам за аутсорсили работу и рассчитывают, что мы сами во всем разберёмся. Поэтому мы не можем сильно грузить их экспертов. В конце концов, ответ через N дней лучше чем ничего. ;)

— Ага.

Девелопер после рабочего дня, идя домой думает:

— Почему у меня такое ощущение, что мы работаем медленно? Я на олимпиадах делал столько кода за четыре часа, сколько здесь я делаю за месяц. Почему здесь такая низкая производительность?… Вроде бы простая архитектура, но никто из наших её нормально понять не может… и почему-то нам не открывают весь код и все документы.

Продолжение следует…

Запись опубликована в рубрике Аутсорсинг с тэгами , , . Создать закладку наpermalink. Оставить комментарийили trackback:Trackback URL.

Оставить комментарий

Ваш e-mail никогда не будет опубликован или передан третьим лицам. Обязательные поля отмечены *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>