- •Глава I
- •Глава 2 Проектирование через поставки с ориентацией на пользователя
- •Точка зрения пользователя
- •Глава 3
- •Глава 4
- •Навыки руководства
- •Глава 5
- •Глава 6
- •Методы вовлечения пользователей проект на этапе конструирования
- •Методы вовлечения пользователей в проект на этапе оценки продукта
- •Глава 7
- •Часть 2
Навыки руководства
Для разработки ПИ-ориентированного прикладного ПО требуются сильные навыки в области управления проектами. На этапе изучения проекта специалисты по разработке испытывают трудности при выполнении разного рода оценок.
Стремиться лучше управлять людьми и бригадой. Ключевой фактор успешной разработки ПИ-ориентированного программного обеспечения— это сплоченная команда. Необходимо постоянно следить за формированием бригады, а также за ее взаимодействием с другими бригадами. Руководство должно прислушиваться к бригаде разработчиков, в особенности к их заботам и взглядам.
Полезное правило. Очень внимательно прислушивайтесь к тому, как люди выражают свои личные обязательства: "Я сделаю это как можно лучше" или просто "Я сделаю это".
Оптимальный уровень детализации плана. Расписание и отслеживание работ и контрольных событий должно быть представлено в планах реализации с оптимальной степенью детализации. Каждый этап — это работа, которую необходимо выполнить (например, проектирование ПИ, спецификация, тестирование практичности, итерация, проект реализации, реализация и тестирование ПО для каждого компонента), какой бы трудной она не казалась.
Забота об обучении. ПИ-ориентированная разработка приложений отличается сложностью и требует квалифицированных разработчиков (рис. 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.