ПриемСостояние внедренияОпыт Orbix Generation 3
Раунды планированияВнедрено частичноМы пришли к выводу о необходимости строго следовать итеративному процессу планирования. Однако крайне важно соотносить идеальные временные оценки и реальное время выполнения работ. Большинство ошибок в продукте исправляются примерно за две недели, поэтому мы перешли на двухнедельные периоды выпуска заплаток. Наша служба поддержки и отделы продаж действуют как доверенные представители наших заказчиков, осуществляя координацию работ, связанных с исправлением ошибок в расчете на двухнедельный срок. Разного рода прерывания и изменения приоритетов в середине цикла сохраняются по-прежнему, но это неизбежно.
Небольшие модернизацииСтрого выполняетсяРабота нашей службы поддержки строилась с учетом требования коротких циклов реализации, поэтому наши пользователи получают заплатки через две недели. Сроки выпуска сократились с нескольких месяцев до нескольких недель. При отсутствии автоматизированных еженощных модульных и регрессионных тестов мы бы не смогли этого добиться. Без возможности выполнять тестирование буквально по нажатию одной кнопки, инженеры не могли бы гарантировать, что внесенные изменения не породят новые ошибки в коде. Без оптимизации тестовых пакетов мы не смогли бы обеспечить своевременную обратную связь.
МетафораВнедрено с самого началаНаша метафора - это комментарии пользователя в том виде, как они представлены в системе контроля ошибок. Наш заказчик предлагает тест, позволяющий убедиться в том, что все замечания, указанные в данном комментарии, устранены.
Простота архитектурыВнедрено частичноМы особое значение придаем простой архитектуре, поскольку сам продукт сложный, и мы по-прежнему используем документы на проектирование от высокого до среднего уровня, чтобы помочь людям быстро разобраться во всей системе и отдельных ее компонентах. В нашей среде обслуживания есть четкие приоритеты, на которых необходимо сосредоточиться. Мы, как правило, не создаем проектных документов при исправлении ошибок, а концентрируемся на комментариях и передаче регрессионных и проверочных тестов.
ТестированиеВнедрено с самого началаПервоначальное тестирование - это естественная часть организации работ в группе Generation 3. Мы не начинаем работу над ошибкой до тех пор, пока не разработан тестовый случай. Мы также выполняем анализ кода, чтобы компенсировать отсутствие всеобъемлющих тестов.
Разбиение на составляющиеВнедрено с самого началаМы приняли это в качестве одного из основополагающих принципов проектов по улучшению уровня обслуживаемости и стабильности нашего кода. Как правило, необходимо особое внимание уделять вопросу о разбиении как части персональных методов работы каждого инженера. Иногда нам приходиться выполнять полный реинжиниринг программного обеспечения, но это происходит не часто.
Парное программированиеВнедряется постепенноХотя мы стараемся его использовать, далеко не всегда группа его практикует. Мы анализируем код, следя за выполнением стандартов на код, архитектуру исправлений и так далее.
Коллективное владениеВнедрено с самого началаМы работаем с людьми, которые постоянно меняют код. Некоторые из них являются специалистами в определенных областях, но обслуживанием кода у нас занимается все меньше людей, и мы не можем позволить себе не держать на работе сотрудников с узкой специализацией. По большей части мы используем парное программирование для решения сложных задач. У нас также имеется большой набор стандартов, которые мы реализуем не только за счет анализа кода, но и в рамках процесса проверки в системе управления исходными текстами.
Непрерывная интеграцияРеализовано с самого началаНам потребовалось полтора года на создание автоматизированной системы тестирования, которая была бы не только всеобъемлющей, но и быстрой и удобной в применении. Кроме того, мы отказались от станций, на которых выполнялась интеграция. Вместо этого в нашей системе управления исходными текстами мы используем файл, с которым в каждый момент времени может работать только один человек (его вход и выход регистрируется). Процесс компоновки четко определен, и ему следуют достаточно строго.
Сорокачасовая рабочая неделяНе внедреноМы не решились на это.
Присутствие заказчикаВнедрено с самого началаМы используем нашу группу поддержки пользователей и отделы продаж в качестве своих заказчиков. Они устанавливают приоритеты и проводят тесты, на основе которых принимаются заплатки.
Стандарты кодированияВнедрено с самого началаМы установили их еще до того, как стали использовать XP.

назад