В работе конференции, посвященной запуску в России новой серверной платформы Microsoft 2008 (см. www.pcweek.ru/themes/detail.php?ID=108040), принял участие Джим Маккарти, эксперт по вопросам коллективной разработки приложений, а также автор нескольких книг на эту тему. Он начал свою профессиональную карьеру более 30 лет назад и в течение этого времени занимался разработкой и тестированием ПО, реализацией маркетинговой стратегии, управлением проектами, а также обучением пользователей и менеджментом. Г-н Маккарти руководил командами разработчиков в таких компаниях, как Bell Labs, Whitewater Group и Microsoft, а с 1996 г. полностью посвятил себя исследованиям аспектов коллективной деятельности в процессе разработки продуктов и создания организаций. Помимо этого вместе с женой Мишель он проводит образовательные курсы и консультации по вопросам развития бизнеса.
Научный редактор PC Week/RE Ольга Павлова встретилась в Москве с Джимом Маккарти и задала ему ряд вопросов.
PC Week: Как бы вы охарактеризовали изменения в разработке ПО за последние пять — десять лет? Чем современный разработчик отличается от разработчика десятилетней давности?
Джим Маккарти: За последние десять лет фактически не было никаких глобальных прорывов в области исследований, не появилось никаких революционных идей. Но зато в эти годы произошла значительная популяризация идей, которые были высказаны прежде. Сошлюсь на свою книгу "Dynamic Software Development" (“Динамическая разработка ПО”), написанную в 1995 г. Высказанные в ней идеи, в частности концепция так называемой “гибкой разработки ПО” (agile software development), сейчас получили значительное распространение. Десять лет назад разработчики просто не знали о том, что жить и работать можно лучше. А сейчас они знают, в каком направлении надо совершенствоваться.
При этом самая большая перемена, которую я могу наблюдать, произошла за последние 12 лет, когда я уже ушел из Microsoft. Вместе с женой, моим партнером, мы создали лабораторию по изучению формирования и становления рабочих команд. Цель, которую мы поставили перед собой, состояла в том, чтобы помочь любому коллективу перейти к единому пониманию ситуации. Предлагаемый нами учебный курс представляет собой имитацию реальной деятельности, в ходе которой группа людей должна как бы заново сформироваться, выработать единый подход к решению задачи и на его базе создать продукт, служащий выпускной работой. А этим продуктом как раз и был курс обучения единому подходу. То есть на практике людям приходилось самостоятельно составлять такой учебный курс.
По мере прохождения учебного процесса они изобретали какие-то новые вещи, новые подходы к тому, чтобы сделать свою команду более эффективной и сплоченной. А мы, со своей стороны, эти идеи замечали и обобщали. Каждый раз, когда мы работали с очередной группой, в нашей копилке появлялись какие-то новые идеи. Но эту аккумулированную информацию мы не оставляли себе, а делились ею со следующей группой. И так, постепенно, это всё шло, пока неким естественным образом не образовалось то, что я тоже называю софтом. Другими словами возникла некая сущность, которая носит нематериальный характер и определяет взаимодействие между людьми.
И теперь у нас имеется то, что мы называем протоколами межличностного взаимодействия. Аналогично тому, как в Интернете все работают по протоколу TCP/IP, люди тоже взаимодействуют по некоторым протоколам. У нас разработаны такие протоколы для принятия решений, управления эмоциями, управления намерениями, формирования единого видения и т. д. Именно это я и считаю самым радикальным шагом вперед, который мне когда-либо приходилось делать с точки зрения организации работы с коллективом.
PC Week: Таким образом получается, что современным разработчикам работать намного проще, чем их предшественникам?
Д. М.: Я бы сказал иначе: жизнь современного разработчика несколько более рациональная, но вовсе не обязательно более легкая. Если бы те наработки, которые у нас сейчас есть, но пока еще недостаточно популяризированы, нашли бы более широкое распространение, то тогда жизнь, несомненно, стала бы намного проще.
Между прочим, наши протоколы люди используют не только на работе, а даже у себя в семье. Например, они предоставляют детям способ передавать свои эмоции и управлять ими, т. е. дают им язык для межличностного взаимодействия.
Мы называем протоколы межличностного взаимодействия базовыми, их насчитывается 11. Помимо них есть также базовые обязательства, или внутренние обещания приверженности определенным идеалам. О каких идеалах идет речь? Например, о таком: я всегда поддержу самую лучшую идею, я всегда выскажу наилучшую идею, которая придет мне в голову, я ничего глупого нарочно делать не буду и т. д. Таких обязательств также 11. И всё это вместе составляет основу, или ядро, разработки.
Рассмотрим один из 11 протоколов, который решает проблемы взаимодействия, связанные с откликом, — протокол совершенствования. Я даю по десятибалльной шкале оценку от 1 до 10 и описываю то, что мне нравится. А также описываю то, чего недостает, чтобы набрать 10 баллов. Вот и всё, что нужно делать в любой ситуации, где используется критика. Ее нужно рассматривать конструктивно, как средство для совершенствования предмета работы. Однако надо помнить, что если вы сами не можете стать лучше, то, значит, не имеете права на критику. В результате диалог становится более ответственным.
Этот протокол формализован в том смысле, что, какую бы оценку вы ни поставили тому или иному объекту, вы обязательно должны дать описание недостающих элементов, которые необходимы для получения полного набора баллов. Если вы не можете дать конкретные рекомендации, вы обязаны поставить 10 баллов.
Например, аттестация сотрудников. Вы садитесь со своим сотрудником и говорите ему, что за последние полгода оцениваете его работу на 7 баллов. Вы выделяете то, что вам понравилось: он вовремя выполнял задания, проявлял творческий подход и неизменно обеспечивал высокий уровень качества. Чтобы набрать 10 баллов, вашему сотруднику нужно продемонстрировать больше оригинальности или повыше поднять планку своих творческих устремлений. При подобном подходе не будет повода кому-то чувствовать себя незаслуженно обиженным. И если человеку скажут, что ему ставят “двойку”, то это не причина для огорчения, так как ему дали ценных рекомендаций на восемь баллов из десяти.
PC Week: Вы со своей женой написали книгу с очень интересным названием — “Software for your head” (“Софт для головы”). Она посвящена именно этим вопросам?
Д. М.: Да, мы написали 450 страниц текста как раз на тему ядра разработки. Мы назвали эти протоколы таким образом по аналогии с ядром операционной системы. Если у вас загружена ОС, это означает, что на ее базе можно исполнять разные приложения.
Тех, у кого это ядро работает в голове, мы называем “загруженными”. И поэтому курс с глубоким погружением, который мы ведем с женой, и называется Boot Camp [Boot в переводе с англ. — загрузка. — Прим. ред.]. То есть у занимающихся у нас людей софт “загружен” в голову. С нашей точки зрения, быть “загруженным” — это значит жить в состоянии повышенного осознания того, как идет и должно идти взаимодействие между тобой и другими людьми. Это повышает и эффективность взаимодействия, и его безопасность.
Мы также ведем в широковещательном режиме передачу как раз на эту тему, которая называется “McCarthy Show”. В ней принимают участие не только ИТ-специалисты, но и люди самых разных профессий, принадлежащие к разным слоям общества. Вообще говоря, что такое софт? Это способ организации идей. Возьмем, скажем, протокол TCP/IP. Он представляет собой способ успешного подключения любых компьютеров друг к другу. Поэтому “Софт для головы” — это средство, которое позволяет подключить друг к другу разных людей независимо от их культурной принадлежности, языка и т. д.
PC Week: Десять или даже пять лет назад считалось, что настоящий разработчик должен писать только на языке Си++ или в крайнем случае на Си. Сегодня в журналах для программистов этот язык практически не упоминается и его заменили другие языки типа .Net, Java и PHP. Считаете ли вы в этой связи, что язык Си разделил судьбу Фортрана и его могут использовать только суперэлитные программисты?
Д. M.: Судьба Фортрана ясна: он просто умер. А вот на Си и Си++ разработчики по-прежнему пишут приложения, которые находят спрос и на коммерческом рынке. И я считаю, что эти языки останутся с нами еще долгое время. Но из всех разработчиков количество тех, кто имеет дело с Cи/Cи++, и соответственно разработок на этих языках уменьшается. Это происходит просто из-за того, что объем разработок очень быстро разрастается.
Я бы сказал, что сегодня существует следующая иерархия разработчиков. Те, кто знает Си++ и использует его, — это боги высшей категории. А дальше идет пирамида, в основании которой находятся люди, программирующие на HTML. При этом те, что работают на Си++, чувствуют себя надежно защищенными, поскольку знают, что могут запрограммировать всё что угодно на чем угодно. То есть они чувствуют себя как бы магистрами вселенной. Но самое интересное здесь заключается в том, что какого-то там божественного искусства программирование на Си++ не требует. Бывает, что сложнее запрограммировать что-нибудь на HTML, чем на Си++.
PC Week: Сегодня можно наблюдать парадоксальную вещь: сложность и размеры программных проектов растут, для их реализации нужны большие коллективы с ролевой организацией, квалифицированные кадры... А такое впечатление, что настоящие прорывы и инновации получаются чаще всего у индивидуалов либо у компании из двух-трех студентов. Или такое представление обманчиво?
Д. М.: Это вы правильно подметили. Действительно, есть такое явление, что прорывы совершаются маленькими командами. А вот причина, почему так происходит, не совсем очевидна. Такие команды либо распадаются из-за каких-либо противоречий между их членами, либо становятся более сплоченными, приходя к общему видению (shared vision) и даже более того — к общему существованию (shared being). Это следующий уровень взаимоотношений между людьми, когда мы не просто верим в одни и те же вещи, а читаем мысли друг друга и думаем одинаково. И в этой связи необходимо понять следующее: почему команд маленьких много, а прорывов — мало? Например, можно создать команду из присутствующих в этой комнате пяти человек. Если сложить наши показатели интеллекта (IQ), то наверняка получится не менее 700 баллов. Это, во всяком случае, гораздо больше, чем у Моцарта, Шекспира или Толстого. Вопрос в том, сможем ли мы создать нечто большее, чем они? Конечно, нет. Если только не ударит молния, и нас не озарит какая-то гениальная идея.
Я в последнее время вообще много размышляю над тем, как бы сделать так, чтобы все могли складывать свои IQ. То есть, почему нужно ждать, пока не родится, скажем, Толстой? Вот если бы мы научились объединять интеллекты друг друга, то мы совершенно точно смогли бы добиться великих результатов. Причем здесь речь не идет о потере индивидуальности. На самом деле более цивилизованная среда как раз способствует повышению индивидуальности каждого человека, но конечно же при обеспечении некой корректности взаимодействий. Смотрите. Команды растут, большие команды распадаются на маленькие, но тем не менее количество прорывов не увеличивается, и всё по-прежнему сводится к частоте появления великих талантов. Так что моя работа сегодня направлена на то, чтобы довести частоту появления гениальных творений до уровня, который соответствует нашим пожеланиям. Например, нас пятеро, и давайте сложим наши возможности. И если мы сможем помочь друг другу избавиться от некой “зажатости”, то, условно говоря, сможем писать, как Толстой.
PC Week: Как известно, Open Source — это новая модель процесса разработки, предполагающая наличие независимого распределенного сообщества со слабыми организационными связями. Сегодня многие компании-разработчики пытаются применить ее для ведения собственных корпоративных разработок. На ваш взгляд, собирается ли Microsoft брать на вооружение опыт Open Source?
Д. М.: Работа над проектами Open Source требует, во-первых, распределения ответственности и подотчетности, во-вторых, силы воли и твердости характера и, в-третьих, общности видения, о которой я уже говорил. Достижение высоких результатов деятельности команды облегчается за счет отсутствия экономического давления. При этом Microsoft, насколько я могу судить по своему опыту, всегда стремилась создавать команды, обладающие общностью видения и приверженностью к достижению определенной цели. Лично я заразился любовью к работе, требующей взаимодействия, именно тогда, когда работал в Microsoft. И поэтому не вижу никаких принципиальных различий между моделью Open Source и той моделью, по которой работает Microsoft. А если и есть определенные нюансы, то самый важный среди них — это мотивация. Что двигает разработчиком Open Source, работающим по 10 ч в день над каким-либо проектом? Или что заставляет 200 человек тратить по 10 мин в день на ту же задачу? При этом, у кого ни спрашивай — у последователя Open Source или у сотрудника Microsoft — рецепт создания коллективного гения, ответа вы всё равно никогда не получите.
Я начал заниматься программированием в 1972 г. и шаг за шагом прошел весь эволюционный путь развития ПО. И я совершенно убежден, что у софта есть определенное предназначение на нашей планете, а именно: решить проблему межличностного взаимодействия. Вместе с тем я думаю, что изначальная причина того, что сегодня Microsoft имеет такую интеллектуальную собственность, гораздо больше связана с духом того времени, чем со степенью зрелости конкретных бизнес-менеджеров. Просто случился такой момент, когда дух программного обеспечения спустился на землю в Редмонде. И с тех пор это остановить невозможно. Само по себе изобретение ПО было настолько радикально революционным, что просто невозможно представить себе ситуацию, чтобы компания по разработке ПО работала бы не в прибыль.
А вот где в следующий раз спустится на землю дух программного обеспечения, я не знаю. Может быть, это случится в Москве. Если же говорить об энергетике, то ее сейчас больше в Москве и Киеве, чем в Редмонде. Это, на мой взгляд, зависит от многих факторов. В том числе и от того, насколько восприимчивыми окажетесь вы — живущие в России. Как известно, цивилизации приходят и уходят. Сегодня у меня складывается впечатление, что центральноевропейская и восточноевропейская цивилизации находятся на подъеме, а вот Западная Европа постепенно приходит в упадок.
И сегодняшнее мероприятие, совпавшее с определенными прорывами в области технологий, как раз является свидетельством эволюции разработки ПО в вашей стране. Что лично мне дала эта поездка в Россию? Наверное, прежде всего то, что я понял здесь значимость виртуализации. Я считаю, что виртуализация представляет собой революцию, которая имеет как минимум такую же значимость, как и появление ПК. Причем эта революция в большей степени служит интересам стран с менее развитой экономикой, чем стран, в которых экономика достигла максимального уровня. С этой точки зрения эквивалентом ДНК у Microsoft служит некоторое специфическое культурно-экономическое явление, которое может быть воспроизведено в каком-либо другом месте. А это как раз и есть модель Open Source, и об этом я пишу в своей последней книге. Более того, на самом деле ДНК — это и есть ПО, которое живет своей жизнью и воспроизводится само как ПО. Поверьте моим словам — это так и будет. И если вас когда-то воодушевили слова Билла Гейтса о том, что компьютер будет на каждом столе, то сегодня то, что происходит с виртуализацией, должно вызывать такие же чувства. Или послушайте, как Стив Джобс описывает будущее iPhone.