(консольное подразделение Atari) к тому времени продало уже около 50 тысяч копий. Однако и после этого клоны игры выпускали все новые и новые фирмы, а хроники «тетрисовых» судебных слушаний становились обыденными новостями. Сам Пажитнов, основав в 1996 году фирму The Tetris Company, в надежде хоть на какие-то лицензионные отчисления, так и не получил адекватного вознаграждения.
ФМ-ВЕЩАНИЕ: Само— или Тамореализация?
На круглом столе, который проводил Сергей Рыжиков на Microsoft WebDevCon’06, обсуждалась тема о заказе разработок веб-приложений. Кому их заказывать — внутреннему подразделению компании или стороннему разработчику? Как их разрабатывать — с нуля или на основе тиражных разработок? Правда, всегда есть еще и пятый вариант — ничего не делать.
Вполне естественно, что с веб-приложений обсуждение плавно перетекло на любые IT-системы. Так как время круглого стола на конференции ограничено, то почему бы не продолжить обсуждение в журнале. Для затравки могу примерно повторить свою позицию применительно к уникальным веб-проектам. Что делать, если у вас возникла уникальная или инновационная технологическая бизнес-идея? Примерных аналогов в мире раз-два и обчелся, на тиражных продуктах сверху надстроить что-нибудь вряд ли получится. Выхода другого нет, как писать систему с нуля.
Главное — погасить первый душевный порыв и не писать систему самому на коленке. Естественно, некий прототип вы напишете, установите его на виртуальном хостинге, «это» даже будет работать на ограниченном числе клиентов, транзакций или что вы там будете обрабатывать. Но как только начнется настоящая работа, реальная нагрузка на систему, вы начнете работать одновременно директором, бухгалтером, системным администратором, поднимающим ночью упавший сервер, программистом, срочно латающим дыры в безопасности, логистом и бог знает кем еще. В сутках, конечно, 24 часа, но явно не 48. Я думаю, все интернетчики это проходили, а некоторые до сих пор думают, что это нормально.
Итак, страстей порыв погашен, приступаем к выбору вариантов. Вариантов, собственно, не так и много. Можно организовать у себя группу разработчиков, выбрать из них или нанять правильного руководителя проекта, объяснить ему задачу, поставить срок для запуска (предположим, шесть месяцев) и начать платить зарплату. Так как, по одному из принципов Паркинсона, «работа занимает все отведенное на нее время», то через шесть месяцев от руководителя проекта поступит предложение удлинить срок еще на шесть месяцев. Один мой знакомый разработчик вполне серьезно утверждал, что срок, объявленный программистами, надо умножать на 3,14. Через год система запустится, но так как во внутреннем (на два листа) техническом задании не были оговорены всякие мелочи, то еще через полгода система будет сдана в опытную эксплуатацию. За это время ряды коллектива разработчиков, подучившись, поредеют в связи с переходом на более высокооплачиваемую работу. Поэтому года через три руководитель проекта, кряхтя и матерясь, будет разбираться сам в коде, чтобы объяснить его четвертому составу разработчиков. Это совершенно не отрицает того факта, что система получится хорошая и рабочая.
Оставшийся второй вариант — заказ системы стороннему разработчику. Да, конечно, все проблемы со сроками, текучестью кадров и прочими пертурбациями, описанные выше, будут присутствовать. Но ведь вы за это уже не платите зарплату, вы платите по договору за выполненные работы. Вот и оговаривайте в договоре штрафы, неустойки, сроки и прочие взаимные обязательства. Оговаривайте мелочи, которые можно продумать заранее, в подробном техническом задании. Да, дополнительные работы обязательно будут — мало ли что вы забыли в начале пути. Так оговаривайте их условия в дополнительных соглашениях. В этом случае все проблемы, описанные выше, уже становятся не вашими, а директора компании- разработчика. Причем если эта компания ведет несколько проектов, то она сама и обеспечит заменяемость разработчиков, внедренцев, технических писателей. Кстати, а вы не забыли заказать документацию сопровождения на систему?
Да, в описанных вариантах совершенно очевидно, что по деньгам первый вариант выгоднее. Но только первые пару лет, к сожалению. Потом стоимость сопровождения и доработки системы настолько возрастет, что следующую систему вы, скорее всего, будете заказывать у сторонней компании. Выбирать эту компанию вы будете очень внимательно, по крайней мере из десятка предложенных. И их портфолио изучать, и честный тендер между ними устраивать. Эти выводы, разумеется, только на основе моего опыта разработки различных приложений и только, повторюсь, в случае уникальных систем.
О системах, которые можно построить, надстроить, настроить из тиражных продуктов, можем поговорить в одной из следующих колонок. Самим это делать или довериться опытной компании? Нужно ли учить у себя людей, умеющих настраивать тиражный продукт, если вы уже заказали всю работу сторонней фирме? Вопросов много, и я с удовольствием, как обычно, их прочту в письмах или в комментариях в моем блоге felixm.blogspot.com.
ТЕХНОЛОГИИ: IT-технологии Бога Войны
В наши дни первым (а иногда и единственным) приложением результатов развития хайтека является военное дело. Впрочем, так было в любую историческую эпоху. Высокими технологиями в разное время были (и не потеряли важности, но сейчас так не называются) металлургия и материаловедение, знания по математике, химии и физике, инженерное искусство, связывавшее все это в единое целое. Сейчас под хайтеком понимаются разнообразные применения электронной цифровой вычислительной техники. Несмотря на попытки ухода от прилагательного «вычислительный», в своей основе практически любое цифровое устройство является комбинацией двоичных логических элементов, выполняющих сугубо вычислительные операции, пусть и на уровне булевой алгебры. А если объединить «хайтек прошлого» с «хайтеком нашего времени», то одним из самых ярких примеров применения всех этих технологий в военном деле будет являться современная артиллерия (не случайно в игре Civilization IV Сида Мейера артиллерия — это не только юнит, но и технология в плане развития общества).
Автор этих строк познакомился с артиллерией по воле случая в лице своего РВК, когда туда пришло требование о направлении ряда пребывающих в запасе граждан-программистов на сборы в одну из частей Мулинского гарнизона. До этого были шесть лет обучения на радиофаке Нижегородского госуниверситета, три года не увенчавшейся защитой аспирантуры там же, еще год работы научным сотрудником, до достижения 27 лет. Что греха таить, причина понятна, но в армию попасть таки довелось. 25 дней «партизанщины» были самым настоящим приключением, пришлось познакомиться со всем и поучаствовать во всём, что имеет отношение к армейской службе (горячий привет фанатам офлайновых RPG!). Но самым главным по ходу этой «ролевой игры» было желание по-настоящему освоить воинскую специальность артиллериста-вычислителя. Эта специальность открывает мир приложения хайтека в военном деле, когда сам становишься живым компьютером и начинаешь вспоминать порядком подзабытый школьный и вузовский курс математических дисциплин. Поработав на этом поприще, можно четко сказать, что несет в себе компьютеризация и что представляют собой те самые «таинственнейшие» технологии, о которых так много сейчас пишут в прессе. Здесь не будет упоминания чего-нибудь секретного, более того, возможны и ошибки из-за недопонимания, но надеюсь, что старшие по опыту и званию товарищи поправят, если нужно.
Для незнакомых со спецификой артиллерии кратко изложу суть дела. Артиллерия занимается поражением противника путем стрельбы из орудий или запуска неуправляемых ракет. Стрельба делится на стрельбу прямой наводкой (когда наводчик видит результаты стрельбы и сам корректирует наводку орудия) и на стрельбу с закрытых позиций, когда цель не находится в прямой видимости с линии огня. Первый случай характерен для противотанковой артиллерии, второй — для «артиллерии в узком смысле слова». Хотя бывало и бывает всякое — противотанковые пушки иной раз стреляли с закрытых позиций, а гаубицы — прямой наводкой, но артиллеристы должны мастерски уметь действовать во всех ситуациях. Однако задержимся на случае стрельбы с закрытых позиций (подробно см. ru.wikipedia.org/wiki/Стрельба с закрытых позиций).