Разрушаем миф о незаменимости программистов

Разрушаем миф о незаменимости программистов

12 марта 2011

Какой из продуктов можно передать на стороннее обслуживание или доработку? Ответ, на наш взгляд, имеет два аспекта: технический и стратегический.

Рассмотрим подробнее технический аспект. На первый взгляд кажется, что далеко не каждый проект можно передать на аутсорсинг. Некоторые продукты написаны на скорую руку, без документации. Другие сделаны непрофессионально и работают с трудом: исправление одной ошибки добавляет две новые. Очень часто в проекте есть незаменимые люди, без которых работа остановится. Или, по крайней мере, они так говорят, создавая миф о своей незаменимости, — ведь принадлежность к «клану избранных» дает больше возможностей совершать разного рода оплошности.

Что обуславливает возможность аутсорсинга?

01 Код На первом месте стоит качество кода: его архитектура, объектная модель, грамотное разделение на модули. Опытному программисту, чтобы во всем разобраться, достаточно лишь хорошего кода.
02 Комментирование кода Хороший код уже сам по себе прокомментирован правильными наименованиями объектов и методов. Но дополнительные комментарии не помешают.
03 Качество сборки Затем идет качество тестирования и сборки. Как правило, написанные на скорую руку приложения собираются и работают только на нескольких компьютерах или под определенной версией ОС. Хорошо покрытый тестами код без проблем соберется и заработает как положено.
04 Вопрос на документе Наличие документации для пользователя и для программиста позволит даже не посвященному в технологию специалисту очень быстро освоить предметную область.

Так чего же хотим мы, менеджеры и владельцы интеллектуальной собственности? Хотим контролировать продукт. И не хотим, чтобы внезапная болезнь или увольнение «того парня» вызвали полный паралич деятельности компании, разрыв партнерских связей, потерю аудитории, негативную реакцию рынка и попадание в заголовки новостей. Следовательно, ключевой продукт должен быть настолько качественным, чтобы в любой момент он мог быть передан другой команде разработчиков.

Поэтому для ключевых продуктов необходимо следующее.

01 Три архитектора Гарантировать возможность замены всех разработчиков.
02 Работа в команде Организовывать групповую разработку.
03 Код Регулярно проводить рефакторинг кода.
04 Проектирование Проводить регулярный аудит продукта, качества кода и документации, с привлечением независимых экспертов.
05 Нумерованный список Ответственно относиться к документации — именно она является залогом стабильности при обслуживании.

Так какой продукт можно передать на аутсорсинг? Эффективный собственник на стороннее обслуживание может передать любой программный продукт. И это ответ на технический аспект вопроса.

Стратегические предпосылки аутсорсинга

  • Не хватает ресурсов.
  • Не получается привлечь достаточно хороших программистов.
  • Нанять новых людей не позволяют корпоративные стандарты.
  • Штатных специалистов хватает только на то, чтобы обслуживать систему.
  • Есть потребность расширить команду специалистами из другого региона.
  • Необходимо устроить конкуренцию в коллективе.
  • Возникла потребность освежить продукт новыми идеями.
  • Требуется провести стороннее тестирование.
  • Нет желания организовывать работу большого офиса, вместо этого удобнее купить организованную рабочую силу.
Восклицательный знак в круге

Отдавая проект на аутсорсинг в EDISON, партнер решает стратегические задачи.