Главная / Статьи / Системы качества / Конвейерное производство заказного ПО и система качества / 2.3 Сборка систем, качество работы прикладных программистов

2.3 Сборка систем, качество работы прикладных программистов


Подробное техническое задание передается в группу прикладных программистов. Особенность работы конструкторов на фирме ЕМЕ заключается в том, что все рисунки диалогов и печатных форм выполняются в среде проектирования ЕМЕ-ДБ, и в готовом виде переносятся в текст технического задания. Благодаря этому, к моменту окончания конструирования у прикладных программистов имеются все заготовки программных модулей. Их работа по сборке системы заключается “лишь” в привязке диалогов и отчетов к базе данных и подключении функций из библиотек метапроекта.

Благодаря усилиям группы метапроекта объем повторно используемого программного кода в проектах фирмы ЕМЕ достигает 60-80 процентов и постепенно, с развитием метапроекта, увеличивается. Разработка новых функций метапроекта выполняется по заявкам прикладных программистов. Заявка заполняется прикладным программистом в соответствии с утвержденной формой всякий раз, когда он встречает в техническом задании такой алгоритм обработки данных, который он не может найти в базе данных метафункций.

Таким образом, происходит так называемое “вытягивание” элементов системы одним отделом из другого:

  • Клиент формулирует идею.
  • Идея “вытягивает” из конструктора ее формальное описание в подробном техническом задании, которое подписывает клиент.
  • Техническое задание “вытягивает” из прикладного программиста формальную заявку на новую функцию.
  • Заявка на развитие ядра ЕМЕ-ДБ “вытягивает” из ядерной группы, отвечающей за развитие ядра, новую версию СУБД.

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

Все узлы и проекты в целом обязательно проходят тестирование в отделе тестирования. Хорошо известно, что обычный программист в силу своей психологии не способен выполнить качественное тестирование своей собственной работы. Конвейерное разделение труда легко устраняет этот недостаток. Профессиональные тестировщики в считанные секунды выявляют типовые ошибки и путем тщательного анализа находят все дефекты алгоритмов обработки данных.

Типичное время, расходуемое на сборку и тестирование систем, составляет 2-3 месяца. Еще в процессе сборки (по прошествии 1.5-2 месяцев) начинается инсталляция отдельных модулей на предприятии заказчика. Это позволяет начать обучение и заполнение полупостоянной базы данных (справочников), так чтобы к моменту окончания сборки можно было немедленно приступить к опытной эксплуатации системы (еще 2-3 месяца). Ответственность за качество программного продукта, обучения и оперативности внесения исправлений и доработок при опытной эксплуатации лежит на группе прикладных программистов.

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

В работе прикладных программистов применяется несколько протоколов, регламентирующих работу с клиентами:

Протокол внесения изменений в техническое задание и готовые программы.

Название этапа Документ Кто подписывает?
Начало сборки системы Подробное техническое задание Руководитель проекта от заказчика и главный конструктор от ЕМЕ
Внедрение, обучение, опытная эксплуатация, сопровождение Заявка на доработку программ или внесение изменений Сотрудник и руководитель проекта от заказчика, руководитель проекта от ЕМЕ
Опытная эксплуатация, сопровождение (после получения заявки на новую подсистему) Частное техническое задание (в ответ на заявку, требующую значительных объемов работ) Руководитель проекта от ЕМЕ, руководитель проекта от заказчика

Протокол внедрения готового проекта и начало работы.

Название этапа Документ Кто подписывает?
Инсталляция модулей справочников, заполнение полупостоянной базы данных Извещение о начале работ, список и объем данных, которые должны быть введены в базу данных Руководитель проекта от ЕМЕ и руководитель проекта от заказчика, копия передается руководителю предприятия заказчика
Обучение сотрудников предприятия-заказчика Расписание занятий с точным указанием тем, дат и часов, список участников Готовит прикладной программист, подписывает руководитель проекта от заказчика (иногда руководитель предприятия)
Запуск системы в опытную эксплуатацию, сопровождение Извещение о завершении работ, список рабочих мест, фамилии операторов Руководитель проекта от ЕМЕ, руководитель проекта от заказчика

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

Название этапа Документ Кто подписывает?
Завершена сборка программного модуля системы Заполнение паспорта модуля, передача на тестирование в отдел тестирования Разрешение на инсталляцию (“ошибок нет”) подписывает тестировщик
Выезд к клиенту с готовым программным модулем или подсистемой Разрешение на выезд к клиенту Прикладной программист, тестировщик, руководитель проекта, начальник отдела прикладных программистов
Работа на площадке у клиента Справка о качестве выполненных работ Руководитель проекта от клиента или представитель клиента, принявший работу

Очевидно, что эти таблицы – лишь примерное описание порядка взаимодействия, который регламентируется подробными инструкциями.

Ниже приводится перечень элементов системы качества, реализованных на “прикладном” этапе конвейера:

  • Входной контроль качества конструкции по подробному техническому заданию
  • Узкая специализация прикладных программистов – они не разрабатывают программ в обычном смысле этого слова
  • Сокращение сроков разработки за счет применения готовых метафункций
  • Уменьшение числа ошибок в готовых системах за счет применения метафункций, прошедших обкатку в предыдущих проектах
  • Тестирование всех узлов и проектов в целом в отделе тестирования
  • Точные формальные протоколы взаимоотношений с клиентами и с другими отделами внутри ЕМЕ – значительное снижение влияния человеческого фактора
  • Полный отказ от модификации систем и программирования на площадке заказчика, исключение случаев инсталляции неоттестированных программ
  • Кружки качества: анализ ошибок в работе, разбор причин нарушений инструкций, изучение текста инструкций, мозговые штурмы организационных проблем, дополнение и развитие технологических инструкций и протоколов

В кружках качества прикладных программистов анализируются не только ошибки в работе. До сих пор мы обходили вопрос качества собственно программного продукта. Данный вопрос сложен. Несмотря на обилие литературы, посвященной ему, можно с уверенностью сказать, что формальная метрология качества творческой работы (каковой является и программирование) не может всерьез обсуждаться. “Хорошая программа” это: быстродействие, надежность, эргономика (почти не определяемое понятие!), сегодняшняя “мода” на интерфейс человек-машина, реализация всех современных методов визуализации данных (графики, диаграммы, интерактивные методы построения отчетов и запросов), функциональная полнота с точки зрения конкретного заказчика, гибкость по отношению к будущему развитию и масштабированию системы в целом. Можно привести тысячу параметров, которые принципиально не могут быть измерены, и для которых невозможно однозначно указать являются они “первичными” или второстепенными в данном конкретном проекте. Вместе с тем, отсутствие надежной метрологии не может служить оправданием для выпуска некачественных изделий. Именно кружки качества прикладных программистов позволяют в коллективном обсуждении увидеть дефекты и достижения. Обмен опытом и наставничество, стремление к мастерству каждого инженера, выработка духа нетерпимости к халатной работе и гордости за свой труд – вот на наш взгляд реальный механизм качества в любой творческой работе.

Смотрите также…