Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПІК / Практическое_руководство_по_ПИК.doc
Скачиваний:
24
Добавлен:
05.06.2015
Размер:
1.99 Mб
Скачать

Навыки руководства

Для разработки ПИ-ориентированного прикладного ПО требуются сильные навы­ки в области управления проектами. На этапе изучения проекта специалисты по раз­работке испытывают трудности при выполнении разного рода оценок.

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

Полезное правило. Очень внимательно прислушивайтесь к тому, как люди вы­ражают свои личные обязательства: "Я сделаю это как можно лучше" или просто "Я сделаю это".

Оптимальный уровень детализации плана. Расписание и отслежива­ние работ и контрольных событий должно быть представлено в планах реализации с оптимальной степенью детализации. Каждый этап — это работа, которую необходимо выполнить (например, проектирование ПИ, спецификация, тестирование практич­ности, итерация, проект реализации, реализация и тестирование ПО для каждого компонента), какой бы трудной она не казалась.

Забота об обучении. ПИ-ориентированная разработка приложений отлича­ется сложностью и требует квалифицированных разработчиков (рис. 4.3). Руково­дство должно способствовать приобретению навыков бригадой разработчиков и осу­ществлять соответствующие мероприятия в области обучения специалистов. Частью обучения является планирование ПИ-ориентированной разработки ПО. Проектиро­вание и разработка спецификации ПИ-ориентированного приложения безусловно требует дополнительного времени.

Различные способы измерения продуктивности проекта. Из-за сложности продуктивность ПИ-ориентированных приложений трудно поддается из­мерению. В качестве цели может использоваться более высокий уровень удовлетво­ренности пользователей и более высокая продуктивность по сравнению с сущест­вующим ПО; достижение этой цели следует соответствующим образом измерять, от­слеживать и вознаграждать. В случае объектно-ориентированного подхода для оценки продуктивности могут потребоваться различные метрики. Одно из преимуществ объ­ектно-ориентированного подхода— повторное использование. Следовательно, важ­ным моментом в работе ориентированной на пользователей бригады разработчиков продукта является основанная на измерениях оценка, а также поощрение эффектив­ной разработки и повторного использования ПО.

Управление введением технологических новшеств. Введение но­вых технологий в разработку ПО без солидной подготовки повышает проектный риск. Поэтому важная задача управления заключается в продуманном введении тех­нологических новшеств (в частности, контроль за уровнем навыков бригады и вре­менным ресурсом календарного плана).

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

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

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

Полезное правило. Если в вопросе ответственности существует путаница, проект не достигнет поставленных целей.

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

Аналогия

Сейчас мы продолжим исследование вопросов развития навыков и формирования проектной бригады, прибегнув к аналогии со спортом. Конечная цель бригады (или команды) по разработке ПО — завоевание Суперкубка по программированию. В раз­работке ПО, как и в спортивном мероприятии, цель состоит в том, чтобы выиграть. Тренеры и команда должны быть настроены на победу, а игроки должны обладать на­выками, необходимыми для того, чтобы играть и выигрывать. В табл. 4.4 приведены некоторые требования к спортивным командам, которые можно также отнести к бри­гадам разработчиков ПО.

Владелец/генеральный менеджер. Существует только один владелец и генеральный менеджер спортивной команды, хотя партнеров может быть много. Яс­но, что владелец команды должен решить, в какую игру будет играть команда ("дело, которым мы занимаемся, это..."), он задает цели, которые излагает в ясной форме. Если цель состоит в том, чтобы выиграть, команде следует рассказать и показать, как это сделать. Таким образом, наиболее важная задача владельца — выбор тренеров.

Тренерский состав. Хотя команду может тренировать несколько тренеров, главный тренер всегда один. Тренеры-ассистенты работают с определенными "подкомандами" по развитию определенных навыков. В обязанности тренера входит отбор и обучение игроков, знание способов использования и совершенствования на­выков игроков, разработка выигрышных планов игры и стратегий. Команду также может возглавить играющий тренер, который выполняет двойные обязанности. Точ­но так же, приступая к разработке ПО, сперва назначают тренера, на которого возла­гается ответственность за непрерывное и последовательное обучение команды, соз­дание необходимых условий для игры (что особенно важно для крупных проектов с большой продолжительностью). От этих обязанностей нельзя отказываться, ссылаясь на небогатый опыт.

Тренерский состав переводит поставленные владельцем задачи в оперативные це­ли, т.е. цели, которые каждый игрок может понять, принять и реализовать. Напри­мер, если цель состоит в завоевании Суперкубка, то оперативные цели одного из за­щитников могут заключаться в достижении 60%-ного уровня отбора мяча при менее чем одном нарушении на 20 отборов. Распространяя аналогию на разработчиков ПО, добавим, что для каждой разрабатываемой компоненты следует установить оператив­ные метрики для практичности, ПИ и другие программные метрики.

Игроки и команды. В зависимости от характера игры от игроков требуются разные навыки и различная степень игрового взаимодействия. В случае командных велогонок требуются выносливые игроки с навыками гонки, а игровое взаимодейст­вие во время состязаний очень невелико. Если взять, скажем, футбол, то все игроки должны владеть определенными навыками (удар, пас, ведение мяча), а от некоторых требуются еще и дополнительные навыки (например, вратарские), причем для нала­живания игры необходима высокая степень игрового взаимодействия.

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

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

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

Игровые навыки. Завоевание победы невозможно без обладающих необхо­димыми навыками и выносливостью игроков. Коллектив игроков в целом должен об­ладать высоким мастерством, необходимым для достижения командных целей. Вы­дающегося командного мастерства можно достичь благодаря преданности своему делу,1 постоянным тренировкам, сборам, созданию соответствующих условий, настав­ничеству и, конечно, практике.

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

Таблица 4.4. Разработка ПО как спортивная игра

Требование Объяснение

Владелец/генеральный менеджер Один руководитель

Тренерский состав (тренер, Обучает игроков; разрабатывает стратегию игры; помощники, играющий тренер) планирует игру; устанавливает оперативные цели

Игроки (широкой квалификации, Игроки, которые выполняют одну функцию; узкой квалификации, капитан) которые играют несколько ролей; один игрок,

который выполняет роль "капитана" и

подает слышимые команды

Комната для биометрической Забота о соответствующих условиях развития диагностики игроков, обусловленная решением конкретных задач

Тренировочный сбор Практические навыки и отработка коллективных

Действий

Тренировочная игра Проверка уровня качества команды

Тренировочный фильм Просмотр перед игрой, чтобы увидеть соперников в

действии

Игровые установки Игровые ходы, которые предстоит использовать

команде

План игры (цели и игровые Игровые установки на конкретную игру

установки)

Практика Игрок = основные навыки + моделирование плана игры;

команда = моделирование плана игры

Игра Выполнение игровых установок и плана игры;

ведение статистики и счета; подача команд и

внесение корректив в игру; выигрыш

Продолжение обсуждения проекта: ориентированная на пользователей бригада по разработке продукта

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

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

Поскольку вышестоящая организация стремится как можно быстрее отреагиро­вать на действия конкурентов и воспользоваться благоприятными возможностями, лидер проекта получил указание определить количество и квалификацию специали­стов до завершения высокоуровневого проекта, ориентированного на пользователей. Лидер проекта должен представить информацию завтра в 7.30 утра и просит вас под­готовить свои предложения. Уходя из вашего офиса, он сказал: "У вас может быть карт-бланш, но будьте благоразумны! И не забудьте включить людей, знающих то, с чем имеют дело пользователи!"

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

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

• Критические навыки, необходимые бригаде.

• Порядок возникновения потребности в тех или иных навыках.

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

• Обучение бригады, совершенствование навыков специалистов.

• Вероятные назначения и организация работы бригады.

• Управленческие, организационные и групповые вопросы.

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

Вопросы?

Ссылки

Nielsen J. Usability Engineering, Academic Press: New York, 1993.

Pinchot G. Interpreneuring, Harper and Row: New York, 1985.

Rodgers S.H., ed., Ergonomic Design for People at Work, Van Nostrand Reinhold: New York,

1983.

Rubin J. Handbook of Usability Testing, John Wiley & Sons: New York, 1994. Torres R. Graphical User Interfaces: Development Skills, Share 82 Conference, Aug. 1993. Torres R. et al. The Rule Book A Guided Rule-Building Expert System, IBM Technical Report TR

71.0039, April 1994. Wegner P. Dimensions of Object-Based Languge Design, Proceedings of ACM Conference on

Object Oriented Programming, Systems and Languages, 1987.

Соседние файлы в папке ПІК