В разработке ПО несколько абсолютно разных культур работают вместе. Это программисты, разработчики баз данных, дизайнеры пользовательского интерфейса, тестировщики, аналитики, менеджеры, спонсоры проекта, группа маркетинга и в конце концов конечные пользователи. Деление на группы происходит и в других измерениях: новички и эксперты, рациональные и интуиты и т.п. Внутри каждой такой группы пропагандируются свои ценности, которые могут вступать в противоречие с ценностями других групп, однако каждая культура имеет определённые формы защиты для своего выживания, т.к. групповые или культурные ценности как правило способствуют лучшему вкладу в дело проекта... Как правило, но не всегда.
Обычной реакцией на обнаружение несоответствия ценностей является попытка изменить сами культуры. Например, убедить руководителя отменить все митинги и просто дать программистам работать над проектом "пока они всё не сделают", или попросить пользователей стать экспертами в ООП, или дизайнеров использовать формальные нотации... Группы пытаются изменить друг друга.
Происходит это потому, что ещё никто и никогда не пытался создать некую карту групповых ценностей и выяснить:
- какие части групповых стратегий позволяют им успешно делать своё дело?
- какие ценности для них характеризуют успешность-неуспешность?
- что ещё влияет на успех каждой группы?
- какие ценности и культурные характеристики могут быть безопасно изменены?
- где проходит грань между гармонией и конфликтом культур?
- как выглядит полная карта суммарной системы ценностей всех участников?
Результаты такой работы дали бы возможность:
1. Распознать все культуры, вовлечённые в проект, и их ценности.
2. Найти людей, способных работать по обе стороны разных культур и которые бы способствовать эффективной коммуникации культур и сглаживанию основных противоречий.
3. Информировать каждую из групп о целях и ценностях других групп, относиться к ним с должным вниманием и уважением и в то же время знать и использовать всё, что другая культура может им предложить.
4. Применить наработанные этнографические и антропологические техники для изучения каждой группы и обнаружения их сильных и слабых сторон.
Коротко говоря, это дало бы возможность при организации работы над проектом использовать объективные факты вместо желаний и догадок, как это делается сейчас.
Источники
1. Alistair Cockburn 'What can OO programming learn from anthropology?'