«ПО пользуется даже ваша бабушка»
— Какой главный тренд в разработке программного обеспечения?
— Глобализация. На мировом уровне происходит мощный сдвиг в сторону быстрой и очень эффективной разработки. 20 лет назад пользователями ПО были люди, имеющие компьютер, — то есть 1% населения Земли. Цифра, конечно, значительная, но не настолько. В наши дни ПО стоит на каждом мобильном телефоне, и почти каждый житель планеты имеет как минимум один телефон. Это миллиарды вычислительных устройств, оснащенных ПО. И миллиарды пользователей! Сейчас перед разработчиками стоит новый вызов: сделать ПО быстрым, глобальным и высококачественным. А использовать его будут простые люди — не эксперты и не программисты.
— Это тенденция к упрощению?
— Наоборот, программное обеспечение становится все сложнее. К интернету подключен ваш телевизор, а возможно, и стиральная машина, и холодильник тоже. В них установлено ПО, которым пользуетесь не только вы, но и ваша бабушка. Причем она делает это неосознанно.
Чем больше число пользователей, тем сложнее разработка. Уровень опытности пользователя остается низким. Это дополнительно усложняет задачу — как разрабатывать ПО эффективнее и для большего числа пользователей.
Люди дают нам обратную связь и выявляют проблемы каждый день, 365 дней в году. Программисты находятся под огромным давлением. У них стало меньше возможностей для размышлений, сосредоточения. Что вызывает больше погрешностей и больше работы.
— Как уменьшить это давление?
— Применять разные подходы. Один из них — бережливая разработка ПО (LeanSoftwareDevelopment, концепция, основанная на постоянном стремлении к устранению всех видов потерь, предполагает вовлечение в процесс каждого сотрудника и максимальную ориентацию на потребителя — «Хайтек»), которая изменяет процесс разработки коренным образом. В Университете Иннополис мы изучаем этот подход и ищем эффективные способы синхронизации разработчиков с клиентами, разработчиков с другими разработчиками и разработчиков с менеджерами по всему миру. Важно обойти формализм и бюрократию, которыми страдали организации 10–20 лет назад. Наша задача состоит в том, чтобы адаптировать процесс разработки к современным требованиям.
— Удалось что-то придумать?
— У нас есть идеи о методологии Agile (гибкая методология разработки — серия подходов к разработке ПО с использованием итеративной разработки, динамического формирования требований и постоянного взаимодействия специалистов различного профиля — «Хайтек»). Пытаемся применить ее к встроенным приложениям, системам, важным для безопасности, и киберфизическим системам (информационно-технологическая концепция, подразумевающая интеграцию вычислительных ресурсов в физические процессы — «Хайтек»). И исследуем вопрос о том, как люди функционируют в экстренных ситуациях, в условиях огромного стресса. Представьте, что на атомной станции происходит взрыв из-за сбоя в ПО. Как сделать так, чтобы люди работали 24 часа в сутки, 7 дней в неделю, пока не устранят утечку. В университете мы изучаем мозговые импульсы разработчиков, чтобы понять, как они изменяются в подобных ситуациях.
— То есть ключ к разгадке в головах?
— Я исследую уровни сосредоточенности разработчиков при разных условиях. Ведь ПО без багов не бывает. Попытка спроектировать программу без багов — утопия. Даже самое совершенное ПО не обойдется без них. Поэтому я изучаю, при каких условиях вероятность багов в коде минимальна.
Компания из Петербурга предоставила нам чашки ЭЭГ (электроэнцефалография — «Хайтек»), при помощи которых мы измеряем мозговые волны во время разработки. Цель — проанализировать то, как разные ситуации влияют на поведение людей. Изучая мозговые волны разработчиков, мы минимизируем количество их ошибок. В конечном итоге, мы хотим сделать методику Agile еще более подходящей, адаптированной и полезной.
«Командная работа — изменит процесс разработки»
— Появится ли другое поколение разработчиков? Какими они будут?
— В Университете Иннополис мы совмещаем технические и фундаментальные знания математики, компьютерных наук и программирования с межличностными навыками. Мы воспитываем разносторонних и целостных специалистов, которые справляются как с техническими задачами, так и с межличностными проблемами, понимают требования и работают в команде. Потому что командная работа — единственное, что может изменить процесс разработки. Это хорошо описывается Agile-методом.
— В сфере компьютерных наук по-прежнему мало девушек.
— Да, гендерный разрыв действительно существует, и мы работаем над этой проблемой. Недавно я был на выпускном вечере в местной школе. И многие выпускницы планируют поступить в Университет Иннополис. Интересно, что изначально в сфере компьютерных наук девушек было больше, но за последние годы их количество уменьшилось.
— Будет ли больше программистов? Смогут ли люди сами писать программы для себя?
— Разве обычные люди умеют решать дифференциальные уравнения или задачи минимизации нулевой функции!? Все умеют складывать. И каждый человек может написать простую программу. Но когда программа становится сложной, требуется квалифицированный специалист, который справится с задачей. Даже если кажется, что это сделает любой.
Некоторые думают, что сложения и вычитания достаточно для выполнения требуемых операций. И при некоторых условиях это так. Но только за счет высочайшей производительности системы. Поэтому этот подход нереалистичен. Нам требуется больше специализированных профессионалов для встречи с современными сложностями, с которыми все труднее справляться.
«Мне нравится Россия, потому что тут люди думают»
— Каким должен быть IT-директор будущего?
— Красивым и элегантным. Шучу! IT-директор будущего, как и настоящего, обладает максимальной технической компетенцией и межличностными навыками. Мы находимся в среде, где требования крайне сложно выразить. Поэтому наши опытные коллеги, профессионалы, IT-директора, разработчики должны понимать нужды людей вокруг, нужды клиентов и пользователей — это обязательно, иначе вы потеряете бизнес.
— Чтобы соответствовать нуждам бизнеса, ПО должно быть практичным, удобным и простым. Но в больших компаниях системы редко отличаются красивым дизайном или удобством в использовании
— Тут непонятно, действительно ли дизайн такой уродливый, или вы просто к нему не привыкли.
— Ну, красота спорный момент, но удобство..
— Вы когда-нибудь были внутри кабины нового Boeing 787?! Или последнего Макдональда Дугласа (американская авиастроительная компания, объединившаяся в 1997 году с Boeing — «Хайтек»)?! Если туда попадете, вам будет не по себе от всех переменных, которыми управляет пилот. И представьте себе, что этих переменных в самолете меньше, чем в ПО-системе. Так что ПО производит элементы высокой сложности. И мы справляемся с этой сложностью. Руководство для разработчиков, для пользователей — дело не шуточное. Что же делать?
На помощь приходят стандарты. Если применять один и тот же подход в различных контекстах, люди обучаются. Единственный ли это способ? Не знаю. Но это способ. Некоторые писали код совершенно другим способом, как, например, Smalltalk. Но либо это не имело успеха, либо так и не получило широкого распространения. Потому что, как ни парадоксально, в индустрии программирования продукт часто живет дольше, чем в других индустриях. В наши дни оперируют ПО-системы, которые были разработаны в 80-х и 90-х, не так ли? Это значит, что ПО обладает большей инерцией, в ней больше силы.
— Чему вы учите своих студентов?
— Быть смелыми и умными. Думать головой.
— Это всегда пригодится.
— Согласен. Именно поэтому мне нравится Россия, потому что тут люди думают. Когда читаешь русскую литературу, становится очевидно, что эти писатели принадлежат думающему народу. Это не просто пустой звук. Каждая страница требует размышлений, даже если поначалу так не кажется. И это нечто уникально, восхитительное.