Гради Буч: «Все, что происходит вокруг якобы бесплатного программного обеспечения, представляет собой экономический процесс. Есть приложения, на которых вы не можете заработать, — не значит ли это, что есть прямой смысл объединять ресурсы?»Гради Буч, директор по науке компании Rational Software, входящей в состав IBM, носит своеобразный титул «свободного радикала». Его подход к разработке программного обеспечения и язык Unified Modeling Language, одним из создателей которого он является, используются для написания самых разнообразных программных систем — от электрокардиостимуляторов до авиационной радиоэлектроники, от антиблокировочных систем в автомобилях до систем электронных торгов в США, Европе и Азии.

Как бы вы охарактеризовали состояние современной индустрии программного обеспечения?

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

Традиционно, на протяжении нескольких десятилетий, считалось, что с программами имеют дело только специалисты по ИТ, и больше это никого не касается. Современное общество полностью полагается на программное обеспечение.

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

Большинство современных информационных систем — это уже не системы сами по себе, а скорее системы систем, которые должны работать в гармонии друг с другом. Однако у нас недостаточно зрелых стандартизированных процессов разработки и аналитических средств, чтобы на самом деле понять, как себя ведут такие решения. Многие системы выглядят довольно неустойчивыми. И, увы, это действительно так. Это одна из главных причин, которые приведут нас к следующему этапу в методах создания программных систем.

Какие преимущества дала Rational сделка в 2003 году с корпорацией IBM? Есть ли отрицательные последствия этого шага?

Мои визитные карточки стали гораздо эффектнее. Теперь мы работаем в корпорации, которая на два порядка больше и в основном занимается бизнесом, которым Rational не интересовалась.

Если же серьезно, это просто замечательно — работать с блестящими людьми, которых немало в корпорации. Когда эта сделка только была завершена, одной из моих первых задач стало руководство выстраиванием отношений между исследовательскими коллективами IBM и Rational. И задачи, которые при этом приходилось решать, действительно были необычайно интересными, в частности, они были связаны со статическим и динамическим анализом и поддержкой совместной работы. К примеру, сейчас у нас есть группа, которая занимается вопросами использования виртуальных миров для поддержки распределенной разработки программного обеспечения.

В организации, которая в сто раз большей вашей, как правило, и больше бюрократии. Руководство IBM попросило меня избавиться от этой бюрократии.

Как влияет на практику программирование растущая популярность таких проектов категории Open Source, как Eclipse?

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

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

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

На большинстве последних пользовательских конференций Rational вы неизменно появлялись с аватаром Second Life и даже прочитали несколько лекций по организации разработки в виртуальных мирах. Что вас привлекает в Second Life и как вы относитесь тому, что недавно некоторые компании отказались от работы в виртуальных мирах, сославшись на то, что в них «живет» недостаточно людей для того, чтобы оправдать затраты на присутствие?

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

Возможно, компании, покинувшие Second Life, сделали ошибку.

В Second Life корпорации IBM принадлежит около 50 островов. Используя их, мы извлекаем пользу для своего бизнеса. Можно сказать, что, прочитав здесь свои лекции, я сэкономил IBM деньги, которые в противном случае ушли бы на организацию моих командировок.

Если бы вам предложили вернуться в Академию ВВС США (где Буч получил степень бакалавра в 1977 году. — Прим. ред.), чему бы вы предпочли учиться?

Я бы хотел стать астронавтом. Экономическая подоплека этой деятельности сейчас совсем иная. Похоже, что в NASA делают ставку на космический туризм. Следующее после нас поколение, вероятно, отправится в космос. Удачи им.

Какие технологические новшества последнего десятилетия удивили вас больше всего?

Меня нелегко удивить. Честно говоря, я не уверен, что меня вообще можно удивить.

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

Я вообще давно не видел никаких революций. Электронная почта появилась у меня в 1979 году. Тогда существовал печатный документ, в котором были указаны все электронные адреса в мире.


Гради Буч: десять советов по организации совместной разработки

Возможность совместной работы всегда была отличительной чертой Internet. Электронная почта, средства мгновенного обмена сообщениями, чат, дискуссионные группы и wiki — это популярные инструменты организации совместной работы, которые со временем становятся все совершеннее. Появление Web как естественного продолжения физического и повседневного мира отдельного человека, развитие аутсорсинга, интеграция программного обеспечения независимых производителей, использование домашних и удаленных офисов и рост числа стратегических партнерских альянсов между предприятиями — все это приводит к формированию более распределенных рабочих групп и требует совершенствования возможностей совместной работы.

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

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

  1. Среда должна быть адекватна цели. Перед тем как выбрать способ совместной работы, определите, какой механизм лучше всего подходит для этих целей. Будь то портал, wiki, инструментарий обмена мгновенными сообщениями или использование виртуальных миров наподобие Second Life, следует иметь в виду: если одни методы лучше походят для общения с начальством, то другие, менее формальные способы могут оказаться удобнее для формирования взаимоотношений с коллегами.
  2. Избыточное общение и вовлечение в работу слишком большого количества людей может оказаться столь же пагубным, как недостаточная общительность и исключение из взаимодействия кого-либо из членов проектной группы. Совместная работа не должна становиться средством для расшатывания позиций какого-либо человека в группе.
  3. Присутствие еще не означает доступность. Функция мониторинга присутствия в приложении обмена мгновенными сообщениями показывает лишь то, что коллега находится в сети, занят или пошел на обед. Однако, чтобы работа была эффективной, необходимо помнить о том, насколько навязчивым бывает наше общение. Перед тем как засыпать коллегу многочисленными вопросами, стоит поинтересоваться, может ли он в данный момент сосредоточиться именно на них.
  4. Простота — основа продуктивной совместной работы. Методы совместной работы должны делать вашу деятельность более эффективной, а не увеличивать число операций, которые вам необходимо выполнять. Доска обсуждений позволяет вести диалог в рамках большой группы, но в некоторых случаях необходимо перенести дискуссию в меньшую по размеру группу для того, чтобы получить окончательный результат.
  5. Учитывайте культурные особенности. Так же как при путешествии в другую страну, при работе в Internet с удаленными коллегами по группе ознакомьтесь с культурными ограничениями и бизнес-этикой, которые приняты у этих людей. Например, далеко не в каждой стране принято использовать мгновенный обмен сообщениями для решения вопросов бизнеса. И аббревиатуры в каждом языке свои. То, что на одном языке может звучать смешно, в другом языке покажется оскорбительным.
  6. Формируйте взаимоотношения. Совместная работа открывает множество способов для формирования взаимоотношений и профессиональных контактов. Личное общение — это идеал, но двусторонний видеообмен мгновенными сообщениями может оказаться столь же эффективен, как личная встреча, причем без авиаперелетов и физического неудобства, связанного со сменой часовых поясов.
  7. Следите за тем, что говорите. Среды совместной разработки позволяют сохранять информацию и помогают формировать «аудиторский след», но для этого необходимо сохранять весь создаваемый контент. Обмен информацией должен способствовать достижению целей, стоящих перед группой, и при этом не создавать никому неудобств.
  8. Совместная работа не отменяет личный профессионализм. Вне зависимости от того, какие методы вы выбрали, никто не отменял принятой бизнес-этики и использования профессиональных качеств. Изобилующие ошибками неформальные сообщения и письма неприемлемы, как бы они ни рассылались — напечатанными на фирменном бланке или опубликованными в wiki.
  9. При совместной работе растет число тех, кто может чему-то научить. Инструментарий социальных сетей, такой как блоги и виртуальные сообщества, позволяет людям быстрее и проще присоединяться к сети экспертов, находя нужную информацию и работая совместно. Это помогает выстраивать отношения наставничества, при которых жаждущий знаний «ученик» может принимать молчаливое участие в сообществе наставников.
  10. Открытые стандарты способствуют расширению совместной работы. Подобно сообществу сторонников свободно распространяемых решений, в котором любой может бесплатно использовать код, передавать его другим и улучшать его, использование открытых стандартов при создании среды совместной разработки открывает возможность формирования сообщества добровольных помощников, что позволит увеличить эффективность работы.

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