Читаем Журнал «Компьютерра» N 33 от 12 сентября 2006 года полностью

Выпуск конкурентами нового продукта, появление нового брэнда, новой технологии, нового браузера, изменение предпочтений потребителей - все это требует немедленной реакции, изменяет предметную область, описанную в ТЗ. Заказчик увидел сайт конкурирующей компании и хочет такую же «штуку». При этом вы не знаете заранее, как будете реагировать и сколько времени потребует реализация той или иной вашей реакции. Одним словом - хаос…


Экстремальное программирование


Ниже я опишу простейшие методы, которые позволят компании постепенно уйти от классической каскадной модели цикла разработки программного обеспечения. Каскадную модель вкратце можно описать так: сначала мы просим пользователей или заказчика сформулировать свои требования, затем разрабатываем проект системы, составляем техническое задание. Затем пишем код, тестируем его. Увы… Эта модель не годится для большинства проектов по разработке веб-приложений.

Что же делать? Ответ прост: принять окружающую действительность, принять изменчивый мир, принять хаос. Стать гибким и разрабатывать свою стратегию с учетом того, что нас окружает хаос. Это нормально. И убедиться при этом, что уже существуют инструменты, позволяющие успешно действовать в условиях хаоса. Например, инструменты экстремального программирования. Все они создавались исходя из того, что окружающая среда гибко и динамично меняется, и не пытаются зафиксировать ее, а наоборот - приспосабливают производственные процессы под подобную среду.


Итерации


Итак, мы приняли концепцию изменчивого мира. Что это меняет? Сразу становится ясно, что писать подробнейшее техническое задание не имеет смысла - оно стремительно устаревает. Ограничимся описанием функций, причем так, как их видит пользователь системы. Как правило, заказчик достаточно хорошо их представляет.

На основе такого описания команде разработчиков, дизайнеров, верстальщиков становятся ясны их ближайшие шаги. Основные архитектурные решения, общие рамки будущего сайта, общее устройство. Но я подчеркиваю - ближайшие шаги. Достаточно одного-двух. Шаги должны быть небольшие (неделя, несколько дней). После каждого шага - пересмотр всех условий, учет всех изменений. В экстремальном программировании такие шаги называют итерациями.

Итак, если мы на каком-то этапе работы пошли по неверному пути, мы очень быстро это поймем - одна-две итерации, и ошибка будет исправлена.


Общение с заказчиком


И все же нам нужно чем-то заменить отсутствие формального технического задания, - ведь мы должны сделать то, что требуется заказчику. Выход - тесное общение с представителем заказчика и пользователями на всех этапах работ (не только в точках проверки, не только в начале и конце работ, а в течение всего времени работы над проектом).

Постоянное сотрудничество с заказчиком, когда его представители присутствуют на планерках, видят все процессы «изнутри», позволяет не делать лишних предположений и, соответственно, не писать лишнего кода. Те, кто имеет отношение к разработке ПО, хорошо знают, как часто даже на начальном этапе возникают вопросы к заказчику. Если эти вопросы будут немедленно разрешаться, мы получим значительную экономию ресурсов.


Ежедневные релизы


Еще один прием, который позволит частично компенсировать отсутствие подробного технического задания, - частые релизы. Покажите заказчикам вашу работу как можно раньше.

Отсюда, кстати, известное выражение «вечная бета» - веб-сайт выкладывается «в бой», программа становится доступной пользователям как можно раньше. И далее проектная команда корректирует процесс разработки (вплоть до концепции самого проекта) «на лету», наблюдая за реакцией пользователей.


Творчество, а не копирование


Подобный подход, движение вперед маленькими шагами требует от исполнителей гораздо более высокой ответственности, нежели простое кодирование. Вам потребуются креативные специалисты, способные самостоятельно находить оптимальные решения. В подобном процессе разработчикам не раз приходится переписывать код, поэтому для облегчения их работы в экстремальном программировании есть несколько практик. Я не буду описывать их подробно, это тема отдельной статьи, но упомяну:

• Тестирование до начала разработки.

• Парное программирование.

• Постоянный рефакторинг.

• Простота разработки.

• Коллективное владение кодом.

• Быстрый выпуск версий.

• Постоянная интеграция.

• Стандарты кодирования.

Тестирование до начала разработки предполагает написание тестов, в том числе приемочных, до того как будет написан сам код. Это дает значительные преимущества, особенно в сложных системах, где изменение одного компонента неизбежно влияет на работу других. В таких случаях приемочные тесты жизненно необходимы.

Парное программирование я рекомендую использовать только в случаях, когда вам нужен очень качественный результат. Мой опыт говорит о том, что двое программистов за одним компьютером программируют медленнее, чем двое за двумя, но программный код, который получается в экстремальном варианте, содержит на порядок меньше ошибок.

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2005 № 12
«Если», 2005 № 12

Алексей ЗАРУБИН КРУГИ НА ПЕСКЕ Дороги, которые мы не выбираем, все равно приводят к желанной цели… если к тому времени остаются какие-либо желания. Екатерина СЕДАЯ, Дэвид БАРТЕЛЛ УЛЫБАЮЩИЕСЯ ПАРАЗИТЫ Это не конец света, это всего-навсего подарок генетика любимой женушке к годовщине свадьбы. Майкл СУЭНВИК Я ТОЖЕ ЖИЛ В АРКАДИИ Не сотвори себе кумира: из бронзы ли, плоти, полимера или какой другой материи… Получив премию «Хьюго» за действия неунывающей парочки друзей, писатель втравил их в новую историю. Эдуард ЯКУБОВИЧ ЛИНИЯ ЖИЗНИ Герой забыл одну простую истину: попытки узнать свою судьбу часто кончаются плохо. Или очень плохо. Джеффри ЛЭНДИС ДОРАДО Время — весьма жестокая штука. Нил ЭШЕР СТРУД Кто из этих братьев-инопланетян человечеству младший, а кто старший? Поди разберись! Мэтью ДЖАРП ГОРОД ЗДРАВОМЫСЛИЯ …стоит под угрозой уничтожения. Предотвратить взрыв берется бывший пират. Тимофей ОЗЕРОВ СПАСИТЕ БАБОЧКУ! Более странной экранизации у Брэдбери, пожалуй, еще не бывало. Дмитрий БАЙКАЛОВ РАЗГОВОРНИК ДЛЯ КИНОМАНА Фантастика или мелодрама: кто «крылатее»? Вероника РЕМИЗОВА ОЖИВЛЯЮЩИЙ ЧУДОВИЩ Один из сотрудников журнала «Если» в детстве даже подрался с одноклассником, поспорив о том, как же движется скелет в знаменитом фильме о Синдбаде. Раскрываем секрет — и ему, и читателям. ВИДЕОРЕЦЕНЗИИ Взбесившийся ИИ и другие герои. Эдуард ГЕВОРКЯН АЛЬТЕРНАТИВА ЗДРАВОМУ СМЫСЛУ Итоги очередного интернет-голосования заставили погрузиться в воспоминания известного писателя и публициста. РЕЦЕНЗИИ Кнут и пряник, убеждены рецензенты, есть идеальный метод в деле воспитания фантастов. КУРСОР Неужели у нас снимут фильм по «Обитаемому острову»? Дмитрий ВОЛОДИХИН, Аркадий ШТЫПЕЛЬ ПРОРОКИ И БУРЕВЕСТНИКИ Кажется, «фантастика ближнего прицела» вновь обретает популярность. Пока только у авторов. ЭКСПЕРТИЗА ТЕМЫ Определенно, прозаики что-то скрывают. Наверняка у них припрятана где-то машина времени — иначе как еще объяснить наличие у экспертов этих «завтрашних» документов? ПЕРСОНАЛИИ Геолог, биохимик, астрофизик, юрист — кого только нет в нашем общем доме. ПРИЗ ЧИТАТЕЛЬСКИХ СИМПАТИЙ Вниманию Большого жюри: срок для определения лучших из лучших сокращается!

ЕСЛИ Журнал , Журнал «Если» , Дмитрий Байкалов , Дмитрий Володихин , МАЙКЛ СУЭНВИК , Аркадий Штыпель

Журналы, газеты / Фантастика / Научная Фантастика
«Если», 2006 № 10
«Если», 2006 № 10

Мария ГАЛИНАДАГОРКрошечную миссию, затерянную в тропических лесах, посещает он. Его невозможно изгнать, ведь он тот, кто всегда с тобой.Владислав КРАПИВИНАМПУЛАНу вот и возвратили наконец Империю, столь желанную для многих наших сограждан. Да и клинья монархизма готовы под нее подбить. Отчего же столь неуютно в ней героям? Какие-то они неправильные…Стив БЕЙНИНФОРМАЦИДИ вновь напряженная дуэль двух интеллектов — искусственного и человеческого. Кажется, уже побеждает человек, но возможно ли убить мудрый суперразум?Джеймс МАКСИПОСЛЕДНИЙ ПОЛЕТ ГОЛУБОЙ ПЧЕЛЫАвтор вовсю играет со штампами американского комикса, но при этом, как ни странно, не превращает рассказ в пародию.Сергей СЛЮСАРЕНКОВ НАШУ ГАВАНЬ ЗАХОДИЛИ КОРАБЛИУвы, уже не в нашу. И не совсем корабли. Да и заходили как-то странно…Наталья РЕЗАНОВАХОРОШИЙ ПИСАТЕЛЬДостоевский с Толстым воскресают, и это не фантастика, а всего лишь происки дельцов от издательского дела.Александр РОЙФЕСУПЕРГЕРОЙ НАШЕГО ВРЕМЕНИПриедается все, лишь этот персонаж продолжает волновать, если и не умы, то сердца зрителей.Антон ПЕРВУШИНМНОГОЛИКИЙ МАРСМарс — это не только шоколадные батончики, как думают многие молодые читатели, но и самая популярная планета фантастов.ВИДЕОРЕЦЕНЗИИКажется, мы все-таки сумели догнать и перегнать Америку. Правда, не в том, в чем хотелось бы.Дмитрий БАЙКАЛОВПО ВОЛНАМ ЖАНРОВ…или Синкретическая эклектика. В этой книге, кажется, представлены практически все ключевые направления и жанры — причем не только фантастики. Но самое любопытное, что истоки романа кроются в одной публикации в «Если» четырехлетней давности.РЕЦЕНЗИИВозвращение создателя «Космической одиссеи», предтеча киберпанков, тайны черепа Шерлока Холмса, мир, в котором Рим выстоял, а Советский Союз наносит ответный удар. Все это вы найдете на нашей книжной полке.КУРСОРНазваны лауреаты премии «Хьюго», подведены итоги «Филиграни-2006», состоялась очередная «Аэлита».Павел АМНУЭЛЬОПАЛЯЮЩИЙ РАЗУМБывший ГУЛАГовский заключенный, изобретатель, создатель теории изобретательства, наконец, один из лучших авторов отечественной «твердой» НФ 1960-х. В научных кругах он был известен как Генрих Саулович Альтшуллер, а читателям фантастики хорошо знаком под именем Генрих Альтов. В этом году писателю и изобретателю исполнилось бы 80 лет.ПЕРСОНАЛИИЖивой классик и дебютант в нашем журнале стоят рядом. И не только литературный опыт, но половина земного шара, разделяющая их, не мешают соседству.

Антон Иванович Первушин , Сергей Сергеевич Слюсаренко , Журнал «Если» , Наталья Владимировна Резанова , Владислав Петрович Крапивин , Павел (Песах) Рафаэлович Амнуэль

Журналы, газеты / Фантастика / Научная Фантастика