две команды по шесть студентов-старшекурсников из класса Рика Селби, заканчивающих обучение в Калифорнийском университете. Все это время они без устали трудились по заданию нашего отдела маркетинга над созданной на основе WWW игрой для программистов.
Селби, соавтор книги Microsoft Secrets, дал своему классу ряд наставлений, обеспечивающих достаточные гарантии того, что мы получим работающую игру Java Wars в срок, хотя бы и с неполностью реализованными возможностями.
Удивительно, но эти наставления напоминают мне о том, как переплетаются у Microsoft спецификации и разработка программного продукта. В результате игра очень смахивает на версию 1.0 одного из продуктов Microsoft (где-то в районе третьей версии программа Java Wars достигнет полных возможностей). Однако тут нам приходится проявлять терпимость к полной функциональности: мы не можем изменить дату выпуска.
Как и любой программный продукт Microsoft, обладающий своеобразной "формулировкой", которая постоянно уточняется менеджерами продукта, Java Wars имела формулировку достаточно неопределенную и впоследствии регулярно смещаемую.
Дело дошло до того, что мы изменили саму цель игры. Вместо выполнения языка ассемблера виртуальной машины Java, участники игры, названные "бойцами", теперь выполняют просто Java. Такое изменение наверняка будет способствовать привлечению внимания к игре.
Конкуренция на рынке вынуждает менеджеров программных продуктов компании Microsoft воздерживаться от написания детальных спецификаций программ; в нашем случае значительное давление оказывали сами учащиеся.
В действительности срок был настолько жестким, что спецификацию пришлось написать до того, как каждая команда смогла предпочесть один из двух возможных архитектурных подходов.
Первый подход предусматривал построение слоя Java Wars над виртуальной машиной Java. Это позволило бы полностью контролировать пространство памяти и тем самым "развести" в разные стороны программы бойцов Java Wars.
Второй подход подразумевал работу с исходными текстами виртуальной машины Java компании SuSoft. Он допускает изменения так, чтобы два бойца могли выполнять инструкции в одно и то же время и не были отгорожены друг от друга средствами Java (то есть сражались в пределах реальной виртуальной машины).
Кроме этого, студенты класса Селби заимствовали представление фирмы Microsoft о промежуточных выпусках, что представляет собой вариацию на тему быстрого прототипирования. Всевозрастающее количество законченных версий программы должно "отгружаться" и обновляться.
"Сначала получите простую версию, чтобы она работала, а затем наращивайте функциональность", - сказал Селби, обращаясь к своему классу.
Теперь я оставлю вас наедине с парой маркетинговых вопросов.
Следует ли обратить внимание на то, что версия 1.0 игры Java Wars не дает возможности недобросовестному бойцу "в ярости" наброситься на World Wide Web и разрушить другие программы Java. В конечном итоге мы действительно должны предусмотреть в Java средства, позволяющие программам "наступать" друг на друга. Может показаться, что это шаг назад, но какая же игра без конфликта?
Во-вторых, правомерно ли называть игроков "бойцами", или это выглядит "нормально" только в сфере развлечений и некорректно с политической точки зрения?