Архив за Декабрь, 2008

Место ОТК в разработке ПО

Понедельник, Декабрь 22nd, 2008

Интрига

Давно размышляю о подходящем наборе ролей и о месте Отдела Технического Контроля (ОТК) в разработке программного обеспечения.

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

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

Дисклаймер. Приводимых ниже моделей недостаточно для эффективного управления. Т.е. в некоторых случаях считать нужно так, в других по другому. Других случаев больше. Если вы не знаете, как отличить один случай от другого - ни в коем случае не используйте эти модели для воплощения в жизнь. Иначе будет как с применением рефакторинга, только хуже.
(more…)

Сколько мы вам должны?

Вторник, Декабрь 2nd, 2008

Это заметка о расчете стоимости софтверного проекта, в зависимости от затрат на разработку.

Пусть на разработку был потрачен один месяц специалиста с окладом 100 у.е (1у.е. может быть равен и $20 и 10 000 рублей – считайте как вам удобней). Во сколько разработка обошлась фирме?

Почему-то считается, что внутренняя разработка стоит только эту зарплату. Позвольте, господа, а ЕСН? А связанный капитал в виде оборудованного рабочего места? А труд обслуживающего персонала (уборщицы, бухгалтера, директора)? А аренда офиса? А отпуск и больничный? В свое время, беседуя с Александром Смирновым на эту тему, мы пришли к выводу, что для расчета расходов фирмы нужно ввести мультипликатор 2.5. Таким образом, если зарплата внутреннего разработчика 100 у.е., а сторонняя фирма берется делать за 200, то при прочих равных внешний исполнитель выгоднее. Самое интересное, что внешний подрядчик может оказаться выгодней и при запросе 270 у.е., так как в случае срыва проекта внешний подрядчик ничего не получит, а полный расход в 250 у.е внутри, фирма все равно понесет.

При отсутствии затрат на продажу мультипликатор внутренней разработки равен:
•    2.5 для безрисковой разработки
•    3 для малорискованной разработки

Как это применять:

Расчет 1. Пусть вебстудия планирует переезд в другой офис. Есть два варианта. Первый - нанять грузчиков. Второй – потратить один день разработчиков. Пусть у нас работает 10 человек, суммарный оклад в месяц - $20 000, или $1 000 в день. Переезд – операция безрисковая, берем мультипликатор 2.5. Если инженерный состав фирмы полностью загружен работой, и грузчики просят менее $2 500, то они выгоднее.

Расчет 2. У крупного дистрибьютера косметики возникла потребность сделать внутрениий сайт. Можно попросить своего Васю из отдела листовок (он что-то понимает в HTML и прочей дизайне), можно нанять стороннюю фирму. Что дешевле? Вася может сделать, может не сделать – для вычисления расходов фирмы берем мультипликатор 3. Затраты на стороннюю фирму пока не рассматриваем. Тогда если Вася предположительно будет безвылазно возиться с сайтом два месяца при зарплате в $1 500, то предполагаемые расходы фирмы: 1 500*2*3 = $9 000. Ну, а когда Вася на самом деле безвылазно провозится полгода – истинные расходы составят 1 500*6*2,5=22 500. Учитывая рискованность таких авантюр (Вася мог возомнить себя крутым дизайнером и уйти, не доделав), фирма вполне может заключать договор внешнего подряда при сумме менее 27 000 (возвращаемся к мультипликатору 3).

Теперь представим себе обратную ситуацию.

Расчет 3. Мы вебстудия, к нам приходит клиент с просьбой сделать «ему хорошо». Расплатиться обещает по факту приемки. Бюджет нормальный, просто: «не делайте лишнего и возьмите по отработанным часам». Работаем с заказчиком очень давно и всегда были довольны друг другом. Беремся, делаем. Суммарная зарплата разработчиков 10 тысяч грина. Какой мультипликатор взять? 2.5 прямых расходов умножаем на коэффициент рискованности (мы ведь можем и не доделать, а платить разработчикам придется), умножаем на коэффициент продажных затрат, и умножаем на коэффициент планируемой прибыли. В итоге у вас должен получиться мультипликатор от четырех до пяти. Иногда доходит и до 10, но это означает  повышенную рискованность и/или сверхзатраты на продажах и/или неуемную жадность владельца. В нормальном, сложившемся бизнесе партнеров 4-5 разумный мультипликатор. Может доходить и до 3.5. Чистую троечку не рекомендую, бизнес при троечке умирает.
Если же оплата идет не постфактум «по труду», а по принципу «сначала скажите, сколько стоит, а потом делайте», то мультипликатор возрастает.

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

Мультипликаторы внешней разработки:
•    4-5 для сложившихся долгосрочных отношений
•    От 10 для дикого рынка

Теперь я думаю понятно, почему при условиях:
•    Затраты разработчиков на сайт визитку - 2 дня
•    Оклад 60 000 руб/ месяц ( $120 в день), ($240 вся разработка)
Вебстудии берут за «визитку» $5000. Они вводят офигенный мультипликатор из-за чудовищного цикла продаж. Если бы клиент пришел в веб студию с человечной спецификацией и полной предоплатой, то мультипликатор можно было бы опустить до четверки. ($1000 за двухдневную работу).

Хинт. Предварительное ТЗ позволяет очень сильно уменьшить мультипликатор. Хороший SRS позволяет еще больше уменьшить мультипликатор.

А бывают мультипликаторы больше двадцатки? Бывают. При откатинге. Или в проектах с  фиксированной суммой и совершенно непонятной функциональностью. Там и больше сотни может быть. Ну, все знают, сколько было заплачено за школьный портал. И многие могут прикинуть, какие трудозатраты на разработку там были.

Как понизить мультипликатор?
1.
  Использовать вместо аутсорсинга аутстафинг. Риск неудачи заказчик берет на себя, что позволяет снизить мультипликатор до троечки. На руки программист получает 20 баксов в час, а фирме за него платят 60 (В итоге для заказчика расходы с учетом риска почти те же, но он об этом не знает).

2.    Изменение налоговой схемы на упрощенку.

3.    Наем работника с собственным рабочим местом (надомник). Работник берет расходы за офис, уборщицу, комп и т. д. на себя. Правда, следует учесть, что правильный надомник (с которым вообще можно связываться) берет за час надомной работы больше, чем за час в офисе.

Аутстафинг надомника по упрощенке… М-м-м… Можно попробовать сделать мультипликатор меньше двойки. Толку-то. С учетом рисков, недополученной прибыли и прочего, сумма останется примерно та же.

- А если совершенно надежный, трижды рекомендованный, за пять последних лет не подводивший?

- Ну так он и стоит соответственно.