Качество технологических процессов - такая тонкая, почти прозрачная материя, что на первый взгляд и не видна вовсе. Однако именно от технологий, использованных на этапе создания товара, в первую очередь зависит его дальнейшая рыночная судьба (будь то колбаса, автомобиль или программный продукт).
При разработке крупных программных систем возникает множество проблем - прежде всего организационных и методологических, требующих для своего решения внедрения промышленных технологий управления коллективами разработчиков. К тому же при создании заказных и тиражируемых продуктов задачи возникают существенно разные. В “АйТи” занимаются обоими направлениями, причем достаточно давно, что позволяет ее сотрудникам уже подводить некоторые итоги и анализировать опыт компании.
Этим летом случился приватный разговор между представителями PC Week/RE и программных подразделений “АйТи” (www.it.ru) по поводу применения промышленных технологий и методологий разработки ПО отечественными софтверными производителями. (Если эта тема покажется интересной читателям, то она может вырасти впоследствии в серию публикаций.) В беседе принимали участие Евгений Кучик, руководитель проекта “Босс-Кадровик” компании “АйТи”, и Сергей Паронджанов, руководитель проекта “Биллинг-АйТи”, технический директор Департамента тиражируемых программных продуктов (в числе других специалистов он два года назад перешел в “АйТи” из компании “Аргуссофт”), со стороны PC Week/RE - Елена Монахова и Сергей Бобровский.
PC Week: Давайте рассмотрим на примере “Босс-Кадровика”, из чего конкретно складывается технология создания программных продуктов. Как изначально шел процесс разработки в “АйТи” и какие изменения он претерпел к сегодняшнему дню?
Евгений Кучик: В 1995 г. это были заказные разработки для крупных клиентов. Фирма “АйТи” активно внедряла системы управления персоналом, базирующиеся тогда еще на Btrieve. Затем стало ясно, что продолжать развивать бизнес в рамках заказных систем становится все сложнее, так как это ведет к разрастанию численности персонала и к перегрузке базовых специалистов. Тогда возникла идея создания типовой версии с полностью устоявшейся функциональной частью, и эта идея была реализована в 1996 г. В результате сразу снизилась нагрузка на ведущих разработчиков, впервые появилась возможность разделять процессы создания программного продукта и внедрения, которые раньше выполняли одни и те же люди.
Евгений Кучик
С переходом на более прогрессивные платформы, например MS SQL Server, мы сосредоточили усилия на тиражном программном продукте. При этом на первый план вышли не только потребительские свойства программного продукта, но и качество сопровождения. Мы пришли к пониманию, что инфраструктура, призванная создавать продукт, должна отвечать и за разработку, и за тестирование, документирование и техподдержку ПО. В результате выстраивается обязательная технологическая цепочка, при нормальном функционировании которой можно говорить о настоящем тиражируемом программном продукте. Главное - не допускать сбоев при выходе новых версий, так как устранение ошибок у сотен клиентов приводит к существенным издержкам. Ответственность, которая лежит на всех наших службах, в подобных условиях многократно возрастает.
Этот подход, обеспечивающий регулярный выпуск тиражируемых продуктов, зародился в “АйТи” в 1996 г., и с тех пор мы ведем отсчет промышленной технологии производства ПО.
PC Week: Сергей, вы пришли в компанию, в которой уже были технологические наработки. В чем ваши представления отличались от того, что делалось в “АйТи”, что изменилось с вашим приходом?
Сергей Паронджанов: Разработкой программных продуктов в “АйТи” занимались разные подразделения, поначалу не имевшие единой технологии. Из-за того, что платформы и подходы разные, разработчики между собой были мало связаны.
Сергей Паронджанов
Я пришел в “АйТи” в составе группы сотрудников из “Аргуссофта”, мы образовали Департамент консалтинга и методологии создания информационных систем. А этим летом были сформированы новые подразделения - Департамент тиражируемых программных продуктов, где я сейчас работаю, и Центр заказных разработок.
Наш Департамент поддерживает шесть основных тиражируемых продуктов - “Босс-Корпорация”, “Босс-Компания”, “Босс-Кадровик”, “Босс-Референт” и “Биллинг-АйТи”, “АйТи-РИТМ”. На данный момент везде построены цепочки технологических процессов, везде используются инструментальные средства для анализа требований к ПО, разработки, тестирования и т. д. Мы ставили задачу создать единую технологию организации работ, чтобы в одной системе координат анализировать деятельность организаций, в которых внедряются наши продукты, формировать требования к системе, вести тестирование, документирование.
PC Week: Можно ли достаточно четко определить отличия тиражируемого продукта?
С. П.: Тиражируемый продукт - это прежде всего промышленная технология его изготовления, внедрения и сопровождения, а структура подразделения, которая создает такие продукты, должна соответствовать процессам их создания.
При выпуске тиражируемого программного продукта надо создавать и поддерживать прежде всего базовую версию, обрабатывая множество требований, поступающих от клиентской аудитории. Маркетологи анализируют рынок, готовят информацию о предпочтениях пользователей, внедренцы собирают требования потребителей. Затем все это сводится воедино.
Если же взять заказные системы, то требования к ним формируются в личном контакте с каждым заказчиком, затем выполняется последовательная разработка прототипов, согласование каждого прототипа, наращивание интерфейсов, функциональности.
PC Week: Что сегодня характеризует современный уровень промышленных технологий?
Е. К.: Одна из основных характеристик - использование промышленных СУБД, на которых базируется создание открытых систем. Надо использовать универсальные протоколы доступа к данным, проектировать промышленные архитектуры прикладных систем, когда имеется базовое ядро и настраиваемые расширения, формировать инфраструктуру самого производства, формализовать задачи.
С. П.: Промышленная технология - это такая, которая задокументирована, утверждена, общеприменима и включает средства контроля выполнения операций. Она должна отвечать стандартам и поддерживаться инструментальными средствами. Современный уровень промышленных технологий характеризуется применением адекватных методологий и инструментальных средств и соответствием стандартам.
На программное обеспечение существует множество отечественных и международных стандартов. Основные стандарты, регламентирующие технологию создания ПО, - это ГОСТ 19, ГОСТ 34, ISO 12207, стандарты серии ISO 9000, определяющие качество, а также модель CMM, определяющая “зрелость” процедур создания ПО. Готовится новый международный стандарт ISO 15504, который дополнит стандарт ISO 12207, описывающий процессы жизненного цикла ПО, критериями оценки качества выполнения этих процессов на базе модели СММ.
В “АйТи” процессы создания ПП базируются на технологиях и инструментальных средствах ведущих фирм - Oracle, Microsoft, Lotus, Silverrun Technology. Стандарт ISO 12207 поддерживается во всех разработках компании. Компания имеет также сертификат качества ISO 9000.
Во внедрении промышленных технологий в компании помимо подразделений разработки и внедрения ПП участвуют Департамент консалтинга и методологий, обеспечивающий адаптацию и развитие методологий и технологий для программных разработок, и служба качества, обеспечивающая внедрение стандартов в разработки компании и контроль их выполнения.
PC Week: Какие этапы внедрения промышленных технологий идут сейчас в “АйТи” и на какой срок они рассчитаны?
С. П.: По планам этого года, мы собираемся провести серию пилотных проектов по внедрению единой промышленной технологии создания ПП, основанной на технологии и инструментальных средствах фирмы Rational Software. На первом этапе будут унифицированы обеспечивающие процессы: управление требованиями, управление изменениями, тестирование, конфигурационное управление и документирование. Эти проекты позволят оценить трудоемкость перевода на единую промышленную технологию тиражных ПП для разных платформ. Сроки массового перехода на единую промышленную технологию - скорее всего 2001 г.
PC Week: Чем должны завершиться связанные с ISO работы? Будет какая-то сертификация?
С. П.: Мы уже имеем положительный опыт проведения сертификации по линии ISO (у “АйТи” есть российский сертификат качества). Вполне возможно, что в ближайшем будущем мы попытаемся провести сертификацию по линии CMM и по международным требованиям.
PC Week: Какими средствами можно выловить конфликты, возникающие между новой и старой версиями программного продукта?
Е. К.: Если клиент штатно эксплуатирует у себя предыдущую версию, то конфликтов практически не возникает. Если клиент желает внести в нее свои изменения, добавления, то он должен действовать по регламенту, где точно описано, что и как следует делать и чего делать нельзя. Регламент выполнения подобных операций и есть технология.
Если же пользователь сам дорабатывает ядро системы, меняет интерфейс, то всю ответственность он уже берет на себя.
PC Week: Есть ли в ваших программных разработках ноу-хау? Какие преимущества они предоставляют разработчикам?
Е. К.: Конечно, есть. Например, у нас существует система для выдачи задания разработчикам и отслеживания ошибок с контролем исполнения работ по исправлению ошибок и т. д. Главное - облегчить сопровождение продуктов и попытаться максимально автоматизировать этот процесс.
Вообще, ноу-хау содержат практически все продукты “АйТи”, они чаще относятся к проектированию и функциональности продуктов.
PC Week: Технология разработки должна быть передаваемой. Проходят ли молодые программисты в “АйТи” какую-то поэтапную подготовку? Ведь из них в дальнейшем должны получиться профессионалы, способные создавать современную продукцию.
Е. К.: Еще лет пять назад молодые специалисты приобретали знания и специфические навыки в основном методом самообучения. Сейчас нами принята технология и методология вхождения людей в свои должностные обязанности. Мы даем программистам и внедренцам возможность в первую очередь ознакомиться с программным продуктом, причем не с точки зрения программирования, а с точки зрения его функционального наполнения.
Нам нужны люди, гарантированно обладающие определенными навыками, а именно: владеющие инструментальными средствами, языками программирования и т. д. Первоначально обучение происходит в объеме курса пользователя, затем изучается процесс внедрения, после этого сотрудник овладевает навыками программирования на наших инструментальных средствах - на Х-языке (на нем базируется система “Босс-Кадровик”), на Z-языке, который является основой программирования алгоритмов расчета заработной платы, и навыками программирования дополнительной отчетности с использованием Crystal Reports, Word-шаблонов и т. д. На такое обучение уходит около месяца. Далее решается, как включить конкретного сотрудника в технологическую цепочку. В целом, создание промышленной системы - это большая наука, сложная технология, и этому надо серьезно обучать.
Организация процесса разработки в “АйТи”, активное стремление фирмы развивать методологические направления (что подтверждается привлечением ведущих специалистов в этой области из других компаний), безусловно, заслуживает высокой оценки - с учетом задач, решаемых компанией сегодня и запланированных на ближайшее будущее. Однако возможности любой организации по созданию крупных программных систем имеют объективный предел - если вдруг появится сверхмасштабный (по российским меркам) проект, то просто механическим увеличением числа программистов в несколько раз выполнить его не удастся. Потребуются новые, методологически обоснованные организационные подходы, разработать которые одной компании не под силу - здесь нужны усилия на государственном уровне. В США, например, только в июле нынешнего года МО выделило центру программных разработок университета Карнеги - Меллона (где развивается методология СММ) 250 млн. долл. на исследования в области программной инженерии. А какие перспективы у наших программистов?