Главное в написании программы для определения победителя не выбор языка программирования или методики разработки. Все начинается с алгоритма. Ни один программист не может начать писать код, пока не будет ясна логика работы приложения. Если алгоритм ошибочен, программа будет работать неэффективно, выдавать неточные результаты и тому подобными способами не оправдывать ожиданий.
Приятное с полезным
Разговоры по поводу оптимизации старых алгоритмов и создания новых, скажем честно, по большей части довольно скучны. Заниматься извлечением и анализом скучных старых корпоративных данных, конечно, важно, но иногда жизнь подбрасывает и гораздо более интересные задачи. И конечно, конкурс, который спонсирует телесеть ESPN, а организует компания TopCoder, должен привлечь внимание многих разработчиков. Хотя бы из-за размеров предлагаемых призов.
Задачка очень любопытная как с технической точки зрения, так и с точки зрения бизнеса.
"Мы пытаемся создать алгоритм, который предсказывал бы результаты матчей на основе данных о предыдущих выступлениях команд", - объясняет менеджер по проекту ESPN из компании TopCoder Билл Этвуд. В ESPN планируют применить полученные результаты для прогнозов результатов, которые будут передавать и во время трансляций, и в предварительных обзорах игр. Точность прогнозов позволит ESPN привлечь к экранам и на свой сайт больше зрителей и обойти конкурентов, указывает Этвуд.
Другими словами, проект не только сам по себе интересный, но у него есть и реальные деловые приложения, а полученные результаты можно будет без труда применить и к более скучным задачам ИТ. Можно было бы и сразу построить его на таком материале, но вряд ли это вызовет энтузиазм у программистов.
С точностью 77%
Как подробно объясняется на сайте ESPN, разработчикам будет предоставлен огромный объем данных: подробные описания всех матчей университетской лиги за четыре сезона.
Конкурс пройдет в четыре этапа. Предварительный этап уже прошел во время первой части футбольного сезона. Участники конкурса TopCoder усердно поработали. "За первые две недели мы получили фантастические результаты", - заявил старший вице-президент TopCoder Майк Моррис. Десятка лидеров конкурса предсказала 77% победителей игр, а это сопоставимо с наилучшими прогнозами букмекерских контор, утверждают в TopCoder.
"За первую неделю мы предсказали поражение Теннесси от Калифорнийского университета, тогда как по букмекерским ставкам Теннесси шел впереди со спредом 7,5 очка, - с гордостью заявил Моррис. - Во вторую неделю мы точно предсказали Мэриленду победу над Средним Теннесси с отрывом в 13 очков".
Сейчас участники конкурса проводят настройку алгоритмов для официального зачета.
"Вот вам схема, я пошел"
Организаторы используют любопытную бизнес-модель, которую Этвуд называет "мудрость наилучшего". Люди, которые способны придумать блестящий алгоритм, не всегда оказываются хорошими программистами для выполнения повседневных задач, а изобретение такого алгоритма может понадобиться только один раз в году. После этого разработка идет своим чередом, код пишется, и для алгоритмического гения больше нет работы. Конкурсы, подобные этому, позволяют компании заплатить только за один самый важный ответ. Другими словами: "Вот вам самая лучшая схема, а я пошел".
Конкурсы алгоритмов, которые проводит TopCoder (их много), нацелены именно на эту специфическую нишу, пояснил Этвуд. Поскольку разработчики соревнуются в написании лучшего алгоритма (лучшего — в данном случае дающего самый точный прогноз), то клиент может быть уверен, что алгоритм, за который он платит, действительно качественный. Это, как считает Этвуд, очень эффективная модель.
Она привлекательна и для разработчиков. Приз за первое место составляет 50 тыс. долл., и его дадут автору лучшего алгоритма - того, который покажет лучшие результаты по всему сезону университетской лиги (за исключением первых двух недель). Суммарный призовой фонд составляет 100 тыс. долл., и остальные деньги будут распределены между теми, кто займет места со второго по пятое.
Впрочем, задача эта не только для любителей американского футбола. В тройке лучших в таблице лидеров — участники из Польши, Египта и США. Чтобы объяснить разработчикам, как все устроено в американском футболе, Уилл Харрис из ESPN ведет блог Football 101, где помещаются обзоры игр, советы и справочная информация по этому виду спорта. Технической стороной проекта занимаются сотрудники TopCoder.