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