Newsgroups: cs.softw
From: Ruslan Belkin <rus@rapier.monolit.kiev.ua>
Subject: Licencing of programmer job
Organization: <none>
Date: Mon, 7 Nov 1994 19:35:01 GMT
Message-ID: <Cywx3y.9oF@monolit.kiev.ua>

Лицензирование труда программистов - доводы за и... 
D.Gotternbarrn (N42_94 c.47)(Рынок программ и программистов) 
need.txt


Тщательно разработанная и правильно применяемая модель 
лицензирования способна обеспечить контроль за деятельностью 
программистов.
На заре развития компьютерной техники мэйнфреймы в основном 
использовались для выполнения наиболее рутинных заданий: обработки 
числовой информации, сортировки имен, распечатки отчетов и иногда 
подготовки счетов. В случае появления ошибки оператору необходимо было 
обнаружить ее, найти способ исправления и запустить задачу на повторное 
выполнение. Тогда самой большой неприятностью программиста были 
бессонные ночи, проведенные с компьютером, и недовольство пользователей.
Сейчас времена простой обработки информации остались в прошлом. 
Создаваемое сегодня ПО помогает управлять компаниями с 
многомиллиардными оборотами, проектировать автомобили и поддерживать 
температуру в кувезах для выхаживания недоношенных детей. Короче говоря, 
оно играет важнейшую роль в повседневной жизни. Вследствие этого 
постоянно растет заинтересованность общественности в создании ПО, что, в 
свою очередь, требует от программистов повышенного чувства ответственности 
и достаточного уровня знаний.
По моему мнению, одним из способов достижения этого является введение 
лицензирования деятельности профессионалов в области компьютерной 
техники. Поймите меня правильно: я не пытаюсь доказать, что лицензирование 
- это панацея от всех бед. Конечно, нет. Оно лишь помогает тому, чтобы 
создатели ПО удовлетворяли высоким требованиям, предъявляемым к людям 
этой профессии, и соблюдали определенный кодекс чести. Тщательно 
разработанная и правильно применяемая схема лицензирования способна 
облегчить контроль за деятельностью программистов.
Перед тем как представить разработанную мной схему, я хотел бы 
высказаться по поводу некоторых распространенных аргументов против 
лицензирования труда программистов.
- Программирование - это искусство, и, следовательно, оно имеет право 
на свободу творчества. Я не могу согласиться с этим. Да, так называемая 
свобода творчества будет несколько ограничена условиями лицензирования, 
однако упорядочивание создания и проверки ПО является хорошей идеей. 
Например, увеличится вероятность обнаружения ошибки в программе, 
позволяющей поддерживать постоянную температуру в детском кувезе, а 
следовательно, поможет спасти человеческую жизнь. Разработку такого 
программного обеспечения нельзя отдать на откуп свободе творчества.
- Лицензирование - это уловка для "сшибания" денег. Я снова не 
согласен. Если оно и будет приносить доход, разве это означает, что следует 
отменить лицензирование деятельности, скажем, электриков или врачей? Я 
считаю, что нет.
- Нельзя лицензировать вид деятельности, не имеющий установившихся 
стандартов. Не могу с этим согласиться. Конечно, наука о разработке ПО не 
является вполне законченной и неизменной областью знаний. Точно так же 
мои дети-подростки не являются вполне зрелыми людьми. И хотя они не 
знают правильных ответов на все встающие перед ними вопросы, я хочу, чтобы 
они несли ответственность за то, что они знают наверняка, и старались вести 
себя достойным образом. То же самое можно отнести и к создателям 
программного обеспечения.
- Лицензирование не обеспечивает победу наиболее компетентного 
подхода. Это утверждение верно. Однако оно основывается на неправильной 
постановке проблемы. Без лицензирования мы вообще не можем 
гарантировать того, что разработчики обладают знаниями, соответствующими 
самому высокому современному уровню. С введением же лицензирования 
появится действенная возможность обеспечить применение на практике 
надлежащего образа действия, даже если это потребует значительных 
финансовых и временных затрат.
Для устранения всех этих возражений я предлагаю создать 
общенациональный стандарт, разработанный и поддерживаемый 
профессионалами в области вычислительной техники и воплощенный в жизнь 
правительствами штатов. Предлагаемая здесь модель стандарта основывается 
на уже существующих стандартах лицензирования деятельности 
профессиональных инженеров и медиков. Я думаю, что она хорошо подойдет 
и для специалистов в области создания программного обеспечения, а кроме 
того, снимет приведенные выше возражения. Стандарт по лицензированию 
должен включать следующие пункты:
- Обязательное получение специального образования. Четырехгодичная 
подготовка обеспечит знакомство программистов с наилучшими в настоящий 
момент методиками.
- Обязательная переподготовка. Срок действия лицензии должен истекать 
по прошествии пяти лет. Работающему программисту следует доказать свою 
компетентность по владению новыми методами, существующими в области его 
специализации. Стандарт должен не регламентировать способы приобретения 
новых знаний, а лишь информировать программиста о незнакомых ему 
областях. Лицензирование должно требовать от программиста быть в курсе 
развития вычислительной техники.
- Соответствие программиста требованиям стандарта должно 
определяться практикующими программистами. Компьютерное общество 
Института инженеров в области электротехники и электроники (IEEE) и 
Ассоциация компьютерной техники (Association for Computing Machinery - 
ACM) уже реализовали это требование для выпускников в области 
вычислительной техники. Стандарт устанавливает разные уровни 
лицензирования в зависимости от мастерства программиста и области его 
деятельности. Программист должен выполнять лишь ту задачу, которая входит 
в его компетенцию. Это также совпадает с кодексом чести, разработанным 
ACM.
- Компетентность программистов в применении полученных ими знаний 
должна подвергаться оценке профессионалов. В течение трех лет им следует 
работать совместно со специалистом, обладающим лицензией. Это требование 
наставничества аналогично соответствующему требованию, существующему у 
ревизоров.
- Обязательное соблюдение требований настоящего стандарта. 
Подразумевается применение санкций в отношении программистов, не 
выполняющих условие надлежащего образа действия и кодекса чести. Эта 
мера является противодействием давлению извне, способному привести к 
созданию низкокачественных программных продуктов.
Описанная здесь система лицензирования программистов явится гарантией 
того, что создатели систем станут применять в своей работе самые надежные 
способы. Конечно, лицензирование не гарантирует, что программисты не будут 
вовлечены в мошенничество или иную незаконную деятельность, однако, как и 
врачи, они должны соблюдать верность установленному кодексу чести. Без 
лицензирования нельзя выдвигать повышенных требований к ответственности 
программистов за результаты своего труда или формулировать понятие 
преступной халатности. Лицензирование, хотя и не решает всех проблем, 
увеличивает вероятность того, что программисты получат представление о 
надлежащем образе действия. И это заставит большую их часть добросовестно 
выполнять свою работу.


Постоянно растет заинтересованность общественности в создании ПО, что, в 
свою очередь, требует от программистов повышенного чувства ответственности 
и достаточного уровня знаний.

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


