Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (1015641), страница 28
Текст из файла (страница 28)
Неполное определение,двусмысленность и сложность приводят к невозможности описания, а следовательно, и понимания природы взаимодействия.Но ни сами документы, ни их коллективное обсуждениене могут обеспечить действенных взаимосвязей, если отсутствуют контакты функциональных групп.Общие организационные обязанности могут устанавливаться с помощью должностных инструкций и целевых плановподразделений. Конкретные обязанности определяются планами выпуска изделия. Пропорциональное распределение ответственности обеспечивается соответствующими стратегиямиуправления.
В них обязательно должны предусматриваться возможности невыполнения взятых обязательств и учитываться по-186правки на исключительные случаи, чтобы сделать планы и процедуры жизнеспособными.8.1.4 Установление целей, средства их достиженияПервым шагом процесса установления и достижения целей является подбор необходимого персонала. Когда в организации происходят изменения, соответственно меняется и ее персонал. Некоторые изменения происходят периодически. Подобные изменения характеризуются экспоненциальным ростомчисла устанавливаемых связей.
Чтобы приспособиться к этимколебаниям, нужны руководители, способные к адаптации. Руководителей, продуктивных только в каком-либо одном видедеятельности, нужно заменять. Программирование — областьдеятельности, требующая высокой квалификации, оно привлекает к себе неординарных, эксцентричных людей. Такие людиредко понимают структуру организации, ориентированную насоздание программного продукта, часто отказываются работатьв условиях ограничения свободы творчества, т.к. они вынуждены тратить время на документирование или защиту своих разработок. Однако их участие в «черновой работе» необходимо, ичтобы склонить этих людей к работе, необходимо комплектовать штат, руководствуясь соображениями эффективности.
Этоозначает отход от идеальных установленных общих правил,предоставление свободного режима прихода и ухода с работы,выделение таким людям помощников, способных компенсировать их неумение четко документировать свои результаты. Нопри этом следует сравнивать прямые затраты, связанные со стимулированием «привилегированных» сотрудников, а такженеявные издержки, связанные с ухудшением морального состояния их сослуживцев, с получаемой организацией выгодой.Основным методическим принципом управления разработкой является целевое управление.Целевое управление представляет собой концепцию планирования и управления, с помощью которой руководительустанавливает соответствующие цели через своего непосредственного руководителя более высокого ранга и участвует вустановлении целей последнего; при этом результаты его дея-187тельности оцениваются на основании конкретного обсужденияи документального рецензирования.Цели присутствуют в планах самого различного уровня:целевых планах, бюджете, планах выпуска изделий, документации и т.д.
Основной план для программного изделия — соглашение о требованиях. Цели, сформулированные в этом плане,должны включаться в индивидуальные рабочие планы, служащие тем механизмом, посредством которого в системе целевогоуправления достигается договоренность между исполнителямии их руководителями.Достижение цели гарантируется включением общих целей создания изделия в индивидуальные рабочие планы и организацией текущего контроля за их выполнением.Соглашение о требованиях, план поддержки, распределение бюджета и другие средства устанавливают те границы, впределах которых не требуется использование обратной связи.Существует три вида основных критериев оценки эффективности той или иной деятельности: конкретные свойства; затрачиваемое время; стоимость.Каждый из этих критериев имеет определенные границыдействия, по достижению которых обязательно предоставлениеотчета руководству о результатах.Однако следует учитывать, что управление созданиемпрограммных изделий является примером управления в условиях неопределенности.
Качество такого управления зависит отспособностей руководителей предвидеть трудности, планировать разработку с учетом случайных факторов и уметь защищать такого рода планирование от критики начальства, котороетребует непременно «исключить случайность».8.1.5 Подбор и обучение кадровПоскольку разработка программных средств является достаточно сложной процедурой, то для ее реализации нужныспециалисты высокой квалификации, т.е. для проектированияпрограммного обеспечения необходимо выделять высококвалифицированный персонал на все участки работы. Следует искать188таких людей, которые выполняли подобные функции достаточно хорошо, либо тех, кто выполнял очень грамотно функциичуть меньшей сложности.Руководство проектами надо поручать лишь тем специалистам, которые обладают подобным опытом. Здесь очень хорошо работает концепция бригады главного программиста.Но ведь люди где-то должны начинать работать? Так какв настоящее время подготовка в университете достаточно основательная (структурное, объектно-ориентированное программирование и др.), то нишу проблемных программистов могут заполнить выпускники университетов.С наибольшей вероятностью квалифицированный персонал можно найти среди поставщиков универсального программного обеспечения.
Основная черта, которой должен обладатькандидат, — способность подчиняться дисциплине. Он долженпонимать важность нисходящего подхода в создании программного изделия и документирования программы до ее кодировки.Надо обратить внимание на то, что результаты работылюбого программиста должны быть понятны другим, и имиможно воспользоваться.
Любя попытка выполнить нужную работу, с помощью специалистов не самого высокого класса, обречена на провал.Важным фактором для успешного выполнения работ является обеспечение продвижения по службе. Целесообразномаксимально использовать имеющиеся должностные инстанции. Составить формальные должностные инструкции, определяющие соответствующее повышение ответственности и обязательно устанавливающие одинаковые уровни квалификации длядолжностей одного уровня.Кроме вертикального продвижения по служебной лестнице, следует обеспечить продвижение по горизонтальному уровню.
Должна поощряться широта профессиональных интересови упрощаться проблема подбора кадров для выполнения менееважных функций путем включения в должностные инструкцииболее высоких уровней описания тех функций, выполнения которых достаточно для занятия более низких должностей в техили иных подразделениях.Принимая на работу людей любого уровня квалификации,необходимо обеспечить им возможность продвижения по служ-189бе в результате дополнительного профессионального обучения.По каждой выполняемой функции должен быть подготовлен семинар, рассчитанный на слушателей с различным уровнем квалификации. Работу семинара следует организовать так, чтобына нем рассматривались наиболее значимые и уникальные средства проектирования.
Для стимулирования заинтересованностив этих семинарах можно сделать участие в них обязательнымусловием для получения конкретного назначения.Не менее важно обучение вне рамок организации. Необходимо максимально использовать участие сотрудников проекта в семинарах по профилю, проводимых передовыми школамипрограммирования. Естественно, что такое обучение дело дорогостоящее, поэтому необходимо иметь твердую уверенность,что затраты на обучение дадут должный эффект.8.2 Организация планирования разработокпрограммного изделияПланы создания программного изделия должны охватывать этапы разработки, документирования, испытаний, обучения пользователей, сопровождения. Отсутствие планов —основная причина переделки программ.
Естественно, что в планах невозможно предусмотреть все категории пользователей,однако можно принять разумные меры предосторожности нанепредвиденные случаи.Программное изделие — это собственно программа плюсдокументация, гарантия качества, рекламные материалы, обучение, распространение и сопровождение. Таким образом, для создания программного изделия требуется совокупность планов,охватывающих все аспекты разработки изделия и их связь свнешней средой.8.2.1 Виды плановСамым главным охватывающим планом является целеваяпрограмма. Цель ее — максимизировать доход от капиталовложений.
Целевая программа отвечает на вопрос, для чего предназначена та или иная деятельность. В целевой программе не сообщается, как цель должна быть достигнута, и редко устанавливаются сроки реализации. Обычно целевые программы редко190имеют самостоятельную значимость, они предназначены длядругих программ, чтобы ответить на вопрос зачем?Целевая программаЗачем?Стратегический планЧто? Когда?Тактический планКак? Кто? Где?Рис. 8.2 — Иерархия плановСледующий уровень планирования — стратегическийплан. Он отвечает на вопросы что? и когда? При этом чем более конкретна цель, тем более своеобразны будут стратегии еедостижения.191Зачем?Сделать использованиеЭВМ максимальнодоступным дляпользователейЧто?ВертикальнаяинтеграцияпрограммныхизделийКак?Продать ЭВМсерии Stella исистему ASKDATABASEСтратегическиепланыЦелеваяпрограммаЧто?Предоставлятьуслуги конечномупользователюТактическиепланыКто?Специалисты вобластифинансовойдеятельности.Где?В финансовыхслужбах.Как?Возможно, спомощьютерминалов илисетиРис.
8.3 — Отработка стратегийБолее конкретными являются тактические планы. Тактические планы отвечают на вопросы кто? и где?, т.е. конкретизируют способы достижения цели.192Стратегический план формулирует, что необходимо сделать для достижения цели и когда. Тактический план показывает, кто будет выполнять работу, как и когда (рис.