Что такое eDevelopment

Разработка ПО для электронной коммерции

Давно уже стало понятно, что мировая экономика переживает такие реформы, какие ей никогда не приходилось переживать ранее. За короткое время, всего за несколько лет, список крупнейших мировых корпораций и самых богатых людей мира обновился почти наполовину. Все мы прекрасно знаем, почему это происходит. Никто не сможет объективно сказать, хороша или плоха такая тенденция в эволюции мировой экономики, но она существует, и это факт. Точно такой же факт, как и то, что большинство западных фирм уже давно поняли (почувствовали на себе) истинность тезиса "осваивай Интернет или исчезни".

Что из этого следует? Одно простое и приятное для многих утверждение: разработка программного обеспечения наконец-то переросла рамки какой-то отдельной индустрии и стала чем-то намного большим, а именно - частью мировой экономики! Логика очень простая: ведь очевидно, что невозможно ведение бизнеса в Интернете без соответствующего программного обеспечения, а "бизнес через Интернет", или e-Business, это уже даже не будущее, а настоящее для абсолютно всех отраслей экономики, для всех корпораций, для всех нас.

Процесс разработки программного обеспечения в новых условиях представляет собой нечто отличное от обычного процесса разработки ПО. Они отличаются друг от друга так же, как отличаются старые способы ведения бизнеса от новых, как отличается ПО для электронной коммерции от обычного ПО. Этим темам и будет посвящена данная статья. Принципиально тут следующее: без понимания принципов "новой экономики" (e-Business) невозможно приступать к разработке инструментов для этой экономики, т.е. заниматься eDevelopment. По крайне мере, нужно уловить отличия между старым и новым. Это не надуманная проблема, так как до сих пор многие наши программисты, приходящие в софтверные компании, которые работают по западным стандартам, не понимают, что такое eDevelopment, и не могут полноценно работать с самого начала, если вообще получают желанные места в этих фирмах.


Технология eDevelopment

 

Вообще в этой сфере существует два сорта фирм: одни делают компоненты-"кирпичи", которые расходятся довольно широко в массовых количествах, несмотря на свою стоимость, выражающуюся зачастую десятками тысяч долларов (например, серверы приложений WebSphere от IBM или SilverStream - от одноименной компании), а другие используют эти "кирпичи" для разработки готовых систем электронной коммерции, разрабатывая дизайн и включая в систему серверы приложений, инструменты управления и другие компоненты, но главное - предусматривая возможность быстрого добавления новых функций в систему в любой момент. Конечный результат - это не просто сайт для электронной торговли в Интернете, а сложная Интернет/интранет система, включающая в себя всю инфраструктуру для внутренних и внешних коммуникаций, обработки и управления удаленными данными. К числу крупных софтверных фирм, работающих на этом рынке, относятся та же IBM (она использует свои же инструменты разработки), SAP, EPAm и другие. Каждая из фирм для разработки приложений использует свою схему "сборки кирпичей", но в целом они схожи у всех компаний. Вот какую схему (Application Framework) для разработки приложений электронной коммерции использует, например, компания EPAm:

Основой системы может быть любая сетевая операционная система - UNIX, IRIX, OS/2, Solaris, NT и так далее, это не принципиально.

Инструментарий разработчика и компоненты. На основе этих компонентов разработчики могут быстро создавать конкретные приложения электронной коммерции, необходимые для системы. Например, набор Java-компонентов SanFrancisco от IBM позволяет создавать Java-приложения из уже готовых протестированных "деталей", давая возможность разработчикам не писать все с нуля. IBM также предлагает разработчикам свои инструменты разработки - VisualAge, WebSphere Studio, Lotus Domino. Основная работа таких фирм-разработчиков, как EPAm, заключается именно в создании специализированных приложений с помощью доступных компонентов третьих фирм.

Сервер приложений представляет собой программное обеспечение, которое предлагает услуги поддержки Web-приложений и связывает конечных пользователей с корпоративными базами данных. Действуя как посредник между браузерами и серверами баз данных, это ПО избавляет компании от необходимости устанавливать на локальные ПК конечных пользователей приложения, требующие значительных затрат на обслуживание. Конечные пользователи либо не должны устанавливать на своих ПК ничего вообще, либо устанавливать только небольшие программы. Таким образом, появляется возможность разрабатывать приложения для тонких клиентов, серверное программное обеспечение которых работает с Web-браузером и требует минимальной поддержки на настольных ПК.

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

Компании, которым требуются более сложные приложения, могут связать серверы приложений со специализированными программными серверами для обработки заказов и других транзакций и таким образом передавать пользователям повторно используемые фрагменты кода приложений, называемые объектами. Такие производители, как IBM и BEA Systems, объединяют этот инструментарий в единое предложение.

Система управления и безопасной коммуникации разрабатывается во время внедрения готовой системы заказчику. Эта неотъемлемая часть системы стоит несколько обособленно от остальных элементов, над которыми трудятся разработчики, однако она чрезвычайно важна и должна продумываться с самого начала.

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

  • возможность быстрого добавления новых функций;
  • возможность подключения к конечной системе разнообразных устройств с разными протоколами связи (например, мобильные телефоны или Palm'ы по WAP или различные бытовые устройства по Bluetooth);
  • масштабируемость и возможность быстрой перестройки структуры;
  • и самое главное - реальная работоспособность, в смысле нормальной управляемости, безопасности и надежности.


Специфика eDevelopment

Специфика e-Business приводит к тому, что заказчик зачастую не знает, что конкретно ему нужно, и не может этого знать, поэтому понятие "технического задания" несколько трансформируется. Самая сложная часть разработки программного обеспечения - решение, что именно нужно разрабатывать, все остальное не так сложно, по сравнению с этим.

В каких же условиях приходится принимать это решение? В условиях, характерных для eDevelopment:

  • неопределенность (вытекает из специфики e-Business);
  • турбулентность - изменения происходят настолько быстро, что традиционные методики "управления изменениями" не работают, то есть уже нельзя "проанализировать и согласовать" изменения, так как они (изменения) вызваны именно неопределенностью;
  • пользователи программы (то есть сайта) находятся вне организации. Нужно всегда помнить, что пользователь программы всегда находится "в одном клике" от ухода с сайта. Это абсолютно новый фактор в разработке ПО, тут не работают традиционные административные методы, как в обычном ПО. Кроме того, не известно, кто будет пользователем, и разработчик должен учитывать все варианты.

В связи с условиями неопределенности требований и недостатка времени (турбулентности) компании-разработчики выработали некоторые методики-рекомендации для согласования технического задания и обсуждения с заказчиком будущего проекта. Одна из таких методик называется JERA (Just Enough Requirements Analysis, "Анализ на достаточность требований"), она очень простая:

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

Кроме того, рекомендовано делать документацию по принципу "zero-based documentation". Это не значит, что документации совсем не должно быть - она существует, но не передается заказчику, т.к. предполагается, что в условиях турбулентности она может в любой момент времени не соответствовать реальности.


Процесс разработки (жизненный цикл ПО)

Нужно заранее оговориться, что эти принципы не являются общепризнанными, хотя они считаются передовыми и уже используются многими софтверными фирмами.

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

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

Спекуляции описывают комплекс проблем и стимулируют исследования и эксперименты. Таким образом, поощряются ошибки в том смысле, что они составляют материал для следующего этапа - изучения.

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

Обучение - анализ имеющейся информации.

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

Анатолий АЛИЗАР,
Максим БАШАРИН,
ЕРАm Systems


Ссылки:

  1. Роберт Бишоп. Куда ведет технология? "КТ", №15/2000, www.cterra.ru/2000/15/39.html
  2. Крейг Стедман. Серверы приложений. "Computerworld Россия", №42/1999, www.osp.ru/cw/1999/42/30.htm
  3. IBM Whitepaper. The Application Framework for e-business, www-4.ibm.com/software/ebusiness/ overview_details/application_framework.pdf
  4. IBM Whitepaper. 10 success factors for e-business, www-4.ibm.com/software/info/soul/st/tenfactors.pdf
Версия для печатиВерсия для печати

Номер: 

20 за 2000 год

Рубрика: 

Технологии программирования
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!