Поскольку разработка программных средств является достаточно сложной процедурой, то для ее реализации нужны специалисты высокой квалификации, т.е. для проектирования программного обеспечения необходимо выделять высококвалифицированный персонал на все участки работы. Следует искать таких людей, которые выполняли подобные функции достаточно хорошо, либо тех, кто выполнял очень грамотно функции чуть меньшей сложности.
Руководство проектами надо поручать лишь тем специалистам, которые обладают подобным опытом. Здесь очень хорошо работает концепция бригады главного программиста.
Но ведь люди где-то должны начинать работать? Так как в настоящее время подготовка в университете достаточно основательная (структурное, объектно-ориентированное программирование и др.), то нишу проблемных программистов могут заполнить выпускники университетов.
С наибольшей вероятностью квалифицированный персонал можно найти среди поставщиков универсального программного обеспечения. Основная черта, которой должен обладать кандидат, — способность подчиняться дисциплине. Он должен понимать важность нисходящего подхода в создании программного изделия и документирования программы до ее кодировки.
Надо обратить внимание на то, что результаты работы любого программиста должны быть понятны другим, и ими можно воспользоваться. Любя попытка выполнить нужную работу, с помощью специалистов не самого высокого класса, обречена на провал.
Важным фактором для успешного выполнения работ является обеспечение продвижения по службе. Целесообразно максимально использовать имеющиеся должностные инстанции. Составить формальные должностные инструкции, определяющие соответствующее повышение ответственности и обязательно устанавливающие одинаковые уровни квалификации для должностей одного уровня.
Кроме вертикального продвижения по служебной лестнице, следует обеспечить продвижение по горизонтальному уровню. Должна поощряться широта профессиональных интересов и упрощаться проблема подбора кадров для выполнения менее важных функций путем включения в должностные инструкции более высоких уровней описания тех функций, выполнения которых достаточно для занятия более низких должностей в тех или иных подразделениях.
Принимая на работу людей любого уровня квалификации, необходимо обеспечить им возможность продвижения по службе в результате дополнительного профессионального обучения. По каждой выполняемой функции должен быть подготовлен семинар, рассчитанный на слушателей с различным уровнем квалификации. Работу семинара следует организовать так, чтобы на нем рассматривались наиболее значимые и уникальные средства проектирования. Для стимулирования заинтересованности в этих семинарах можно сделать участие в них обязательным условием для получения конкретного назначения.
Не менее важно обучение вне рамок организации. Необходимо максимально использовать участие сотрудников проекта в семинарах по профилю, проводимых передовыми школами программирования. Естественно, что такое обучение дело дорогостоящее, поэтому необходимо иметь твердую уверенность, что затраты на обучение дадут должный эффект.