Основная категория специалистов это программист (Programmer) они не однородны по уровню квалификации, а также характеру своей деятельности.
Программисты делятся на системных и прикладных
1. В процессе создания программ на начальной стадии работ участвуют и специалисты постановщики задач
2. Прикладной программист (Applicationprogrammer) осуществляет разработку и отладку программ для решения функциональных задач.В условиях созданиях больших по масштабу и функциям обработки программ появляется квалификация – программист-аналитик (programmer -analyst) который анализирует и проектирует комплекс взаимосвязанных программ для реализации предметной области.
3. Системный программист (system/softwareprogrammer, toolsmith) занимается разработкой, эксплуатацией и сопровождением системного программного обеспечения, поддерживающего работоспособность компьютера и создания среды для выполнения программ обеспечивающих реализацию функциональных задач.
4. Администратор базы данныхобеспечивает работу с данными многих приложений организует поддержку базы данных.
5. Возможна эксплуатация программ квалифицированным и программистами или специально обученными техническими работниками - оператор ЭВМ.
6. Основным потребителем служит конечный пользователь (enduser) он не является специалистом в области программирования и может иметь элементарные навыки работы с ПК. Такая квалификационная характеристика пользователя ПП влияет на спецификацию требований к создаваемым программам, интерфейсам, формам машинных документов, технологии решения задач на ЭВМ.
Рисунок 1- Схема взаимодействия специалистов связанных с созданием
и эксплуатацией программ
Технологии коллективной разработки
Все множество разработок в зависимости от количества участников и типов взаимоотношений между ними может быть сведено к триаде разработок, приведенной на рис. 3.21.
Авторская разработка
Авторская разработка - принцип создания программных продуктов, при котором весь жизненный цикл разработки поддерживается одним единственным человеком.
Этот принцип был достаточно широко распространен в 70-80-е годы XX века. Сейчас он применяется редко [Кулаичев 1999]. Примерами авторских разработок являются операционная система Диспак (В.Ф. Тюрин), текстовый редактор Лексикон (Е. М. Веселов), трансляторы с языков Algol-68 (П. Наур) и Pascal (H.Вирт).
Принцип авторской разработки неприменим для многих современных разработок из-за их сложности, объема и требований к качеству и сопровождению. С другой стороны, программное обеспечение, начиная с момента появления персональных компьютеров, стало продуктом массового потребления, приносящим огромный доход. В этой области быстро выросли и стали доминировать крупные компьютерные компании с развитой структурой менеджмента и мощной рекламой.
Наиболее интересен принцип авторской разработки с точки зрения применения в области наукоемких приложений. Для таких приложений характерна необходимость многолетнего изучения предметной области, практически полное отсутствие начального финансирования проекта, малая рентабельность, определяемая узким кругом пользователей.
По данным А. П. Кулаичева [Кулаичев 1999], авторская разработка может выигрывать по производительности в тридцать и более раз у коллективной разработки, что достигается за счет:
· исключения межличностных коммуникаций, связанных с необходимостью порождения и изучения большого количества технологической документации;
· исключения работ по разбиению проекта на составляющие, по распределению их между исполнителями, по координации деятельности исполнителей и контролю за их работой.
Объем программного продукта, выполненного методом авторской разработки, в 5-20 раз меньше по сравнению с индустриальными аналогами.
Авторская разработка предполагает достижение профессионального успеха, известности и славы в одиночку. Такое вполне реально, следует только правильно выбрать профессиональную "нишу", область ведения разработки.
Коллективная разработка
Одним из основных вопросов коллективной разработки является разделение труда - от равноправных соисполнителей до организации в виде жесткой иерархии (например, бригады главного программиста).
О первых опытах коллективных разработок. Известно, что первые коллективные разработки программ велись примерно так. Начальник выполнял разделение большого проекта на меньшие части и передавал далее по иерархии. Через некоторое время, теперь уже снизу вверх, шла сборка программы из написанных фрагментов. Собрать работающий программный продукт удавалось не всегда.
Технические командные роли
Равноправные соисполнители
Бригада равноправных соисполнителей обычно состоит из специалистов, занимающихся примерно подобными задачами в рамках одного проекта. Естественно, специализаций в рамках одной бригады может быть несколько. В разд. 1.7.6.2 уже приводился примерный состав такой бригады разработчиков. Напомним его:
· инженеры-разработчики (специалисты по инженерии программирования и программисты);
· технические писатели;
· инженеры тестирования;
· инженеры качества;
· специалисты по сопровождению продукта;
· специалисты по продажам продукта.
Тип работы определяет содержание и природу выполняемой работы. Приведем список типов работ и областей специализации на основе классификации Конгер [Conger 1994].
· Разработка приложений.
o Программист.
o Специалист по инженерии программирования.
o Специалист по инженерии знаний.
· Работа с приложениями.
o Специалист по приложениям.
o Администратор данных.
o Администратор базы данных.
· Техническая поддержка.
o Системный администратор.
o Сетевой администратор.
o Администратор коммуникаций,
· Обеспечение качества продукта.
o Технический писатель.
o Инженер тестирования.
o Инженер качества.
· Маркетинг.
o Специалист по сопровождению продукта.
o Специалист по продажам продукта.
· Системное интегрирование.
o Системный интегратор.
Из перечисленных специализаций очень интересна специализация системного интегратора. Основные задачи системного интегратора - предложить заказчику вариант решения его проблемы, выбрав наиболее приемлемый по цене и технике, и реализовать его. Таким образом, системный интегратор продает решения и несет ответственность за их реализацию. Системный интегратор как профессионал должен обладать знаниями из очень многих областей - прикладное и системное программное обеспечение, администрирование систем, аппаратура, сети, экономика и т. п.
Бригада главного программиста
ХарланМиллз [Брукс 1999] предложил организовывать команды (бригады) главного программиста (chiefprogrammerteams), подобные хирургическим бригадам. Лишь один участник команды занимается основной работой, остальные оказывают ему всевозможную поддержку. Бригада главного программиста включает десять человек, выполняющих специализированные роли в команде (рис. 3.22).
Основные члены бригады выполняют функции, перечисленные ниже.
· Главный программист. Лично выполняет анализ и проектирование, создание и отладку кода, написание документации. Должен обладать талантом, большим опытом работы и существенными знаниями.
· Дублер. Может выполнять любую работу главного программиста, но менее опытен. Подстраховывает главного программиста, может заниматься написанием кода, но не несет ответственности за проект.
· Администратор, он же - менеджер. Под его контролем - деньги, люди, помещения, машинные ресурсы, контакты с другими группами и руководством.
· Редактор. Фактически, это технический писатель. Его задача - критически переработать черновики документации (созданные главным программистом), снабдить их ссылками и библиографией и обеспечить публикацию или помещение в Интернете.
· Языковед. Эксперт в тонкостях языков программирования. Может найти эффективные способы использования языка для решения сложных задач. Обычно работает с несколькими бригадами.
· Инструментальщик. Разработчик специализированных инструментов - утилит и скриптов. Поддерживает основной инструментарий и оказывает по нему консультации. При необходимости может осуществлять администрирование операционной системы.
· Отладчик. Разработчик тестов и организатор тестирования программного продукта.
· Делопроизводитель. Отвечает за регистрацию всех технических данных бригады в библиотеке программного продукта. Благодаря делопроизводителю, активные программисты освобождались от рутинных работ. Заметим, что в настоящее время функции делопроизводителя автоматизированы и переданы репозиторию проекта.
Психологические командные роли
Роб Томсет (RobThomsett) [Thomsett 1990] предложил восемь ключевых ролей в проекте (рис. 3.23).
· Председатель. Выбирает путь, по которому команда движется вперед к общим целям. Умеет обнаружить сильные и слабые стороны команды и обеспечить наибольшее применение потенциала каждого ее участника.
· Архитектор. Он же оформитель. Придает законченную форму действиям команды. Имеет четкое представление о проблемах и их возможных решениях.
· Генератор идей. Предлагает радикально новые идеи и стратегии, новые подходы к решению проблем, с которыми сталкивается группа. Особое внимание уделяет главным проблемам.
· Критик. Он же скептик, оценивающий проблемы с прагматической точки зрения. Ищет недостатки, изъяны и недоделки. Компенсирует оптимизм генератора идей.
· Исполнитель. Работник, собственно занимающийся написанием кода. Как правило, он не обладает широтой кругозора.
· Завершающий. Поддерживает в команде настойчивость в достижении цели. Играет доминирующую роль на завершающих стадиях разработки.
· Дипломат. Поддерживает силу духа в участниках проекта. Оказывает им помощь в трудных положениях. Пытается улучшить взаимоотношения в команде.
· Организатор. Обнаруживает и сообщает о новых идеях, разработках и ресурсах. Имеет много друзей и связей в своей организации, с помощью которых можно выпросить или одолжить необходимые ресурсы.
В реальных командах программистов могут быть выделены не все из этих ролей. Роль исполнителя часто берут на себя сразу несколько членов команды.
Типы совместной деятельности
Коллективная разработка предполагает большое количество различных действий, причем степень совместной деятельности может существенно изменяться от одного действия к другому. Можно выделить четыре типа совместной деятельности [Robillard, Robillard 2000].
· Мандатная деятельность, обычно представленная формальными собраниями, проводимыми на регулярной основе. Обычно собрания планируются заранее, а присутствие на них обязательно. Статистика показывает, что программисты проводят около 4% своего рабочего времени на собраниях.
· Созываемая деятельность, которая имеет место в случае решения двух или более программистов собраться вместе для решения некоторого технического вопроса. Такие собрания обычно не планируются заранее и в них участвуют только действительно заинтересованные в решении проблемы программисты. На эту деятельность уходит около 14% рабочего времени.
· Естественная совместная деятельность имеет место, когда как минимум двое программистов работают над одной и той же задачей одновременно и обмениваются информацией о выполняемой работе. Эта деятельность занимает около 41% рабочего времени.
· Индивидуальная деятельность имеет место, когда программист работает над задачей, которая не выполняется в то же самое время никаким другим программистом и поэтому маловероятно его взаимодействие по этому предмету с любыми другими программистами группы. Эта деятельность занимает также около 41% рабочего времени.
Общинная модель разработки
Общинная модель характеризуется тремя основными факторами.
· Децентролизованность разработки. Не существует ограничения сверху на количество людей, принимающих участие в проекте. Как правило, разработки такого типа ведутся на базе сети Интернет и могут включать любого заинтересованного разработчика Сети.
· Разработка ведется на базе открытых исходных текстов. По ним можно разобраться с сутью задачи и в любой момент подключиться к разработке.
· Большое количество внешних тестеров (бета-тестеров), позволяющих быстро обнаруживать ошибки и проблемы в программе.
Эрик Рэймонд сформулировал несколько уроков, которые позволяют лучше понять особенности общинной разработки.
· Каждая хорошая программа начинается с энтузиазма разработчика.
· Хорошие программисты знают, что можно написать, а великие - что можно переписать.
· При правильном отношении интересная проблема найдет вас сама.
· Когда вы теряете интерес к программе, ваша последняя обязанность - передать ее компетентному преемнику.
· Следует выпускать ранние и частые версии программ.
· Обнаружить проблему и исправить ее могут разные люди.
· Иногда использовать идеи пользователей лучше, чем свои идеи.
Вредные и опасные факторы при работе на персональных электронно-вычислительных машинах
В последние годы большое внимание уделяется улучшению условий труда пользователей электронно-вычислительных машин (ПЭВМ) и видеодисплейных терминалов (ВДТ), несмотря на то, что качество и безопасность самых ПЭВМ и ВДТ постоянно улучшаются. В развитых странах, в том числе в США, Германии, Швеции, вопрос об опасности работы за дисплеями поднялся до уровня национальной проблемы, а в Германии работа за дисплеями входит в список 40 наиболее вредных и опасных профессий.
Работа с персональным компьютером — это воспроизведение визуальной информации на дисплее, которая должна быстро и точно восприниматься пользователем.
Основным фактором, влияющим на производительность труда людей, работающих с ПЭВМ и ВДТ, являются комфортные и безопасные условия труда.
Условия труда пользователя, работающего с персональным компьютером, определяются:
§ особенностями организации рабочего места;
§ условиями производственной среды (освещением, микроклиматом, шумом, электромагнитными и электростатическими полями, визуальными эргономическими параметрами дисплея и т. д.);
§ характеристиками информационного взаимодействия человека и персональных электронно-вычислительных машин.
При выполнении работ на персональном компьютере (ПК) согласно ГОСТу 12.0.003-04 “ССБТ. Опасные и вредные производственные факторы. Классификация” могут иметь место следующие факторы:
§ повышенная температура поверхностей ПК;
§ повышенная или пониженная температура воздуха рабочей зоны;
§ выделение в воздух рабочей зоны ряда химических веществ;
§ повышенная или пониженная влажность воздуха;
§ повышенный или пониженный уровень отрицательных и положительных аэроионов;
§ повышенное значение напряжения в электрцепи, замыкание;
§ повышенный уровень статического электричества;
§ повышенный уровень электромагнитных излучений;
§ повышенная напряженность электрического поля;
§ отсутствие или недостаток естественного света;
§ недостаточная искусственная освещенность рабочей зоны;
§ повышенная яркость света и повышенная контрастность;
§ прямая и отраженная блесткость;
§ зрительное напряжение;
§ монотонность трудового процесса;
§ нервно-эмоциональные перегрузки.
Работа на ПК сопровождается постоянным и значительным напряжением функций зрительного анализатора.
Одной из основных особенностей является иной принцип чтения информации, чем при обычном чтении. При обычном чтении текст на бумаге, расположенный горизонтально на столе, считывается работником с наклоненной головой при падении светового потока на текст. При работе на ПК оператор считывает текст, почти не наклоняя голову, глаза смотрят прямо или почти прямо вперед, текст (источник — люминесцирующее вещество экрана) формируется по другую сторону экрана, поэтому пользователь не считывает отраженный текст, а смотрит непосредственно на источник света, что вынуждает глаза и орган зрения в целом работать в несвойственном ему стрессовом режиме длительное время.
Расстройство органов зрения резко увеличивается при работе более четырех часов в день.
Всемирная организация здравоохранения (ВОЗ) ввела понятие “компьютерный зрительный синдром” (КЗС), типовыми симптомами которого являются жжение в глазах, покраснение век и коньюнктивы, чувство инородного тела или песка под веками, боли в области глазниц и лба, затуманивание зрения, замедленная перефокусировка с ближних объектов на дальние.
Нервно-эмоциональное напряжение при работе на ПК возникает вследствие дефицита времени, большого объема и плотности информации, особенностей диалогового режима общения человека и ПК, ответственности за безошибочность информации. Продолжительная работа на дисплее, особенно в диалоговом режиме, может привести к нервно-эмоциональному перенапряжению, нарушению сна, ухудшению состояния, снижению концентрации внимания и работоспособности, хронической головной боли, повышенной возбудимости нервной системы, депрессии.
Кроме того, при повышенных нервно-психических нагрузках в сочетании с другими вредными факторами происходит “выброс” из организма витаминов и минеральных веществ. При работе в условиях повышенных нервно-эмоциональных и физических нагрузок гиповитаминоз, недостаток микроэлементов и минеральных веществ (особенно железа, магния, селена) ускоряет и обостряет восприимчивость к воздействию вредных факторов окружающей и производственной среды, нарушает обмен веществ, ведет к изнашиванию и старению организма. Поэтому при постоянной работе на ПК для повышения работоспособности и сохранения здоровья к мерам безопасности относится защита организма с помощью витаминно-минеральных комплексов, которые рекомендуется применять всем, даже практически здоровым пользователям ПК.
Повышенные статические и динамические нагрузки у пользователей ПК приводят к жалобам на боли в спине, шейном отделе позвоночника и руках. Из всех недомоганий, обусловленных работой на компьютерах, чаще встречаются те, которые связаны с использованием клавиатуры. В период выполнения операций ввода данных количество мелких стереотипных движений кистей и пальцев рук за смену может превысить 60 тыс., что в соответствии с гигиенической классификацией труда относится к категории вредных и опасных. Поскольку каждое нажатие на клавишу сопряжено с сокращением мышц, сухожилия непрерывно скользят вдоль костей и соприкасаются с тканями, вследствие чего могут развиться болезненные воспалительные процессы. Воспалительные процессы тканей сухожилий (тендениты) получили общее название “травма повторяющихся нагрузок”.
Большинство работающих рано или поздно начинают предъявлять жалобы на боли в шее и спине. Эти недомогания накапливаются постепенно и получили название “синдром длительных статических нагрузок” (СДСН).
Другой причиной возникновения СДСН может быть длительное пребывание в положении “сидя”, которое приводит к сильному перенапряжению мышц спины и ног, в результате чего возникают боли и неприятные ощущения в нижней части спины. Основной причиной перенапряжения мышц спины и ног являются нерациональная высота рабочей поверхности стола и сидения, отсутствие опорной спинки и подлокотников, неудобное размещение монитора, клавиатуры и документов, отсутствие подставки для ног.
Для существенного уменьшения боли и неприятных ощущений, возникающих у пользователей ПК, необходимы частые перерывы в работе и эргономические усовершенствования, в том числе оборудование рабочего места так, чтобы исключать неудобные позы и длительные напряжения.
К числу факторов, ухудшающих состояние здоровья пользователей компьютерной техники, относятся электромагнитное и электростатическое поля, акустический шум, изменение ионного состава воздуха и параметров микроклимата в помещении. Немаловажную роль играют эргономические параметры расположения экрана монитора (дисплея), состояние освещенности на рабочем месте, параметры мебели и характеристики помещения, где расположена компьютерная техника.
С 30 июня 2003 г. введены новые Санитарно-эпидемиологические правила СанПиН 2.2.2/2.4. 1340-03 “Гигиенические требования к персональным электронно-вычислительным машинам и организации работы”. Требования Санитарных правил распространяются на вычислительные электронные цифровые машины персональные и портативные; периферические устройства вычислительных комплексов (принтеры, сканеры, клавиатуру, модемы внешние); устройства отображения информации (видеодисплейные терминалы — ВДТ) всех типов, условия и организацию работы с ПЭВМ и направлены на предотвращение неблагоприятного влияния на здоровье человека вредных факторов производственной среды и трудового процесса при работе с ПЭВМ. Рабочие места с использованием ПЭВМ и помещения для их эксплуатации должны соответствовать требованиям Санитарных правил.