СТАТЬЯ 06.08.01

Система качества (управление качеством производства ПО)

Введение. Классификация организационных структур и технология творческой работы

Одна из шуточных иерархий развития производства (бизнеса) классифицирует организационную структуру по возрастанию "организованности" следующим образом:

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

Мы говорим "система качества", а не "система управления качеством" или "система контроля качества". Это важный момент. Мы следует терминологии стандарта ISO-9000, который ввел в широкое обращение термин "система качества" и дал развернутое разъяснение, каким требованиям должна удовлетворять организационная структура предприятия, претендующего на этот уровень своего развития. Традиционно о системах качества говорят в применении к предприятиям, производящим "вещи". Предприятия же, оказывающие услуги или продающие результаты интеллектуального труда, формально тоже могут быть проанализированы в терминах стандарта ISO-9000. Термин система качества мы понимаем в следующем смысле: Система качества это совокупность организационных структур, ответственности, процедур и ресурсов, направленных на административное управление качеством.

Для того чтобы можно было говорить о построении системы качества на предприятии, разрабатывающем программное обеспечение, необходимо, как минимум, пройти этап "конвейерной" организации труда.

Разработка программ - это инженерная деятельность, поэтому применять слово конвейер можно лишь с оговорками, точно определив, что имеется в виду.

Фирма ЕМЕ создавалась в 1991 году как предприятие-разработчик заказного программного обеспечения и с тех пор продолжает работать в этой отрасли, постоянно наращивая интеллектуальный и рыночный потенциал. С самого начала работы руководство фирмы поставило перед собой задачу создать технологию разработки программ. Тогда эта задача представлялась вполне заурядной организационной проблемой, решение которой известно из литературы, описывающей работу зарубежных аналогичных фирм, а также из опыта работы советских НИИ. Сегодня, оглядываясь на пройденный путь, хорошо видно, что скопировать чужой организационный опыт практически невозможно. Создание технологии, которую сегодня мы называем "конвейер", потребовало шесть лет целенаправленных усилий. Фирма в своем развитии прошла все этапы организационной иерархии, и, по-видимому, пропустить какие-нибудь этапы едва ли было возможно. Финансовое развитие разных фирм может происходить по разному: одни могут делать "финансовый рывок" и концентрировать большие капиталы в сжатые сроки, другие накапливают "рубль к рублю" в течение десятилетий, третьи прекращают свое существование, не выдержав конкурентной борьбы. Что же касается их организационного развития, все проходят примерно один и тот же путь, также как и люди, вне зависимости от их происхождения и социального становления, развиваются от детства к юношеству и дальше - к зрелости и старости.

В данной статье не раскрываются подробно отличительные признаки различных этапов организационного развития предприятий. Мы лишь попытаемся рассказать о тех усилиях, которые фирма ЕМЕ предпринимает для достижения почти недостижимого идеала "Система Качества". Профессионалы консалтинга и реинжениринга утверждают, что число фирм во всем мире, достигших этого организационного уровня - едва ли насчитывает несколько сотен! Было бы нескромно претендовать на членство в ряду корифеев качества, таких как Sony или Тоета.

Часть 1. Конвейер - предпосылка для создания системы качества

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

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

Еще более занимательными сегодня представляются попытки превратить в технологию телефонию 20-30-ых годов нынешнего (еще 20-ого) столетия. "Технология" подбора девушек-телефонисток по психологическим и эргономическим тестам (с применением идей великого Фрейда!), "технология" движений рук при втыкании штекера в гнездо, толстые тома инструкций, которые "регламентировали" ответы на шутки телефонных хулиганов и прочие чудеса инженерного гения. Технология не получилась до тех пор, пока не был изобретен электромеханический шаговый искатель.

Попытки фирмы ЕМЕ превратить в технологию "традиционную" технику разработки программ в группах программистов (которую мы "с высоты" нынешнего уровня развития называем кустарной) никогда не прекращались и до 1998 года были сколь упорными, столь и безуспешными. "Ты, Иван Иваныч, будешь разрабатывать только отчеты, а ты, Петр Петрович, будешь заниматься только бухгалтерией". Попытки такого рода можно сравнить с бессмертным Крыловским: "Ты, Мишенька, садись против альта, а я, пожалуй, сяду против вторы…".

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

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

Также как и в классических случаях из истории технологии, переход к конвейеру на фирме ЕМЕ связан с серьезным техническим нововведением (можно сказать изобретением). В 1998 году был разработан новый интерфейс системы управления базами данных. Он ориентирован на Windows-95/98/NT и называется "Трехслойный пользовательский интерфейс". Детальное описание возможностей этой конструкции не входит в задачу данной статьи, лишь одна существенная деталь будет нас интересовать. Конструкция интерфейса предлагает обширные возможности для визуального конструирования диалогов и отчетов. Эта вещь в современных базах данных вполне привычна. Особенностью же является следующее: к каждому органу диалога (полю ввода или кнопке), а также к каждой колонке или ячейке или запросу отчета, можно привязать внешнюю программу на С++. Для этого достаточно задать имя библиотеки DLL и точку входа в этой библиотеке.

Эта особенность сама по себе разрешает фундаментальное противоречие: желание объединить визуальное конструирование с применением компилируемого кода. Высокое качество программного изделия не может быть достигнуто с применением интерпретируемого (то есть не компилируемого) программного кода. С другой стороны, требования открытости, гибкости и быстроты программирования легче всего достигнуть, применяя визуальные средства конструирования систем. (Автор отдает себе отчет в спорности данного тезиса, поэтому можно рассматривать его лишь как мнение.)

Совместив, таким образом, в единой конструкции визуальное и низкоуровневое программирование, мы создали серьезную предпосылку для создания программистского конвейера. Стало возможным жестко организационно отделить конструирование систем (мы называем этот процесс "сборка системы") от разработки алгоритмов на языке программирования. "Конструкторы систем" (постановщики задач) и "прикладные программисты" (те, кто собирает и внедряет готовые проекты) вообще могут не уметь программировать в общепринятом смысле этого слова.

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

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

Метапроект возник по вполне объективным причинам. Когда число проектов фирмы ЕМЕ перевалило за 50, в них накопилось большое количество интересных механизмов, коммерческих и технических решений, учетных и управленческих подсистем. Демонстрируя потенциальным клиентам различные проекты, в которых эти "изюминки" были реализованы, мы обещали реализовать эти механизмы в новых проектах. На практике же, перенос программного кода из одного проекта в другой был практически невозможен. Логические противоречия в структурах данных, расхождения в именах, в интерфейсах, приводили к тому, что перенос узлов из одного проекта в другой по стоимости был соизмерим с разработкой тех же механизмов заново.

Сегодня организационно метапроект представляет собой отдел, который называется "Группа метапроекта". Главная задача отдела - выполнять разработку новых функций (по заявкам группы прикладных программистов) так, чтобы они органично вписывались в обобщенную структуру имен, так чтобы названия, система параметров и количество функций были бы "естественны" для прикладных программистов. Так например, максимум усилий прилагается для того, чтобы число внешних имен функций (точек входа) было как можно меньше, а сложность выполняемых действий каждой функции была бы как можно выше. Это позволяет прикладному программисту подключать одну и ту же "умную" функцию в большом диапазоне приложений. Уменьшается число ошибок на этапе сборки систем, уменьшается объем знаний, которым должен обладать прикладной программист.

Часть 2. Элементы системы качества

Однако мы отклонились от основной темы - Системы качества. На рисунке показан полный производственный цикл разработки заказного программного обеспечения на фирме ЕМЕ. На каждом этапе применяются свои методы обеспечения качественной работы: качество будущего программного изделия и качество обслуживания клиентов. По большому счету здесь мы не изобрели ничего нового: формализация отношений с клиентом (подробное техническое задание и письменные заявки на доработки), кружки качества, тестирование узлов на предмет несоответствия техническому заданию и наличие ошибок, документирование технологии и написание подробных технологических инструкций. Главное, что должно быть присуще любой системе качества - это неформальность подхода. Усилия руководства должны быть направлены на то, чтобы постоянно искоренять причины будущих ошибок, а не бороться с уже имеющимися. Анализ ошибок в программах и сбоев в обслуживании должен постоянно порождать новые организационные и методические решения, которые блокировали бы аналогичные проявления в будущем. Был такой анекдот в советские времена: "Есть два вида гарантии - японская и советская, первая гарантирует, что "не сломается", а вторая - что "починим". Система качества должна постепенно подводить предприятие к "японской гарантии".

2.1 Качество маркетинга

Качество маркетинга определяется на первый взгляд очень легко - по наличию или отсутствию заказов. Однако не следует забывать, что реноме фирмы, ее точная позиция на рынке играет более важную роль, чем массированная реклама. Любая финансовая пирамида, опирающаяся на положительную обратную связь "реклама <--> сбыт" без реального качества изделия, обязательно рухнет. Немало таких проектов реализуется в настоящее время и в области информационных технологий.

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

2.2 Качество конструирования систем

Конструированием систем на фирме ЕМЕ занимается отдел генерального конструктора. Конструирование систем в нашем понимании включает в себя предпроектное обследование, постановку задачи (в некотором смысле "миниконсалтинг"), предварительное и подробное техническое задание.

Работа конвейера начинается с презентации потенциальному клиенту различных проектов, которые разрабатывала фирма ЕМЕ. Это - нулевой этап конвейера.

Следующий этап - подготовка предварительного технического задания, коммерческого предложения и проекта договора. Данный этап выполняют программисты-конструкторы из отдела генерального конструктора. Это специалисты высокой квалификации, хорошо владеющие предметной областью, способные оценить в целом состояние дел на предприятии заказчика и выработать стратегию разработки и внедрения будущей системы. Для подготовки предварительного технического задания, программист-конструктор выезжает на предприятие заказчика и собирает данные для постановки задачи. Предварительное техническое задание - это небольшой по объему документ (обычно 20-30 страниц), который закладывает фундамент будущего проекта. В нем дается общее описание структуры проекта, перечень выполняемых функций, перечень основных бизнес-процессов. На основании предварительного технического задания готовится проект договора с точными сроками исполнения и стоимостью всех работ.

Следующий этап конвейера, который наступает после согласования договора и предварительного технического задания - подробное техническое задание. Его готовят также программисты-конструкторы. Подробное техническое задание представляет собой точное и формальное описание проекта. Оно содержит все диалоги и печатные формы программных модулей, подробное описание алгоритмов обработки данных и реакций на запросы операторов. Объем подробного технического задания составляет 300-500 листов. Работа по его подготовке - настоящее технологическое произведение искусств. Два конструктора в течение 3-5 недель успевают выполнить детальное обследование предприятия заказчика и подготовить столь объемный документ! Эта работа может быть выполнена в столь сжатые сроки лишь благодаря применению механизированных методов формирования документации: специальная база данных заготовок описания модулей и формальный синтез текста по заранее заготовленной программе вопросов.

Наиболее крупные проекты выполняются фирмой ЕМЕ совместно с консалтинговыми фирмами, оказывающими услуги по реинженирингу предприятий, включая полную автоматизацию. Ведущей фирмой в этой отрасли мы считаем фирму Риккон.

Элементы системы качества, реализованные на этапе конструирования:

Кружки качества собираются один раз в неделю. Кружок качества представляет собой цеховое совещание, на котором специалисты могут совместно обсудить выявленные ошибки, проанализировать сложные проблемы, передать друг другу опыт выполненных разработок. Дух кружка качества, характер обсуждения соответствуют требованиям предъявляемым к совещаниям "мозговой штурм". Именно поэтому в рамках кружков качества проводятся мозговые штурмы наиболее сложных новых конструкторских задач.

Продолжение статьи

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 06.08.01