Слайд 2Разработка ПО как кооперативная игра
Алистэр Коуберн – автор идеи.
"делать больше программного инжиниринга«
Надо
найти другую модель, которая могла бы:
Объяснить, почему одни проекты удаются, а другие – нет;
Перечислить аспекты разработки, которые действительно необходимы для успешности проекта;
Подсказывать участникам проекта правильное решение проблем, возникающих по ходу проекта.
Слайд 3Разработка ПО как кооперативная игра
Модель кооперативной игры
Игры отличаются по:
Кол-ву участников
Типу взаимодействия участников
Продолжительности
Слайд 4Разработка ПО как кооперативная игра
По продолжительности выделяют:
Цель бесконечной игры – в ее
продолжении
Среди конечных игр можно выделить те, которые заканчиваются по достижении заранее поставленной цели; другие заканчиваются в любой момент, когда того захотят участники.
Слайд 5Разработка ПО как кооперативная игра
По типу взаимодействия бывают:
игры-соревнования – антагонистические игры.
кооперативные игры,
основанные на взаимодействии и взаимопомощи участников.
Слайд 6Разработка ПО как кооперативная игра
Разработка ПО - кооперативная игра, которая заканчивается после
достижения определенной цели. (Коуберн).
2 цели программистов:
Поставить заказчику систему;
Создать основу для следующей игры.
Обе эти цели конкурируют между собой и претендуют на ограниченные ресурсы команды.
Слайд 7Разработка ПО как кооперативная игра
Стратегия единичной игры и последовательности игр могут довольно
существенно отличаться друг от друга.
Слайд 8Разработка ПО как кооперативная игра
Проекты с открытым исходным кодом –
нет ограничений
по ресурсам,
нет конечной точки.
Игра заканчивается как только игрокам станет неинтересно.
Слайд 9Разработка ПО как кооперативная игра
Не существует универсальной формулы, позволяющей выигрывать в играх.
Есть только стратегические приемы и навыки, которые могут быть полезны в той или иной ситуации.
Слайд 10Разработка ПО как кооперативная игра
Сущность разработки программного обеспечения состоит в том, что
люди что-то изобретают в процессе общения:
Они работают над проблемой, которую могут недопонимать, причем проблема может изменяться в процессе работы;
Они вырабатывают решение, правильность которого не гарантирована, и которое может изменяться в процессе работы;
Слайд 11Разработка ПО как кооперативная игра
Люди выражают свои мысли на искусственных и весьма
ограниченных языках, которые они недопонимают, и которые могут изменяться в процессе работы. Причем адресат, которому передаются выраженные таким образом мысли, не прощает ошибок и неточностей.
Любой фактор, усложняющий или ограничивающий распространение информации, будет замедлять весь проект.
Слайд 12Разработка ПО как кооперативная игра
Способность (Ability). Сочетание таланта, умения и навыков.
Сообщество
(Community). В это понятие входит дружелюбие, доверие, моральное состояние, а также общие переживания и опыт.
Общение (Communication). Основывается на наличии общего словаря, близости и коммуникационных технологиях.
Индивидуальность (Individuals).
Слайд 13Разработка ПО как кооперативная игра
Изобретательность – необходимая составляющая разработки ПО.
В процессе
продумывания решения создаются маркеры и используются реквизиты.
Основные функции маркеров и реквизитов:
Напоминание
Вдохновение
Информирование
Слайд 14Разработка ПО как кооперативная игра
Основные составляющие, необходимые для успеха любого проекта по
разработке ПО:
сотрудничество,
общение,
цена,
качество
достаточность коммуникации.
Слайд 15Разработка ПО как кооперативная игра
Дополнительные моменты:
талант и умения каждого индивида,
отношения
между этими индивидами в парах и в группах,
ценность и сохранение «сработавшихся» команд,
сокращающиеся доходы при использовании в процессе тщательного моделирования и документации,
важность умения учиться и применять разные стратегии в разных ситуациях.
Слайд 16Разработка ПО как кооперативная игра
«Слаженная команда»
«Ежедневный уход» за новичками
Концепция «достаточности» в
коммуникации
Чтобы защитить интересы и нужды последующих игр, надо сделать так, чтобы у тех, кто принимает решения сейчас, была прямая заинтересованность в исходе следующих игр.
Примеры объяснения «аномалий»:
кофейные аппараты
командный дух.