Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

grischenko-proj-management / lectures / lecture-09-conspect

.pdf
Скачиваний:
32
Добавлен:
03.03.2016
Размер:
198.12 Кб
Скачать

1

Менеджмент проектов программного обеспечения Лекция №9: «Формирование команды (часть 2)»

1.Эпоха перемен

1.Все в мире стало непрерывно и стремительно изменяться. Изобилие стало причиной острейшей конкуренции. Инновации — неотъемлемый атрибут нашего времени. «Если у вас медленный доступ в Интернет, вы можете навсегда отстать от развития информационных технологий». Практика должна постоянно перестраиваться применительно к новым и новым условиям. Пример. Hewlett-Packard получает большую долю прибыли на товарах, которые год назад даже не существовали

2.Глобализация. Всеобщая взаимозависимость и взаимосвязанность. Транснациональные компании. Бизнес идет туда, где дешевле рабочая сила. Интернет. Конкуренция без границ. Пример. Google. За ночь любой из нас в принципе может создать многомиллионную компанию у себя в гараже. С помощью Интернета вы можете выйти на рынок, на котором более 100 млн. потребителей.

3.Все решают таланты. Простая мобилизация средств и усилий уже не может обеспечить прогресс. Вспомним Ф. Брукса [2], «Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше». Идею богатства теперь связывают не с деньгами, а с людьми, не с финансовым капиталом, а с «человеческим». Рынок труда превращается в рынок независимых специалистов и его участникам все больше известно о возможных вариантах выбора. Работники интеллектуального труда начинают самостоятельно определять себе цену.

2.Виды деятельности

1.Репродуктивная деятельность (труд) является слепком, копией с деятельности другого человека либо копией своей собственной деятельности, освоенной в предшествующем опыте. Такая деятельность, как, например, труд токаря в любом механическом цеху, или рутинная повседневная деятельность менеджера-управленца на уровне раз и навсегда усвоенных технологий.

2.Продуктивная деятельность (творчество) — деятельность, направленная на получение объективно нового или субъективно нового (для данного работника) результата.

3.Репродуктивная деятельность уходит в прошлое. В постиндустриальном обществе интеллект — основная производственная сила. Сегодня от 70 до 80% всего, что сегодня делается людьми, производится при помощи их

2

интеллекта [5]. В любом товаре, сделанном в США, доля зарплаты составляет 70 процентов (в России, пока, — только 30, очень надеюсь что пока). Но это в среднем по всем товарам. Что касается разработки ПО, то почти все, что в этой отрасли производится, создается при помощи интеллекта.

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

3.Почему прежние методы управления людьми не работают?

1.Происходят из индустриального и аграрного прошлого

Прежние методы управления происходят из нашего индустриального и аграрного прошлого, где один день был очень похож на другой. Эффективность зависела от согласованной работы масс. Работа не требовала большой изобретательности. «Тотальный контроль», «нормирование», «пряник и кнут», «человеческий ресурс — «винтик», который легко заменить», — вот главные принципы эффективного менеджмента предыдущих эпох. Чем больше взмахов веслами в единицу времени, тем быстрее идет галера, тем эффективнее работают гребцы!

2.В программировании мало повторяющихся задач

В программировании мало повторяющихся задач, нет места для репродуктивной деятельности. После третьего повторения однотипного действия программист пишет утилиту, которая это действие автоматизирует раз и навсегда.

3.Интеллектуальное творчество нельзя нормировать и контролировать

Бессмысленно сажать за спиной программиста нормировщика-контролера с секундомером. Что он увидит и измерит? Количество написанных строк кода? Исправленные ошибки? Количество реализованного функционала?

4.Специфика разработки программного обеспечения

1.Программирование (не кодерство) работа творческая

Косвенно об этом свидетельствуют высокая неопределенность при разработке программных систем, разброс производительности программистов на порядок и доля провальных программных проектов более 80%.

2.Программирование — это ремесло

Программирование это не искусство, в том смысле, что оно не является «творческим отражением и воспроизведением действительности в художественных образах». Об искусстве в программировании можно и

3

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

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

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

5.Задачи менеджмента программных проектов

1.Найти нужных людей.

2.Дать им ту работу, для которой они лучше всего подходят.

3.Не забывать о мотивации.

4.Помогать им сплотиться в одну команду и работать так дальше.

6.Группа или команда?

1.Группа объединена формально для выполнения связанных работ

2.Команда способна к самоорганизации , самоуправлению и развитию

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

4

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

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

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

7. Командные роли

Тип

Описание

Достоинства

Допустимые

 

 

 

недостатки

 

 

 

 

Генератор идей

Оригинальный мыслитель, который дает жизнь

Креативен, решает

Отстаивает право

 

новым идеям. Независимый сотрудник с

сложные проблемы.

собственности на

 

развитым воображением, но подобно

 

идею, пренебрегает

 

остальным людям имеет негативные черты

 

сотрудничеством.

 

характера — может быть чрезмерно

 

 

 

чувствителен к критике. Для успеха генератору

 

 

 

идей необходимы конструктивные отношения

 

 

 

с руководителем или координатором группы.

 

 

 

 

 

 

Исследователь

Так же, как и генератор идей, в состоянии

Он легко общается с

Быстро «угасает»,

ресурсов

привнести новые идеи в группу, но эти идеи

людьми. Если нужно

теряя интерес к

 

будут заимствованы извне, благодаря широким

провести переговоры,

начатому делу.

 

контактам. Несколько бесцеремонный, гибкий

лучшего кандидата не

 

 

и ищет благоприятные возможности. Обычно

найти.

 

 

разговаривает по телефону или находится где-

 

 

 

нибудь на встрече. Не дает развиваться

 

 

 

групповой инертности. К отрицательным

 

 

 

качествам характера относятся лень,

 

 

 

самодовольство и, иногда, требуется кризис

 

 

 

или давление обстоятельств, чтобы

 

 

 

мотивировать его.

 

 

 

 

 

 

5

Координатор

Обычно формальный лидер группы. Руководит

Умеет задействовать

Может присваивать

 

и направляет группу в сторону достижения

ресурсы группы,

достижения команды.

 

целей. Может заранее определить, кто из

обобщает. Ставит цели.

 

 

работников хорош для выполнения

Руководит.

 

 

необходимых задач. Обычно спокойный,

 

 

 

уверенный и распорядительный. Однако

 

 

 

иногда склонен к излишнему доминированию,

 

 

 

и группа становится продолжением его

 

 

 

сильного «Я».

 

 

 

 

 

 

Мотиватор (шейпер)

Энергичный и в состоянии внедрять идеи.

Бросает вызов,

Не сдержан в

 

Видит мир как проект, который требует

подталкивает к

выражениях и не

 

внедрения. Обычно уверенный, динамичный,

действиям. Обладает

способен исправить

 

эмоциональный и импульсивный. Мотор

напором и мужеством

ситуацию с помощью

 

группы, но может быть раздражительным,

преодоления

юмора или извинения.

 

несдержанным, нелюбезным.

препятствий.

 

 

 

 

 

Аналитик (критик)

Оценивает предложения и занимает позицию

Дает взвешенную

Внушает пессимизм,

 

наблюдателя за продвижением. Не дает группе

оценку идей.

циничен.

 

двигаться неправильным путем.

 

 

 

Осмотрительный, бесстрастный, имеет

 

 

 

аналитический склад ума. Может казаться

 

 

 

равнодушным, незаинтересованным, иногда

 

 

 

становится чрезмерно критичным.

 

 

 

 

 

 

Вдохновитель

Стремится объединять и вносить гармонию в

Устраняет трения в

Нерешительность.

команды

отношения между членами группы. Занимает

команде, сплачивает.

Избегает конфликтных

 

позицию понимающего чужие проблемы,

Умеет слушать других.

ситуаций.

 

стремится помочь и сглаживает конфликты. По

 

 

 

натуре человек добрый, стремится налаживать

 

 

 

неформальные отношения. Однако бывает

 

 

 

нерешительным в сложных или кризисных

 

 

 

ситуациях.

 

 

 

 

 

 

Реализатор

Может преобразовать стратегический план в

Эффективен,

Оказывает

 

конкретные управленческие задачи, которые

организован,

сопротивление

 

доступны для решения. Хороший организатор,

практичен. Претворяет

нововведениям.

 

методичный и прагматичный.

идеи в практические

 

 

Идентифицируется с группой, лояльный и

дела.

 

 

честный сотрудник. Однако может быть

 

 

 

негибким, непреклонным.

 

 

 

 

 

 

Контролер (педант)

Отлично умеет создавать отчеты о работе

Добросовестно

Навязчивое

 

группы. Озабочен точным выполнением взятых

совершенствует. Ищет

стремление к

 

обязательств и старается не упускать из виду

ошибки и упущения.

достижению

 

даже мелких деталей. Заставляет

 

совершенства во всем.

 

придерживаться точного расписания дел, но

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

может становиться излишне тревожным.

 

 

 

 

 

 

Специалист

Профессионал, самостоятелен стремится стать

Увлечен и

Игнорирует факты вне

 

экспертом в своей области. Обладает высокой

высокопрофессионале

области своей

 

профессиональной/технической экспертизой и

н.

компетентности.

 

знаниями, гордится своей работой. Приносит

 

 

 

вклад только в узкой сфере своей

 

 

 

профессиональной экспертизы.

 

 

1.В разных командах и разных проектах человек может выполнять различные роли.

Ошибка подбирать в команду подобных себе людей. Правильно подобранные «лебедь, рак и щука», как правило, оказываются гораздо успешнее «родственных душ». Единообразие — это единомыслие и стагнация.

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

8.Неэффективный программист

1.Не соблюдает инструкции

2.Плохо контролирует время

3.Не любит, когда контролируют его работу

4.Не обращает внимание на качество работы

5.Не может сконцентрироваться на работе

6.Имеет личные проблемы

7.Преувеличивает свои способности

8.Не исполняет свою долю работы

9.Не любит изменений в работе

10.Не сообщает об ошибках

11.Не лоялен по отношению к своей компании

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

7

9.Эффективный программист

1.Учитывает время, затраченное на работу над проектом;

2.Учитывает найденные дефекты;

3.Классифицирует типы дефектов;

4.Оценивает размер задачи;

5.Освоил систематический подход к описанию результатов тестирования;

6.Планирует программные задачи;

7.Распределяет их по времени и составляет график работы;

8.Выполняет индивидуальную проверку проекта и архитектуры;

9.Осуществляет индивидуальную проверку кода;

10.Выполняет регрессионное тестирование.

10.Эффективный программист в команде

1.Занимает активную позицию, стремится расширить свою ответственность и увеличить личный вклад в общее дело.

2.Постоянно приобретет новые профессиональные знания и опыт, выдвигает новые идеи, направленные на повышение эффективности достижения общих целей, добивается распространения своих знаний, опыта и идей среди коллег.

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

4.Четко осознает свои личные и общие цели, понимает их взаимообусловленность, настойчиво стремится к их достижению.

5.Уверен в себе и в своих коллегах, объективно оценивает их достижения и успехи, внимательно относится к их интересам и мнениям, активно ищет взаимовыгодное решение в конфликтах.

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

11.Наем сотрудников

1.Экзамен вредит

Маловероятно, что в своей ежедневной деятельности в компании человек будет реализовывать стандартные механизмы сортировки и сложные обработки массивов. С другой стороны экзамен способен отсеять совсем ненадежных кандидитов.

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

12.Вопросы на собеседовании

8

1.«Что вы сделали?»

1.Вопросы:

1.Что вы можете рассказать о вашем самом успешном проекте (если студент, то тема диплома или самый интересный учебный предмет).

2.Что вы считаете своей наибольшей профессиональной удачей?

3.Что вам меньше всего нравилось делать на прежней работе?

4.Почему хотите поменять место работы?

2.Что оцениваем:

3.Эмоции и заинтересованность кандидата при ответах. Нет «горения» — «не зачет». «Вполнакала проекты не делаются» — очень точная формулировка И. Ставинского (цитата по [46]). Вряд ли, вам удастся его «зажечь». К вашей работе он будет относиться так же.

4.Логическая последовательность, лаконичность и ясность повествования. Разработка программ это наполовину общение. Умение четко формулировать и объяснять так, чтобы это было понятно 10-летнему ребенку — необходимое качество. Уточняйте детали, даже если вы знаете, что такое «комформное отображение», попросите кандидата объяснить, что он имел в виду, в двух словах.

5.Зрелость личности. Если кандидат винит в своих неудачах коллег, окружение, начальство — несамостоятельная личность. Если не вспоминает коллег при рассказе о своих достижениях — возможно, недооценивает важность эффективного взаимодействия.

2.«Что вы хотите делать?»

1.Вопросы

1.Чем бы вам определенно не хотелось заниматься?

2.Если бы работу выбирали вы, что бы это было?

3.Какие качества вы цените/порицаете в коллегах?

4.Как вы видите развитие своей карьеры?Предложите ситуации связанные с будущей работой:

2.Предложите ситуации связанные с будущей работой

1.Предложите некорректную задачу (которая при заданных условиях имеет множество решений). Например, построить дом,

(с) Джоэл Сполски, или «Определить количество бензоколонок в Москве» (с), rsdn.ru. Если кандидат спешит выдать первое пришедшее в голову решение — «не зачет».

2.Предложите ситуацию на умение взаимодействовать, попробуйте

9

отрицать что-то бесспорное для кандидата и поспорить с ним.

3.Что оцениваем:

1.Целеустремленность. Если у человека есть ясное видение своих профессиональных целей и стратегии их достижения, а у вас есть проект, на котором он может свои цели реализовать, скорее всего, это «ваш человек». Даже если знаний и умений пока недостаточно. Желания «просто работать» мало. Скорее всего, человек мотивирован на избежание неудач, а не на достижение успеха. От такого трудно ожидать инициативы, поиска новых возможностей и творчества.

2.Умение анализировать проблему, проводить ее декомпозицию на более простые компоненты, определять последовательность действий, синтезировать и обосновывать предлагаемое решение.

3.Способность к диалогу и эффективному взаимодействию. Умение рассуждать, задавать вопросы, анализировать ответы, искать взаимовыгодное решение в конфликтных ситуациях.

3.«Какие у Вас есть вопросы?»

1.Вопросы, которые обычно ожидаются:

1.Что за проект, в котором предстоит работать: Какие цели? Когда начат? Каково состояние? Сколько человек постоянно на проекте? Опытность команды? Распределение ролей? Какова текучесть?

2.Как организован процесс разработки ПО: Используемые технологии и подходы? Средства автоматизации? Техническое обеспечение? Принятие решений? Постановка задач? Отчетность и оценка результатов? Авралы? Сверхурочные?

3.Система мотивации?

4.Что оцениваем:

1.Факт наличия вопросов говорит об активной позиции и заинтересованности кандидата в работе.

2.«Правильные вопросы» свидетельствуют об опытности специалиста.

13.Методы наема на работу:

1.Нанять человека на месяц и дать ему задание по проекту, на который вы его нанимаете. Через месяц вы увидите человека и человек увидит вас, что позволит принять более обоснованное решение о дальнейшем сотрудничестве.

2.Предложить человеку поработать в каком-либо Open-Source проекте. Это покажет как человек умеет разбираться в чужом коде и какой код он

10

пишет сам. Скорее всего эту работу тоже придется оплатить. Недостаток — вы не узнаете насколько хорошо человек вольется в коллектив.

Список литературы

1.С. Архипенков. Руководство командой разработчиков программного обеспечения: Прикладные мысли. http://citforum.ru/SE/project/app_thoughts/

2.Брукс Фредерик, "Мифический человеко-месяц, или Как создаются программные комплексы", Пер. с англ., СПб., Символ-Плюс, 1999.

Соседние файлы в папке lectures