вторник, 3 сентября 2013 г.

Разработка ПО: факты против мифов

Вот наиболее распространенные мифы и факты, которые их опровергают.

Миф #1. Разработку ПО можно ускорить
Девять беременных женщин не родят ребенка за месяц. Добавление людей в отстающий проект только увеличит отставание. (Брукс)

Существует оптимальное, с точки зрения затрат, время выполнения графика для первой поставки. ВРЕМЯ [мес.] = 2,5 (ТРУДОЕМКОСТЬ [чел.* мес.])^1/3. Кривая стоимости резко растет, если запланированный график короче оптимального. Практически ни один проект невозможно завершить быстрее, чем за 3/4 расчетного оптимального графика вне зависимости от количества занятых в нем людей. (Барри Боэм

Наиболее эффективно программисты работают без жестких сроков. Сверхурочные и авралы снижают общую производительность. (Демарко)

Миф #2. Проблемы разработки ПО можно решить при помощи инструментов и процессов
Применение новых инструментов снижают производительность, но если повезет, может ее повысить на 2-20% (Гласс)

Существуют десятки методологий, но ни одна не гарантирует результат. Коуберн не обнаружил корреляции между успехом/провалом проектов и методологиями, которые применялись в проектах, будь то процессы, сертифицированные по CMMI Level 5 или процессы, построенные по принципу «как получится». Его вывод. Успешность программного проекта на 100% определяется людьми.

Миф #3. Разрабатывать ПО просто
Много лет только 1/3 проектов укладывается в треугольник: качество-стоимость-срок (Standish Group). Отраслевой прирост производительности составляет 3-5% в год (Демарко). Производительность программистов с похожим стажем и опытом могут отличаться в 10 раз (Брукс) или даже в 28 раз (Гласс).

Миф #4. Железный треугольник проекта
Разработка продукта длилась 5 лет вместо одного года. Бюджет проекта был превышен более чем в 5 раз. Это — провал? Нет — это был Microsoft Word!

Ограниченные усилия могут принести колоссальный эффект. Большинство выдающихся программных продуктов создано студентами «в гараже».

Миф #5. Работу программистов нельзя измерить
Нельзя измерить работу отдельного программиста. Что будем мерить, то и получим. Но надо измерять работу проектной команды. Обязательно.
  • Процент протестированных вариантов использования.
  • Средняя производительность, SLOC в день на каждого участника проектной команды.
  • Дефектность продукта, bugs/KSLOC.
  • Качество архитектуры. Предлагаю читателям самим указать единицу измерения, в качестве упражнения.


Миф #6. Программисты анти-бюрократичны
Программисты – анти-идиотичны. Программисты сторонятся тех, кто усложняет их работу. Программисты самоорганизуются вокруг тех, кто облегчает их работу.

Миф #7. Программисты работают ради денег
Нет. Не ради денег. Но за деньги. Почувствуйте разницу.

Программист устроен просто. Он состоит из четырех компонентов: тело, сердце, разум и душа. Телу необходимы деньги и безопасность. Сердцу — любовь и признание. Разуму – развитие и самосовершенствование. Душе – самореализация.

Дайте все это вашим программистам, и вы получите максимальную эффективность. Что-то не найдете — уйдут к вашим конкурентам.

Источник: http://habrahabr.ru/post/192396/

Комментариев нет:

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