economy of project development

49
Экономика разработки проекта Олег Бунин

Upload: ontico

Post on 20-Aug-2015

734 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Economy of project development

Экономика разработки проектаОлег Бунин

Page 2: Economy of project development

Общий алгоритм расчета стоимости разработки

Стоимость разработки

функционального описания

МенеджерМенеджер

Системный аналитикСистемный аналитик

Выбор команды

Выбор технологий

ФрилансерыФрилансеры

Внешняя командаВнешняя команда

Внутренняя командаВнутренняя команда

Сроки разработки

Время на формирование

внутренней команды

Стоимость разработки

Стоимость железа

Стоимость лицензий

Page 3: Economy of project development

Фрилансеры• Дешево;

• Совершенно не сердито;

• Сложности в коммуникациях;

• Безответственность;

• Непредсказуемость;

• Необходимость иметь в штате сильного технического менеджера для координации удаленных работ.

Page 4: Economy of project development

Внутренняя команда• Долго и сложно собирать;

• Оптимальные затраты;

• Без сильного технического директора – не стоит и пытаться!

Page 5: Economy of project development

Внутренние команды: кому придется платить?

• Технический директор;• Системный архитектор;• Ведущие программисты;• Программисты;• Верстальщики;• Дизайнеры;• Системные администраторы;• Тестировщики.

Page 6: Economy of project development

Внешняя команда• Самый дорогой вариант;

• В случае профессиональной команды гарантированный результат.

Page 7: Economy of project development

πИли как выбрать внешнюю

команду?

Page 8: Economy of project development

Насколько можно доверять оценкам программистов?

Вопрос Правильный ответ

Сколько времени заложено на отладку и тестирование?

Сравнимо с временем, заложенным на разработку проекта

Когда Вы покажете мне первую версию сайта?

Примерно в середине проекта

Сколько специалистов будет работать над моим проектом?

Прикиньте из таблицы “Длительность и сложность различных проектов”

Будут ли специалисты совмещать работу над моим проектом еще с чем-то?

Нет

Сколько времени заложено на внедрение и отладку верстки?

Не менее 2-3 недель для любого типа проекта

Page 9: Economy of project development

Выбор команды• Фрилансеры;• Внешняя профессиональная команда;• Внутренняя команда.

Стоимость в случае успеха

Вероятность успеха

Основная проблема

Фрилансеры Низкая Низкая Сложность в осуществлении контроля, безответственность фрилансеров

Внешняя команда

Высокая Высокая Высокая стоимость (обычно в два три раза больше по сравнению с внутренней командой)

Внутренняя команда

Средняя Высокая Сложность в поиске и подбора команды

Page 10: Economy of project development

Оптимальный тип команды для разных видов проекта

Рекомендуемая команда

Корпоративный сайт Внешняя команда, фрилансеры

СМИ Внешняя команда

СМИ с элементами UGC Внешняя команда

Интернет-магазин Внешняя команда

Фотохостинг Внешняя команда, внутренняя команда

Блогосфера Внешняя команда, внутренняя команда

Видеохостинг Внешняя команда, внутренняя команда

Социальная сеть Внешняя команда, внутренняя команда

Сайт знакомств Внешняя команда, внутренняя команда

Онлайн игра Внутренняя команда

Поисковая система Внутренняя команда

Page 11: Economy of project development

Выбор технологий

Как от него зависит стоимость разработки?

Page 12: Economy of project development

Выбор технологий

Page 13: Economy of project development

На что будет влиять выбор платформы для сайта?

• Стоимость поддержки и разработки;

• Сроки разработки;

• Стоимость требуемых ресурсов и программного обеспечения;

• Простота развития и скорость внесения изменений;

Page 14: Economy of project development

Выбор платформы• Что такое CMS?• Что такое фреймворк?• Что такое “написать с нуля”?

Page 15: Economy of project development

CMS• Высокая скорость

разработки;• Низкая стоимость

разработки и поддержки;

• Большое количество готовых модулей.

• Негибкость функциональных возможностей;

• Проблемы при росте нагрузок.

Page 16: Economy of project development

Фреймворк• Набор модулей

низкого уровня;• Большая гибкость;• Высокие требования

к разработчикам;• Меньшая, чем у

CMS скорость разработки;

• Большая, чем у CMS стоимость.

Page 17: Economy of project development

Написать с нуля Написать “с

нуля” означает “написать фреймворк”. А затем перейти к предыдущему слайду.

Page 18: Economy of project development

Сравним для разных платформ:• Стоимость специалистов, фонд оплаты

труда;• Стоимость поддержки готового решения;• Стоимость лицензий, open source;• Взаимосвязь с аппаратными решениями

(стоимость необходимого железа).

Page 19: Economy of project development

Факторы, влияющие на выбор платформы

• Стоимость поддержки и разработки;• Стоимость требуемых ресурсов и программного

обеспечения;• Риски, связанных с неизвестной платформой;• Стоимость обучения специалистов новой

платформы;• Требуемые сроки разработки.

Разрабатывайте на той платформе, которую лучше всего знают Ваши технические специалисты!

Page 20: Economy of project development

OpenSource

Apache73%

Nginx19%

IIS8%

По данным lexa.ru

Page 21: Economy of project development

LAMP• Linux (*nix);

• Apache;

• MySQL (PostgreSQL);

• PHP (Perl, Python, Ruby).

• Memcached;

• Nginx.

Page 22: Economy of project development

Языки программирования

Perl16%

PHP65%

Ruby1%

Python5%

Java13%

По данным сайтов вакансий

Page 23: Economy of project development

Язык программирования: PHP

• Высокая скорость программирования;• Большое количество специалистов – простота

поддержки;• Сложно найти высококвалифицированного

специалиста;• Низкая стоимость специалистов;• Средняя заработная плата по Москве около

55000 рублей.

Page 24: Economy of project development

PHP-программист

Декабрь, 2008

Page 25: Economy of project development

Язык программирования: Ruby

• Высокая скорость разработки прототипа;• Малое количество специалистов;• Современный “модный” язык программирования;• Удобные фреймворки, позволяющие создавать

прототипы за дни;• Мало отлаженных механизмов работы с высокими

нагрузками;• Средняя заработная плата по Москве около 60000;

Page 26: Economy of project development

Язык программирования: Perl

• Самый “опытный” язык программирования, огромное количество библиотек;

• Средняя скорость разработки;• Небольшое количество специалистов;• Сложно найти профессионалов высокого

уровня;• Высокая стоимость программистов.

Page 27: Economy of project development

Язык программирования: C/C++• Самые низкие

требования к ресурсам;

• Низкая скорость разработки;

• Высокая сложность разработки;

• Малое количество сильных специалистов;

• Высокая стоимость специалистов.

Page 28: Economy of project development

Unix-системы Предоставляют больший контроль для

разработчиков и системных администраторов. Взамен требуют серьезных знаний и опыта. Например, часто операционные Unix-системы поставляются в исходных кодах.

Многие Unix-системы распространяются бесплатно.

Page 29: Economy of project development

Системный администратор Unix

Page 30: Economy of project development

Windows-системы Общепринятое мнение заключается в том, что

операционные системы Windows хуже приспособлены для обслуживания высоконагруженных web-серверов. Но они же являются наилучшим решением, если задача требует интеграции с офисным программным обеспечением, Share Point и другими Microsoft-технологиями.

Windows-системы являются проприетарной разработкой компании Microsoft (являются платными).

Page 31: Economy of project development

Системный администратор Windows

Page 32: Economy of project development

Windows-программист

Декабрь, 2008

Page 33: Economy of project development

Благотворное влияние кризиса

Page 34: Economy of project development

Обычный сайтUnix + PHP Unix + Perl Unix + Ruby Unix + Java

Стоимость разработки (ФОТ) Низкая Средняя Низкая Средняя

Скорость разработкиВысокая Средняя Высокая Высокая

Стоимость поддержки (ФОТ) Низкая Высокая Средняя Средняя

Легкость и скорость обновления Высокая Средняя Высокая Высокая

Стоимость программного обеспечения

0 0 0 0

Стоимость необходимого железа Низкая Низкая Низкая Высокая

Page 35: Economy of project development

Так что же выбрать?

Выбирайте ту платформу, на которой работают Ваши специалисты или те, кому Вы доверяете!

Если таковых нет – руководствуйтесь последствиями.

Page 36: Economy of project development

Стоимость разработки• Проектирование, исследование;• Оплата труда разработчиков;• Аппаратное обеспечение.

ПроектированиеОплата труда разработчиковАппаратное обеспечение

Page 37: Economy of project development

Длительность и сложность различных типов проектов*

Длительность Техническая сложность

Корпоративный сайт 1-2 человеко-месяца Низкая

СМИ 2-4 человеко-месяца Низкая

СМИ с элементами UGC 3-5 человеко-месяцев Средняя

Интернет-магазин 2-12 человеко-месяцев Средняя

Фотохостинг 6-16 человеко-месяцев Средняя

Блогосфера 6-20 человеко-месяцев Высокая

Видеохостинг 6-20 человеко-месяцев Высокая

Социальная сеть 8-20 человеко-месяцев Высокая

Сайт знакомств 8-20 человеко-месяцев Высокая

Онлайн игра 1-3 человеко-лет Высокая

Поисковая система 3-6 человеко-лет Высокая

* Очень грубо и очень ориентировочно

Page 38: Economy of project development

За что придется платить?

• Дизайн, юзабилити, проектирование интерфейсов;

• Разработка архитектуры;• Программирование, кодирование;• Верстка, внедрение верстки;• Тестирование.

Page 39: Economy of project development

Железо, хостинг!

Page 40: Economy of project development

Выбор серверов: необычные ситуации

• Очень крупный и высоконагруженный проект;

• Большие хранилища данных;• Большие немасштабируемые вычисления;• Повышенные требования к безопасности

или надежности.

Page 41: Economy of project development

Хостинг

Вид хостинга Ориентировочная стоимость

Виртуальный хостинг 20-50 долларов в месяц

Арендованный серверный парк (dedicated)

150-500 долларов за сервер в месяц, в зависимости от конфигурации

Собственный серверный парк (colocation)

Покупка сервера (от 2000-3000 долларов разово) и аренда порта (50-100 долларов в месяц).

Собственный дата-центр Хм…

Page 42: Economy of project development

Оценка потребности в хостингеРазмер серверного парка

Корпоративный сайт Виртуальный хостинг

СМИ Виртуальный хостинг

СМИ с элементами UGC Виртуальный хостинг, выделенный сервер

Интернет-магазин Виртуальный хостинг, выделенный сервер

Фотохостинг Выделенные севера

Блогосфера Выделенные севера

Видеохостинг Выделенные севера

Социальная сеть Выделенные севера

Сайт знакомств Выделенные сервера

Онлайн игра Выделенные сервера

Поисковая система Выделенные сервера, собственные дата-центры

Page 43: Economy of project development

Новые виды хостинга• Хостинг в Европе: дешевле, проще, зато

придется платить за трафик;• Хостинг в Amazon EC2: дешевле, проще,

престижнее, зато проблемы с дисковой инфраструктурой и пинги в 200-300 миллисекунд из России.

Page 44: Economy of project development

Поддержка и развитие

Page 45: Economy of project development

Поддержка и развитие• Стоимость команды, профиль

специалистов;• Стоимость внесения изменений и ее

взаимосвязь с выбранными технологиями;• Стоимость хостинга, стоимость трафика.

Page 46: Economy of project development

Обычный сайт: стоимость поддержкиCMS Unix + PHP Unix + Perl Unix +

RubyWindows + .Net

Стоимость разработки (ФОТ)

Низкая Низкая Средняя Средняя Высокая

Стоимость поддержки

Низкая Низкая Высокая Средняя Средняя

Легкость и скорость обновления

Высокая Средняя Средняя Высокая Средняя

Стоимость программного обеспечения

Низкая 0 0 0 Высокая

Стоимость необходимого железа

Средняя Низкая Низкая Средняя Высокая

Page 47: Economy of project development

Попробуем составить бюджеты

Для социальной сети, блогосферы, СМИ и корпоративного сайта

Page 48: Economy of project development

Общий алгоритм расчета стоимости разработки

Стоимость разработки

функционального описания

МенеджерМенеджер

Системный аналитикСистемный аналитик

Выбор команды

Выбор технологий

ФрилансерыФрилансеры

Внешняя командаВнешняя команда

Внутренняя командаВнутренняя команда

Сроки разработки

Время на формирование

внутренней команды

Стоимость разработки

Стоимость железа

Стоимость лицензий

Page 49: Economy of project development

[email protected]: oleg_bunin