«Открытые системы»

Стране нужны продуманные процессы базовой подготовки и непрерывной переквалификации специалистов по разработке как инженерной дисциплине

В основе любой профессии лежит совокупность теоретических знаний и практического опыта. Осознав себя как молодую, но весьма перспективную для компьютерной сферы и общества в целом профессию, программная инженерия (software engineering) начала движение к описанию собственного свода знаний. По ходу дела стало ясно: сами по себе знания по программной инженерии уже накоплены во множестве томов специализированной литературы. Потому усилия были сосредоточены на создании руководства к извлечению необходимых сведений из первоисточников, своего рода путеводителя, формализующего структуру профессиональной области. В феврале 2004 года была завершена работа над Руководством к своду знаний по программной инженерии (The Guide to the Software Engineering Body of Knowledge, SWEBOK). Знакомство с SWEBOK должно представлять интерес для многочисленных отечественных представителей этой профессии. У нас всегда было много талантливых программистов, но, пожалуй, только сейчас приходит ясное осознание, что стране нужен продуманный процесс базовой подготовки и непрерывной профессиональной переквалификации специалистов по разработке как инженерной дисциплине, дабы восполнить недостаток кадров, возникший в условиях современной ИТ-индустрии. В SWEBOK можно почерпнуть весьма разумные рекомендации, на какой основе выстроить такой процесс.

Экскурс в историю

В 1993 году две ведущих организации в сфере ИТ, IEEE Computer Society и Association for Computing Machinery образовали совместный комитет Software Engineering Coordinating Committee для «создания совокупности критериев и норм программной инженерии как профессиональной деятельности, на базе которых можно будет принимать решения в ходе индустриальной разработки, проводить профессиональную сертификацию и формировать учебные программы». Проект SWEBOK был инициирован в рамках SWECC в 1998 году и проходил в три этапа, названия которых — Strawman («соломенный человек»), Stoneman («каменный человек») и Ironman («железный человек»), — образно характеризуют стадии зрелости разрабатываемого документа. На первом этапе был создан прототип, демонстрирующий возможные принципы организации SWEBOK. По завершении этапа Stoneman в 2001 году была опубликована пробная версия Руководства к своду знаний по программной инженерии. При ее создании были учтены около 9 тыс. замечаний, предложенных более чем 500 заинтересованными лицами из 42 стран. Редакция SWEBOK от 2004 года является результатом последнего этапа Ironman и отражает дополнительные комментарии и замечания, предложенные сообществом в ходе знакомства с пробной версией.

Одним из основных принципов реализации проекта является достижение консенсуса, то есть формирование содержания SWEBOK при активном участии представителей различных направлений профессионального сообщества. Только при условии согласия между ними можно говорить о значимости и легитимности такого документа. По утверждению авторов финальной редакции SWEBOK, привлечение к анализу и доработке Руководства сотен специалистов и различных организаций свидетельствует о реальном достижении такого консенсуса. Ряд организаций вошли в консультативный орган Industrial Advisory Board, который осуществляет финансовую поддержку проекта, благодаря чему все его результаты публикуются в свободном доступе на www.swebok.org.

SWEBOK на русском

Первую попытку изложить Руководство к своду знаний по программной инженерии на русском языке предпринял Сергей Орлик, менеджер по бизнес-решениям представительства компании Borland. Автор позиционирует свою работу как «общедоступный перевод с замечаниями и комментариями». Он станет частью книги, посвященной управлению ИТ и его краеугольным камням — разработке (системная и программная инженерия и модель CMMI), операционной деятельности (на основе ITIL/ITSM) и стратегическому и оперативному управлению ИТ (на базе COBIT). Сроки выхода этого издания в свет пока не называются, но с главами, включающими изложение SWEBOK, уже можно познакомиться на блоге Орлика sorlik.blogspot.com.

«Данная работа является персональной профессиональной инициативой, не финансируется и не ассоциирована в какой-либо форме ни с какой компанией или организацией», — подчеркивает Орлик.

Переводом SWEBOK занимается также директор департамента стратегических технологий российского представительства Microsoft Владимир Павлов, участвующий, помимо этого, в проекте по переводу образовательного стандарта по программной инженерии Computing Curricula Software Engineering. Как признается сам Павлов, на данный момент сделан черновой перевод, но понадобится еще немало времени на его окончательное редактирование. Завершить эту работу Павлов надеется в начале 2007 года, после чего планируется выпустить печатную версию перевода и опубликовать его в Internet. Перевод будет распространяться бесплатно. По словам Павлова, проект поддерживают АП КИТ и компании Microsoft и Intel.


Содержание SWEBOK

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

Для того чтобы задать границы программной инженерии как сферы профессиональной деятельности, SWEBOK вводит десять областей знаний, каждой из которых соответствует одна глава Руководства:

  • Требования к программному обеспечению (Software Requirements);
  • Проектирование программного обеспечения (Software Design);
  • Конструирование программного обеспечения (Software Construction);
  • Тестирование программного обеспечения (Software Testing);
  • Сопровождение программного обеспечения (Software Maintenance);
  • Управление конфигурацией программного обеспечения (Software Configuration Management);
  • Управление в программной ин?женерии (Software Engineering Mana?gement);
  • Процесс программной инженерии (Software Engineering Process);
  • Инструменты и методы программной инженерии (Software Engineering Tools and Methods);
  • Качество программного обеспечения (Software Quality).

Отдельная глава посвящена описанию смежных по отношению к программной инженерии дисциплин, среди которых математика, компьютерные науки, менеджмент, управление проектами и др.

Одним из важнейших вопросов, которые необходимо было решить в ходе реализации проекта SWEBOK, был вопрос о глубине охвата знаний по программной инженерии в создаваемом Руководстве. В SWEBOK представлены так называемые «общепринятые» знания, получившие широкое распространение в индустрии знания и навыки, применение которых не является обязательным во всех возможных случаях, но владение которыми необходимо для любого квалифицированного разработчика. Еще одно определение общепринятых знаний в SWEBOK отражает практику подготовки инженеров-программистов в США: это знания, которыми должны обладать разработчики, имеющие степень бакалавра и четыре года практической работы, для успешного прохождения лицензионного экзамена.

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

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

Авторы SWEBOK подчеркивают: содержание документа неизбежно будет эволюционировать. А это значит, что работа над SWEBOK продолжается; выпуск следующей редакции запланирован на 2008 год.