Одно из важных следствий принятия концепции хаотичности окружающего мира — исчезновение конфликтов между менеджерами и исполнителями. Эти, казалось бы, вечные «грабли» хорошо знакомы всем, кто имеет отношение к разработке веб-сайтов. В традиционной (каскадной) модели разработки пик конфликта приходится на самый важный этап — предвыпуск или выпуск проекта. Главная причина — разработчики сделали не совсем то, что хотел менеджер или заказчик.
Как вы понимаете, эта проблема исчезает, если мы априори принимаем, что мнение заказчика может измениться, но и мы сможем своевременно на это отреагировать: ведь наши рабочие процессы построены так, что нам не придется переписывать заново половину программного кода, соответственно, изменение задачи не приведет к психологическому «напрягу» разработчиков.
Специалисты по управлению проектами справедливо заметят, что описываемые мною приемы напоминают спиральную модель жизненного цикла разработки программного обеспечения. Почему же эта модель, несмотря на очевидные достоинства (снижение рисков, повышение качества продукта и степени удовлетворенности заказчиков и разработчиков), не используется повсеместно в разработке ПО и веб-приложений?
Потому, что это сложно. Потому, что требует большей ответственности от всех участников процесса, большей гибкости, большей сознательности и даже храбрости — в экстремальном программировании это качество в почете.
СОФТЕРРА: Высокохудожественный командный интерпретатор
Автор: Илья Шпаньков
Когда разговор заходит о растровых графических редакторах, абсолютное большинство людей в первую очередь вспоминает Adobe Photoshop. Сторонники свободного софта, конечно, не забудут упомянуть и своего фаворита The Gimp, по умолчанию входящего в большинство GNU/Linux-дистрибутивов. Возможно, кто-то вспомнит Paint.NET или еще какой-нибудь «легкий» редактор «для дома, для семьи». Но сегодня мы поговорим не о них.
Все эти популярные средства создания и редактирования графических изображений обладают хорошо развитым интерфейсом и содержат сотни функций, позволяющих создавать настоящие шедевры цифровой живописи. Меж тем наряду со своими известными «коллегами» живет и здравствует еще один своеобразный редактор по имени ImageMagick, который скромно трудится на ниве обработки цифровой растровой графики уже не первый год. Широкой публике этот редактор (а точнее — пакет графических утилит) практически неизвестен в силу особенностей, о которых будет сказано ниже. Однако в некоторых случаях он даст фору любому именитому аналогу.
Прежде всего, ImageMagick является платформнонезависимым: на сайте разработчиков можно найти установочные пакеты для Windows, Linux, Mac OS X, Solaris, FreeBSD и Cygwin. Помимо этого, редактор распространяется под свободной лицензией, совместимой с GPL, благодаря чему доступны все исходные коды, а пользователи практически ничем не ограничены в плане использования программы и ее «подгонки» под свои специфические цели. Но и это еще не все: авторы предлагают более десятка различных вариантов интерфейса ImageMagick, написанных на C, C++, Java, Perl, PHP и других, более экзотических языках. Несмотря на довольно аскетичный внешний вид (остающийся неизменным несколько последних лет), свое дело ImageMagick делает хорошо и к тому же освобождает авторов программы от излишних хлопот по внедрению и отладке новомодных веяний интерфейсостроения, позволяя уделять больше внимания совершенствованию функциональных возможностей. Подобная неприхотливость редактора способствует полноценному выполнению своих функций в любом программном окружении, а также открывает большой простор для интеграции с другими приложениями. Особенно рады этому разработчики свободного ПО: библиотеки ImageMagick входят в состав многих GNU/ Linux-дистрибутивов и часто используются различными программами, обладающими функциями просмотра или редактирования изображений. Наличие же в системе одного из вариантов интерфейса позволяет работать с ImageMagick как с обычным графическим редактором (рис. 1).
Список функций достаточно велик, чтобы удовлетворить потребности пользователей в создании и редактировании растровых изображений. Программа поддерживает больше сотни графических форматов и позволяет свободно конвертировать готовые работы в любой из них. Как и более популярные редакторы, ImageMagick предлагает множество вариантов трансформации и корректировки изображений, включая работу с цветовой гаммой или наложение специальных эффектов. Имеются и средства художественной обработки рисунков, позволяющие превратить обычную фотографию в имитацию картины, написанной, к примеру, масляными красками или угольным грифелем (рис. 2).
Впрочем, нет смысла подробно описывать все функциональные возможности программы, доступные из графического интерфейса: во-первых, пользователям других редакторов они привычны, а во-вторых, полный список вариантов изменения изображений явно уступает арсеналу более известных собратьев. На самом деле ImageMagick может себе это позволить, ведь его истинные возможности значительно превышают стандартный редакторский набор и для их использования не требуется красивый интерфейс или сложная система контекстных меню. Скрытые таланты необычного редактора проявляются в полной мере только при работе из командной строки.