Найти в Дзене
Владимир Денисов

Квалификация в ИТ

Начнем с классификации по видам деятельности. По этому критерию всех лиц взаимодействующих с ИТ можно разделить на: людей имеющих дело с ПО и людей имеющих дело с "железом". В свою очередь каждая из этих категорий делится на: разработчиков и экслуатационщиков. Разработчики заняты созданием новых продуктов и изделий, а эксплуатационщики эксплуатируют уже готовые.  Все дальнейшие рассуждения в этой статье относятся к разработчикам ПО. Другим категориям специалистов ИТ я посвящу отдельную статью или статьи. Разработчики ПО делятся на две группы "любители" и "профессионалы". Любители работают в одиночку, а профессионалы трудятся в коллективах. В свою очередь "любители" бывают "новичками" и "продвинутыми".  Любитель-новичок работает сам для себя, просто "из интереса". Он сам разработчик, постановщик, заказчик и даже эксплуатационщик своих программ.  Программы его могут быть плохо документированы и структурированы. Зарабатывает он на эксплуатации своих программ. По мимо любителя-новичка,

Начнем с классификации по видам деятельности. По этому критерию всех лиц взаимодействующих с ИТ можно разделить на: людей имеющих дело с ПО и людей имеющих дело с "железом". В свою очередь каждая из этих категорий делится на: разработчиков и экслуатационщиков. Разработчики заняты созданием новых продуктов и изделий, а эксплуатационщики эксплуатируют уже готовые. 

Все дальнейшие рассуждения в этой статье относятся к разработчикам ПО. Другим категориям специалистов ИТ я посвящу отдельную статью или статьи. Разработчики ПО делятся на две группы "любители" и "профессионалы". Любители работают в одиночку, а профессионалы трудятся в коллективах.

В свою очередь "любители" бывают "новичками" и "продвинутыми". 

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

 Программы его могут быть плохо документированы и структурированы.

Зарабатывает он на эксплуатации своих программ.

По мимо любителя-новичка, его программы могут эксплуатировать и другие люди, просто потому, что они им почему-то понравились.

Естественно лучше разработчика, никто такие программы эксплуатировать не может.

"Продвинутый любитель" работает на заказ. У него есть заказчик, он же постановщик, как правило плохой, потому, что мало, что знает о ВТ, но хочет её использовать в своей работе. Хотя и свою работу не всегда досконально знает и представляет.

Эксплуатирует такие программы, как правило организация заказчика. Хотя не исключенно, что их используют и другие организации так или иначе родственные заказчику. Такие организации либо входят с заказчиком в одну производственную структуру, либо родственные ему по роду деятельности.

Люди эксплуатирующие такие программы, сами их не выбирают, они для них инструмент предписанный свыше.

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

Продает он свои программы заказчику, как правило перед началом разработки.

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

Программы его могут быть формально задокументированы и плохо структурированы.

По уровню своей подготовки, как "любители-новички", так и "продвинутые любители" могут быть: начинающими, середнячками и экспертами.

Начинающие "любители-новички" владеют одним языком программирования (как правило высокого уровня), и имеют навыки работы с основными инструментальными средствами: текстовыми, иногда и графическими редакторами; системой программирования и отладки для своего языка.

"Любители-новички", со средним уровнем подготовки, знают несколько языков программирования, по мимо навыков работы с основными инструментальными средствами, имеют опыт использования других инструментальных средств (например СУБД). 

"Любители-новички", обладающие уровнем подготовки экспертов, помимо нескольких языков программирования высокого уровня, как правило знают ассемблер, системы программирования для языков которыми владеют, текстовые и графические редакторы, СУБД, и имеют проедставление о всех инструментальных средствах на ЭВМ для которых они программируют, принципах работы данных ЭВМ и архитектуре и возможностях используемых ими ОС.  

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

 "Продвинутые любители" - "середнячки" по уровню подготовки, как правило соответствуют "любителям-новичкам-экспертам" только обладают большим опытом программирования.

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

Опыт работы разработчиков-любителей ПО измеряется не стажем, а количеством разработанных ими программ, их сложностью, и количеством разработанного и отлаженного программного кода. Подчеркиваю, что именно разработанного, а не заимствованного!

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

Переход из категории "любитель-новичок" в категорию "продвинутый любитель" определяется уверенностью "любителя-новичка" в своих силах.

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

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

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

По сложности, работы выполняемые профессионалами делятся на разработку: прикладного, инструментального и системного программного обеспечения.

Прикладное программное обеспечение это комплексы программ обеспечивающие комплексную автоматизацию определенной сферы деятельности (например: АСУ, САПР, АСУТП, компьютерные игры и т.д.)

Инструментальное ПО - это программное обеспечение направленное на автоматизацию определенного вида деятельности независимо от профессии, где этот вид деятельности востребован (например: редакторы различного назначения (текста, графики, звука, видео и т.д.); СУБД; программы автоматизации разработки на различных языках программирования (трансляторы, компиляторы, системы отладки); средства разработки сайтов; системы защиты сетей и данных и тому подобное.

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

По уровню знаний профессионалы делятся на, знающих:

- средства разработки программ;

- инструментальные средства;

- системное программное обеспечение;

- устройство компьютерных сетей, программирование в компьютерных сетях и управление компьютерными сетями;

- программирование аппаратных средств ВТ.

По требуемому уровню профессиональных умений, работу профессионалов можно отнести к: начальному, среднему и сложному уровню.

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

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

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

Основным критерием для определения навыков программиста-профессионала является скорость разработки т.е. количество программного кода определенной сложности созданного (написанного и отлаженного) за сутки. Как правило это средняя величина за всю карьеру.   

По опыту профессиональной деятельности, профессионалов, можно разделить на тех кто имеет: небольшой, средний и значительный опыт.

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

Кроме того даже новички-профессионалы имеют четкую специализацию по типу ВТ и назначению разрабатываемых ими программ. Есть люди ориентированные только на один тип техники, а есть те кто уверненно работает на всем. В том числе и различных ОС. 

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

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

Естетественно, не надо забывать, что чем выше квалификация специалиста тем он дороже стоит.

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

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

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

Обычно руководители проектов специализируются на определеной сфере деятельности.

Люди, которые одинаково хорошо справляются с проектами из разных сфер деятельности, встречаются очень и очень редко. Особенно в сфере разработки прикладного ПО. Это ведь не HR-специалисты!

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

 

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

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