Польза от кристаллизации команд очевидна, если у вас имеется приятный опыт работы в такой команде. Но если такого опыта у вас нет, эта глава позволит до некоторой степени ощутить, каково это. Далее рассказывается о легендарной команде, известность которой начала формироваться в 60-е годы. Некоторые легенды, связанные с этой командой, наверняка приукрашивают действительность, но придают правдивой в остальном истории особое очарование.
Материал для легенд
На заре времен (скажем так) в штате Нью-Йорк существовала компания, производившая большие синие компьютеры. Компания также выпускала программное обеспечение для этих компьютеров. Клиенты компании были весьма достойными людьми, но, говоря между нами, имели обыкновение препротивно придираться к программам с ошибками. Какое-то время компания прилагала усилия к обучению клиентов, чтобы сделать их более терпимыми к ошибкам. Но из этого ничего не получилось, поэтому пришлось проглотить пилюлю и начать избавляться от ошибок.
Простой и очевидный подход – заставить программистов удалять все ошибки перед сдачей программы. Этот подход по какой-то причине тоже работал не очень хорошо. Похоже, программисты (по крайней мере, в те времена) были в целом слишком хорошего мнения о своих программах. Как они ни старались, найти все ошибки до последней не могли, поэтому часто объявляли о готовности программ, полных изъянов.
Тяжело было обнаружить последнюю ошибку, но некоторые тестеры справлялись лучше своих коллег. Компания сформировала группу из этих особо одаренных тестеров и предоставила ей право окончательного тестирования критических приложений перед отправкой их клиентам. Так родилась легендарная Черная команда.
Изначально в Черную команду входили люди, проявившие себя в тестировании и превосходившие в этом качестве своих коллег. У них было больше мотивации. Они тестировали также и чужой код, поэтому были свободны от когнитивного диссонанса, сковывающего разработчика при тестировании собственных программ. В конечном итоге руководители, сформировавшие команду, ожидали хотя бы скромных улучшений качества продуктов, но не более того. А вот получили они гораздо больше.
Удивительное заключалось не в том, насколько хороша была Черная команда на заре своего существования, а в том, насколько она улучшилась за последующий год. Происходило что-то волшебное: в команде началось формирование индивидуальности. Эта индивидуальность находилась под влиянием оппозиционной философии тестирования, созданной участниками группы. Философия гласила, что они должны желать и ожидать недостатков в программах.
Они вовсе даже не болели за разработчиков, но, напротив, находили наслаждение в том, чтобы подвергнуть программу (и программиста) испытаниям, которые были бы не просто тестом. Когда программист приносил программу на тестирование в Черную команду, он чувствовал себя, как на аудиенции у Мина Беспощадного14
.Жалкие земляне, кто вам теперь поможет?
Поначалу просто ходили шутки, что тесты Черной команды подлые и скверные и что участникам группы очень нравится, когда код работает неправильно. Затем шутки закончились. Члены команды начали культивировать образ разрушителей. Они разрушали не только ваш код, но и весь ваш день. Они делали нечеловечески несправедливые вещи, чтобы добиться сбоя: перегружали буферы, сравнивали пустые файлы, набирали возмутительные последовательности на клавиатуре. Взрослые мужчины и женщины начинали плакать, когда видели ужасное поведение своих программ в руках сумасшедших врагов. Чем хуже вам приходилось, тем большее удовольствие получала группа тестирования.
Чтобы усилить неприятный образ, участники команды начали носить черное (отсюда и название «Черная команда»). Они взяли в привычку страшно фыркать, когда программа давала сбой. Некоторые отращивали длинные усы, которые крутили, подражая Саймону Легри15
.Они собирались, чтобы придумывать еще более ужасные тестовые уловки. Программисты начали перешептываться о душевнобольных из Черной команды.