Записки о софтверном бизнесе

Без права на ошибку

May 21st, 2009 Posted in Uncategorized

space_shuttle

Статья в FastCompany рассказывает, как пишется софт для космических шаттлов. Качество кода находится на космической высоте.

Этот софт никогда не падает. Никогда не требует перезагрузки. В нем нет багов. Он идеален, насколько может идеален софт, написанный человеком. Смотрите сами: последние три версии программы - каждая длиной 420 000 строк имела всего лишь одну ошибку каждая. Последние 11 версий имели в общей сложности всего 17 ошибок. Коммерческие программы схожей сложности имели бы около 5000 ошибок.

Группа, разрабатывающая этот софт, была одной из первых, получивших сертификацию CMM уровня 5. Это было больше десяти лет назад. С тех пор они уменьшили количество ошибок еще на 90%.

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

Рассмотрим один из апгрейдов программы, который позволил шаттлу ипользовать GPS навигацию. Это изменение затронуло всего лишь 1.5% программы или 6,366 строк кода. Спецификация для этого изменения была описана на 2500 страницах. Полный объем спецификаций текущей версии насчитывает 30 томов и более 40 тысяч страниц.

Еще один интересный факт. Разработка софта, обладающего таким качеством, обходится NASA примерно в 160 раз дороже, чем типичная коммерческая разработка.

Вот тут можно посмотреть их стандарт кодирования на 440 страницах.

  1. 12 Responses to “Без права на ошибку”

  2. By Олег on May 22, 2009

    Если поделить колючесво строк на 10 лет и количество участников, то получится меньше 1 строки в день.
    С такими темпами я бы тоже не делал ошибок :)

  3. By Роман on May 22, 2009

    Сдается мне, что когда процесс описывает “все телодвижения от и до”, работать в таком проекте тоска.

  4. By rssh on May 22, 2009

    1. Откуда цифра 160 (в статье ее нет) ?
    2. По ссылке не стандарт кодирование, а описанние языка HAL/S

  5. By Alexey Kuznetsov on May 22, 2009

    Я бы согласился там работать только за $1000000 в год :)

  6. By Сергей Корнилов on May 22, 2009

    @Олег,

    так считать скорость написания неправильно, ясно что большая часть кода была написана в первые годы. Опять же не все сотрудники пишут код, есть менеджеры, архитекторы, кто-то пишет спецификации итд.

    Но в целом верно – это ответ на вопрос “какова будет скорость разработки если исключить все ошибки”.

  7. By Сергей Корнилов on May 22, 2009

    @Роман,

    сдается мне что в любой организации уровня CMM 3 и выше будет так тоскливо. Мой личный опыт в Эриксоне это подтверждает.

    А вот цитата из статьи:

    “That’s the culture: the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip — but it is the future of software.”

    Другими словами – конвейерная работа.

  8. By Сергей Корнилов on May 22, 2009

    @rssh,

    про 160 раз я прочитал вот здесь:
    http://www.reddit.com/r/programming/comments/8kpl9/a_look_at_the_amazing_way_code_for_the_space/

    Цифра приблизительная, по порядок правильный.

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

  9. By rssh on May 22, 2009

    О – обсуждение на reggedit рулит. Спасибо !

  10. By Alex Che on May 24, 2009

    В свое время было весьма интересно прочитать “Joint Strike Fighter Air Vehicle, C++ Coding Standards” – стандарт кодирования, принятый в Lockheed Martin Corporation при разработке многоцелевого ударного истребителя. Пример того, как можно обуздать зверя и безопасно и грамотно использовать его силу и мощь в своих целях :)

  11. By Andrey on Jun 8, 2009

    Да, все правильно. Все дело в цене. Если код стОит примерно в сто раз дороже обычного коммерческого кода – к нему и требования другие. И ресурсы, самый главный – время – другие, все сходится. Только не сказано еще одно: наверняка такая разработка идет по жестким и детальным требованиям, которые не меняются по сто раз. И релизы не “на вчера”, как это часто бывает в коммерческих продуктах.
    А насчет тоски – откуда она? Вылавливать баги в куче лихорадочно написанного кода – намного веселее?
    2Олег – пересчет строк на время не удачен. Думаю, при таком подходе там две трети всех людей – это тест-тим плюс архитекторы….

  1. 2 Trackback(s)

  2. May 22, 2009: www.it4business.ru » Без права на ошибку — портал для IT-менеджеров: Карьера, Персонал, Технологии
  3. Jun 28, 2009: Lifestyle business » Blog Archive » Как тестируют SQLite

Post a Comment