Современные подходы к созданию программного обеспечения
Разделение труда при создании ПО
О перспективах развития подходов к разработкеприложений
Говоря о программном обеспечении и о его использовании, не следует забывать и о его производстве. Любое приложение, начиная с ERP-системы для крупного предприятия и заканчивая бесплатной утилитой бытового назначения, кто-то должен придумать, спроектировать, создать, протестировать, описать, выпустить, внедрить, а затем поддерживать, исправлять ошибки, выпускать обновления. Для всех этих этапов в течение длительного времени существуют соответствующие инструменты, однако «промышленный» подход к процессу создания программного обеспечения стал обсуждаться и широко применяться относительно недавно. Именно этому и посвящена настоящая статья.
Разделение труда при создании ПО
олжность программиста вот уже лет пятнадцать стабильно присутствует в штатном расписании российских предприятий самого разнообразного профиля. Люди, занимающие эту должность, сейчас нередко выполняют функции, весьма далекие от программирования, например администрируют локальные сети, устанавливают и сопровождают готовое ПО, обучают пользователей. Однако наличие должности с таким названием в штатном расписании зачастую отражает тот факт, что когда-то люди на этих должностях действительно занимались разработкой приложений, требующихся для функционирования предприятия, а позже занялись внедрением и сопровождением готовых продуктов, выполняющих примерно те же функции и созданных компаниями или отделами, специализирующимися на разработке соответствующих категорий приложений бухгалтерского и банковского ПО, систем управления материальными ресурсами и производственными процессами, ПО для кадрового учета и взаимодействия с клиентами и т.д.
Появление компаний и отделов, специализирующихся только на разработке и внедрении ПО, привело к появлению специализации и внутри подобных компаний и отделов: сотрудники, когда-то все поголовно считавшиеся программистами, разделились на постановщиков задач, аналитиков, авторов кода, технических писателей, специалистов по тестированию, внедрению и сопровождению. Кроме того, появились и компании, занимающиеся исключительно тестированием приложений или созданием документации. Причиной подобного разделения труда стал постоянный рост требований пользователей к функциональности и качеству программного обеспечения, реализация которых требует весьма широкого круга знаний и умений, коими, как правило, обладают разные люди (если вы когда-нибудь видели руководство пользователя, написанное среднестатистическим программистом, вы, наверное, со мной согласитесь…).
Естественно, набор инструментов, используемых для производства программного обеспечения, за последние годы также расширился и сейчас состоит не только и не столько из средства разработки и текстового редактора, сколько из продуктов иного назначения.
Роли, инструменты и подходы
акой бы методологии разработки ПО ни придерживалась команда, работающая над проектом по созданию очередного программного продукта, будь то схема «водопада», экстремальное программирование, следование правилам Rational Unified Process или Microsoft Solution Framework, проект (или, в случае применения методологии экстремального программирования, каждая итерация проекта), обычно разбивается на этапы, а участники работы выполняют здесь разные роли. Как правило, всегда можно в том или ином виде выделить такие этапы (и соответственно роли), как бизнес-анализ и определение требований (бизнес-аналитики), проектирование (архитекторы приложений и системные аналитики), разработка (авторы кода), тестирование и оценка качества (специалисты по тестированию), документирование (технические писатели и авторы файлов справочной системы), внедрение и сопровождение (специалисты по внедрению, сопровождению ПО и по обучению пользователей). Список этапов и ролей может зависеть от масштаба проекта: иногда один человек может совмещать несколько ролей, а иногда, наоборот, в проекте участвуют несколько разных специалистов по тестированию или несколько авторов кода, владеющих разными средствами разработки.
Мы неоднократно писали в нашем журнале о том, какие методологии разработки приложений чаще всего применяются в настоящее время, какие типы инструментов применяются обладателями различных ролей на разных этапах разработки приложений, какие компании их производят и каковы ценовые диапазоны этих инструментов (дабы не повторяться, мы разместили несколько уже опубликованных статей подобного содержания на нашем компакт-диске). Если говорить о комплексе интегрирующихся между собой инструментов, предназначенных для разных этапов создания программного обеспечения для разных платформ, то наиболее полнофункциональные комплекты таких инструментов сейчас производят две компании Borland (после приобретения компаний TogetherSoft и StarBase) и IBM (после приобретения компании Rational). В ближайшее время можно ожидать от Microsoft и появления сходного набора инструментов, ориентированных, правда, только на платформу Windows.
Отметим, однако, что в последнее время самым важным делом становится не просто обеспечение участников проекта инструментами, не просто передача одними участниками другим различных артефактов проекта (моделей, документов, компонентов, кода…), что достигается путем попарной интеграции инструментов между собой и успешно реализуется многими производителями средств разработки, и даже не просто правильное управление проектом. Истинно «промышленный» подход предполагает отношение к разработке программного обеспечения как к производству со всеми его атрибутами и требует наличия комплексных средств, наподобие средств управления предприятием, позволяющих всем участникам проекта получить доступ к его артефактам именно в том виде, который требуется обладателю данной роли, а в идеале предоставляющих руководителям IT-отделов сведения, позволяющие принять обоснованное решение о прекращении неперспективных проектов. До недавнего времени о подобных инструментах только говорили, но не реализовывали, и лишь недавно компания Borland выпустила продукт, носящий название Core SDP (Software Delivery Platform) и представляющий собой интегрированную платформу для ролевой разработки программного обеспечения. Этот продукт предоставляет разработчикам интегрированную среду для управления жизненным циклом приложения (ALM, Application Lifecycle Management) и для упрощения взаимодействия всего коллектива в рамках проекта, а также содержит инструменты, оптимизированные для выполнения конкретных ролевых функций участников проекта: аналитиков, архитекторов, разработчиков, специалистов по тестированию. На данный момент это первый и пока единственный продукт, с помощью которого можно начать реализовывать «промышленный» подход к созданию приложений.
О перспективах развития подходов к разработкеприложений
онятно, что услышать о перспективах развития подходов к разработке приложений и о направлениях развития инструментов для разработки приложений интереснее всего будет от изобретателей и авторов новых технологий. Поэтому мы предлагаем вашему вниманию интервью с Дейлом Фуллером (Dale Fuller), президентом и CEO Borland Software Corportation, Кириллом Ранневым, главой представительства Borland в России и СНГ, и Андреем Ивановым, руководителем центра разработки Borland в Санкт-Петербурге, взятое в конце мая этого года.
Наталия Елманова: Наши читатели уже знакомы с концепцией Software Delivery Optimizaton. Какие наиболее важные, на ваш взгляд, шаги в реализации этой стратегии были сделаны компанией Borland в этом году и каковы ваши планы на ближайшее будущее?
Дейл Фуллер: С точки зрения заказчиков, я думаю, самое главное при разработке программного обеспечения это правильное определение требований. Важно не только управлять требованиями и проверять их выполнение, отмечая галочкой в списке, но и знать и понимать, что именно означает каждое требование для бизнеса заказчика, и чего он на самом деле хочет. У нас достаточно технологий, позволяющих создавать программное обеспечение быстро и хорошо, но при этом можно быстро и хорошо произвести совершенно не тот продукт, который нужен заказчику. Именно в этом и заключается идея Software Delivery Optimizaton: соединить мир бизнеса и мир технологий, чтобы быть уверенными в том, что мы создаем именно то, что требуется.
Дейл Фуллер
Если же говорить о новых технологиях, то мы недавно выпустили Core SDP. А через пару лет покажем кое-что принципиально новое.
Кирилл Раннев: Core SDP для нас дейcтвительно революционный продукт и для наших заказчиков, и для нашего бизнеса. Это куда более значимое событие, нежели просто объявление нового продукта, оно означает появление новой парадигмы программирования, основанной на ролях. Сейчас мы предлагаем сфокусироваться на четырех основных ролях в процессе разработки: аналитик, архитектор, разработчик, специалист по тестированию. А если говорить о будущем развитии продукта и технологий разработки, то нужно очень внимательно смотреть, какие роли будет предлагать Core SDP.
Кирилл Раннев
Отмечу также важность того факта, что обладатель каждой роли получает доступ ко всем артефактам проекта в процессе создания приложения, и смотрит на них через призму своей роли: разработчик видит модель и требования глазами разработчика, а не глазами архитектора, а аналитик работает с теми же самыми требованиями совершено по-другому. Иными словами, мы предлагаем разные способы доступа к единому пространству этих артефактов.
Д.Ф.: В будущем, помимо развития Core SDP, мы будем по-прежнему помогать разработчикам, тестерам, менеджерам, аналитикам в создании приложений. Нам нужно предоставить значительно большую функциональность для руководителей IT-подразделений (Chief Information Officer, CIO), чтобы они могли управлять портфелем проектов. Мы также хотим помочь бизнес-менеджерам и менеджерам по продуктам выработать четкие определения требований, особенно наиболее важных из них. Этим специалистам совершенно необходимо обладать полной информацией о том, что происходит с проектом, чтобы правильно принимать бизнес-решения.
Н.Е.: И когда вы планируете выпустить такой продукт для руководителей IT-подразделений?
Д.Ф.: Пока не могу сказать точно, но, возможно, в середине следующего года вы сможете увидеть продукты, предназначенные для CIO.
Н.Е.: В одном из своих выступлений вы упомянули, что компания Borland является лидером рынка программного обеспечения в области средств моделирования и управления требованиями. Никто не подвергает сомнению технологические преимущества Borland Together и Borland CaliberRM, однако сходные по назначению продукты IBM/Rational, такие как Rose и RequisitePro, очень активно продвигаются на российский рынок как самой IBM, так и ее партнерами. Нередко оказывается, что некоторые аналитики вообще не знают, что средства моделирования и управления требованиями производятся не только компанией IBM. Как вы планируете действовать в этой ситуации?
Д.Ф.: Прежде всего, мы очень разные по величине компании. IBM большая компания, наша маленькая. Майкл Девлин, недавно ушедший на пенсию бывший CEO компании Rational Software, сказал, что он последним из работающих тогда сотрудников застал команду Rational в том виде, в каком она была создана. Подразделение Rational сейчас претерпевает серьезные изменения когда оно было независимой компанией, его видение существенно отличалось от IBM’овского, предполагающего превращение этой корпорации в лидера рынка средств разработки ПО.
Что касается наших действий, то мы стараемся рассказывать разработчикам о своих технологиях, уделяем много времени специалистам по маркетингу, а нашим партнерам и клиентам рассказываем об успешных примерах применения своих продуктов. Наша стратегия также предполагает тесное взаимодействие с системными интеграторами, такими как Accenture, EDS, GAP Gemini, которые непосредственно конкурируют с IBM и ее подразделением IBM Global Services, занимающимся системной интеграцией, и которые не хотят использовать продукты Rational, поскольку они каждый раз напоминают им об IBM и об IBM Global Services. Именно эти компании являются нашими самыми крупными клиентами, и они уже достигли успеха, применяя наши продукты. А ведь в успехе клиентов и заключается наша цель, что намного важнее, чем просто заниматься рекламой и маркетингом.
К.Р.: Я хотел бы добавить два слова по поводу России. На мой взгляд, утверждение о том, что продукты IBM/Rational у нас более успешны, не совсем справедливо. Rational занимается маркетингом своих продуктов на российском рынке уже примерно лет двенадцать, а Borland не более двух с половиной. Я полагаю, что, с учетом столь значительной разницы в длительности присутствия на рынке, наши продукты и решения на нем уже достаточно заметны. Нам просто пока не хватает времени, чтобы достичь сравнимого с Rational уровня присутствия на рынке.
Н.Е.: Насколько мне известно, Together выпускается почти десять лет…
Андрей Иванов: Но компания TogetherSoft и не занималась продвижением этого продукта в России до объединения с Borland.
Андрей Иванов
Н.Е. Рассмотрим нынешнюю ситуацию на рынке средств разработки Windows-приложений. В ближайшее время компания Microsoft планирует выпустить линейку продуктов Express, в составе которой имеется несколько средств разработки, таких как Visual C# 2005 Express Edition, Visual Basic 2005 Express Edition, доступных либо бесплатно, либо за символическую сумму. При этом функциональность приложений, которые можно создать с помощью этих продуктов, сравнима с функциональностью приложений, созданных с помощью коммерческих средств разработки, выпущенных года два-три назад (таких, например, как Delphi 7), и даже превышает их. К тому же нынешний маркетинг средств разработки Microsoft беспрецедентен: они не просто активно рекламируются и распространяются, но и выпускаются в виде локализованных (в том числе русских) версий. Как вы планируете поддерживать свой нынешний уровень присутствия на рынке средств разработки Windows-приложений в столь непростых условиях?
Д.Ф.: Это действительно непростая задача. У корпорации Microsoft есть платформа Windows, от продаж которой она получает основную часть доходов. Поэтому Microsoft может позволить себе раздавать средства разработки приложений для этой платформы бесплатно. У Borland нет такой платформы, так что нам остается производить лучшие инструменты, более умные, обладающие большей функциональностью, нежели инструменты Microsoft.
Вы справедливо заметили, что Visual C# 2005 Express Edition обладает функциональностью, сходной с Delphi 7. Причина этого в том, что команда, создавшая Visual C# Express, это та же самая команда, что когда-то создала Delphi 6, а не так давно перешла в Microsoft. Нынешняя команда, отвечающая за Delphi, работает над Delphi 2006, и совершенствует этот продукт, выводя его на качественно новый уровень, намного превышающий то, чего можно было бы достичь простым повтором функциональности Delphi 7. Это отличная команда, я ее очень уважаю и жду от нее отличной работы.
При этом мы, конечно, не можем просто сидеть и мечтать, чтобы Microsoft предоставила нам часть рынка и доходов. Поэтому мы стараемся не ограничиваться просто созданием инструментов для программирования, а пытаемся перейти в более сложную область, в которой присутствуют не только программисты, но и тестеры, и аналитики, и архитекторы, и конкурировать по качеству своей продукции с другими производителями инструментов для указанных категорий участников проектов.
Н.Е.: Когда в Microsoft говорят не о линейке продуктов Express, а о коммерческих продуктах, например о Visual Studio Team System, можно услышать точно такие же слова о ролях участников проекта и об инструментарии для обладателей этих ролей. В чем же в таком случае заключаются преимущества подхода Borland по сравнению с Microsoft?
Д.Ф.: Как вы думаете, какое программное обеспечение для управления требованиями используется в Visual Studio Team System?
Н.Е.: Не думаю, что это Requisute Pro. Неужели Caliber RM?
Д.Ф.: Именно так! Кроме того, компания Microsoft попросила нас создать для них программное обеспечение для моделирования, работающее поверх их средств дизайна, потому что в Microsoft знают, что весь мир использует UML. Им нужны средства преобразования модели в код, и мы их для них делаем.
Есть и области, где мы вообще не конкурируем с Microsoft, это, в частности, выпуск наборов продуктов для коллективной разработки J2EE-приложений, а также средств управления изменениями, таких как Borland StarTeam. А в целом, на мой взгляд, лучше не конкурировать с Microsoft, а работать вместе это будет более продуктивно.
Н.Е.: Некоторые редакции продуктов компании Borland, предназначенные для начинающих разработчиков и обладающие ограниченной функциональностью, вроде Together Designer Community Edition, JBuilder Foundation, доступны для свободной загрузки с вашего сайта, в то время как другие продукты (например, Caliber RM, StarTeam) недоступны в виде бесплатных или недорогих редакций с ограниченными возможностями, в частности однопользовательских или с ограничениями на количество требований. Каковы критерии принятия решений о том, для каких именно продуктов будут создаваться бесплатные или недорогие редакции?
Д.Ф.: Критерии зависят от рынка. Мы видим, что Сaliber RM это продукт более высокого уровня, чем средства разработки, это продукт масштаба предприятия. Но вы вполне можете использовать этот продукт бесплатно в течение ограниченного срока.
Н.Е.: Этого срока явно недостаточного для реализации даже небольшого проекта, а следовательно, для принятия решения о приобретении подобного продукта.
Д.Ф.: Это верно. И коль скоро речь зашла о дешевых версиях, то я знаю, что Caliber RM в России применяется довольно широко, но при этом не уверен, что все пользователи его купили законным путем. Наши юристы хорошо осведомлены о том, что происходит в этой области. Конечно, мы обсуждаем и вопросы выпуска бесплатных и недорогих базовых версий продуктов. Сейчас мы не планируем бесплатных версий таких продуктов, как Caliber RM, но думаем над этим. Кроме того, нечто подобное вы, возможно, сможете увидеть в Visual Studio Team System, но пока я воздержусь от каких-либо официальных объявлений.
Н.Е.: Предлагаемый компанией Borland набор инструментов охватывает почти все задачи, встречающиеся при разработке приложений, за исключением проектирования данных. Планируется ли к выпуску такой инструмент?
Д.Ф.: Я опять не даю никаких обещаний, но советую чуть-чуть подождать.
А.И.: Следующая версия Together будет поддерживать проектирование данных и ER-моделирование.
Н.Е.: Большое спасибо за интересное интервью. Будем ждать от Borland новых продуктов и новых идей.