Скажи мне, вот почему ты еще в Саратове? В Москву не уехал, в Америку не уехал?
Не люблю Москву, в Питере погода поганая, остальное — шило на мыло менять. В Калифорнии я жил два раза по месяцу, что это такое в туристическом виде представляю. Работать туда звали, даже прошел собеседование. Но во-первых, предложили маловато денег, а во-вторых, я сначала хочу найти жену (хотя бы будущую), и только потом думать о переезде. Ехать холостяком не хочется, надо чтобы был задел какой-то.
Работой доволен?
Да, полностью. Любимая работа — так же как и раньше. Есть интересный проект, задачи по его тестированию, и куча сопутствующей.
И это тебя полностью устраивает?
Не совсем. Я озвучил руководству, что хочу попробовать руководство проектами. Начитался литературы по современной методологии разработки, ходил на кучу тренингов, можно сказать, проникся ими — теперь жду возможности взять небольшую группу людей и реализовать все это на практике.
Ну если брать небольшую группу людей, то ПМ-ство будет мало отличаться от того, чем ты сейчас занимаешься. Разве что общение с заказчиками добавится.
Я буду определять как ведется разработка — это существенное различие.
И компания тебя устраивает.
По субъективным ощущениям, Мирантис — это потолок Саратова.
Ну давай разу к нечестным вопросам. Чем Мирантис лучше того же ГридДинамикса?
Еще раз надо подчеркнуть, что это субъективное мнение. Я ходил на собеседование в Гриды, они предлагают много денег, у них работает много гиков. При этом я пообщался с Викторией [Виктория Лившиц, основатель и директор компании ГридДинамикс], посмотрел на работающих там людей, и понял что удавлюсь, если буду работать рядом. Она очень жесткий человек, который ориентируется на собственные цели, а на людей, работающих рядом, ей плевать. В Гридах работают очень умные инженеры, но при этом я лично знаю ушедших туда людей, которые работать вообще не умеют и не хотят. В общем думаю, мне было бы некомфортно. Плюс мне ничего не сказали по проекту — только общие фразы. Вот я и остался. Ну и в конце концов, Мирантис — это все-таки широко известное на рынке имя, а про Гриды я сказать того же не могу.
Если все, чем ты занимаешься сейчас на работе суммировать одним словом, то ты кто?
По сути я все равно тестировщик.
Даже больше, чем менеджер? И хочешь стать скорее менеджером, чем тестировщиком или программистом?
У меня есть люди, которые знают что делать и редко меня теребят. То есть процессы поставлены — можно попробовать сделать тоже на большей группе людей.
По шкале от 1 до 100 твое погружение в область — это сколько?
80
То есть ты довольно глубоко в теме. Что тебе интересно, что кажется перспективным? В чем ты видишь будущую силу, развитие, прорыв?
Вообще, учу я всегда то, что требует проект, и это на удивление совпадает с моими интересами. Так я выучил ПХП, ДжаваСкрипт, Питон (та еще гадость, кстати).
Чем тебе Питон не угодил?
Ну, по сути я знаю еще 2 более удобных скриптовых языка с нетипизируемыми данными. Я пишу код на питоне, и через 2 дня уже не понимаю что там написано. Вывернутые конструкции джаваскрипта и то проще читать, чем эти кракозяблики.
Была бы твоя воля — что бы учил, куда двигался?
Ну всегда есть текущие модные тенденции. Сейчас, например, это Angubar JS — библиотечка, позволяющая делать фронт-энд на шаблонах.
И все же ты хочешь уйти в работу с людьми. То есть айти — не более чем инструмент.
Мне нравится создавать конечный продукт. Началось это еще в Фархипе, когда мы сделали маленькую страничку, куда выводились результаты тестов. В Мирантисе мы сели с Германом и переписали то же самое на совершенно другом уровне — завязали бизнес-требования с тест-кейсами, слинковали автоматизацию и ручное выполнение, завернули все это в красивую наглядную обертку. Уау, круто, многим нравится. Но она достаточно абстрактная, к каждой команде ее надо адаптировать. В перспективе из этого могла бы вырасти общая система тестирования, которая умеет отслеживать и управлять изменениями. К сожалению, QA-команды этого не приняли. Хотя прошло время, и сейчас на общих встречах начали подниматься голоса, что нужна общая система тестирования. Может быть, получится пропихнуть мое детище с какими-то изменениями, потому что готовые системы тест-менеджмента или очень дорогие, или убогие.
Ты упоминал, что не любишь опенсорс. За что?
У продуктов, разрабатываемых сообществом нет единого плана и правил разработки. Я за то, чтобы продукты работали. А опенсорс тут несколько хромает. Мало того, что каждый пишет как хочет, так к тому же все эти люди думают “Бегом-бегом, нефиг фиксить баги, давай еще вот такую фичу забубеним”.
Ясно. Вот ты говоришь, что интересно создавать новое. Есть понимание что?
Нет, главное, чтобы это использовалось.
По общим вопросам пойдем. Саратов в ряду Российских центров айти выделяется чем-то?
К нам лезет множество крупных и мелких компаний, тут полно программистов, и многие из них не стремятся уехать. Вообще, менять Россию на Россию — это менять шило на мыло. Коэффициент зарплат чуть меньше 2, так что уехав в Москву сильно больше зарабатывать не будешь. В общем Саратов меня не раздражает — просто хороший город.
С кем тебе было бы интересно почитать интервью?
В первую очередь мне интересен мой бывший менеджер, Герман [Наркайтис].
С какой-то стороны было бы интересно почитать про Ваню Грошева, хотя мы с ним и так регулярно общаемся на кухне. У него много опыта, в какой-то степени это будет взгляд другого поколения.
И Андрей Лазарев, Джава-разработчик. Он активно собирается уехать в Америку — хочется узнать почему так.
Айти-прорывы — это?
Дай подумать. Выход айфонов — они подкосили рынок. Соцсети.
Сейчас все кричат про облачные технологии, но по-моему это просто инструмент, революцией они не станут.
Еще много говорят про функциональное программирование. Мне же кажется, что вообще революций не будет.
Почему?
Область зреет, устаканивается. Изменения становятся мельче. Все эти технические новинки — гугльгласс, гуглькар — круто, но не взрыв. Идея дополненной реальности прекрасна, но андроид… это ужасно.
Вернемся к функциональному программированию. В чем революция — идее уже лет 60.
Оно нигде не используется! Это концепт, в теории позволяющий тратить в разы меньше сил на отладку и тестирование. У функционального языка нет внутреннего состояния, функция с одним и тем же набором параметров выдает один результат независимо ни от чего. Функция кэшируется, и за счет этого все работает быстрее. Рефакторинг проще, так как нет сотен текстовых файлов, в которых надо внести изменения. Мы знаем как работают функции, где они используются и т.д.
Нормальный рабочий день — сколько?
8 +- 2 часа. Переработки в компании не приветствуются, потому что люди теряют эффективность.
Тебя не о чем спрашивать — работаешь в компании своей мечты на работе своей мечты.
(смеется)
Вернемся к Саратову. Нужно ли Саратову общее пространство общения для айтишников? Какое-то место, где люди будут общаться не в рамках найма на работу или performance evaluation, а просто потому что они айтишники?
В бытность моей работы в Опенсофте была успешно провалившаяся попытка создать QA-сообщество. Люди очень инертны, и если у них не будет лидера, который постоянно пинает — давайте сходим туда-то, сделаем или обсудим то-то — то все рассыпется на глазах.
Ну давай говорить прямо. В то время (в районе 2010г) QA-сообщество только формировалось. Вообще в Саратове вся область находилась в ясельном возрасте. Было несколько безусловно грамотных специалистов, которые думали, что он столпы саратовского тестирования, и большое количество обезьян, которые тестировали формы (занимались чисто ручным тестированием — извини, читатель, никого не хотел обидеть — вырвалось!). То есть нечего объединять — этим людям не о чем общаться.
Видение в целом правильное, сообщества и сейчас нет. И я бы с тобой не согласился, если бы не одно но: в рамках Мирантиса между локациями (а это более 500 человек) есть такая инициатива, как QA-практика. Люди собираются каждую неделю и пытаются сформировать общее видение QA в компании. Оно отчасти работает, и подвижки есть. Проблема в том, что даже если эта группа людей что-то сделает, есть очень большая вероятность, что внутри команд разработчиков этим практикам никто следовать не будет. Менеджеры проектов скажут что-то типа “эти ребята молодцы, они придумали хороший процесс. Но у нас другой проект, нам это не нужно, а вот мое видение как все надо делать”.
Это нормально, что мнение ПМ-а повесомее, чем мнение QA-практиков. Ваша задача накидывать идеи, советовать. Как я понимаю, руководство компании успешно избегает ловушки “придумать нормы разработки и заставить всех работать именно так”.
Именно. Потому что даже если взять лучшие практики и повсеместно их насадить, это убьет все современные agile-методологии, и мы скатимся к авралам, “копать от меня и до обеда” и т.д.
Аджайл эффективнее водопада?
Намного. По крайней мере на реальных проектах. Нормально реализовать водопад можно на космических или военных заказах, медицинской технике. Там это отлично работает.
Расскажи, чем хороший тестировщик отличается от программиста?
Мануальщик или автоматизатор?
Бывают толковые, глубоко погруженные в область тестировщики, не занимающиеся автоматизацией?
Не встречал. Отличие от программиста в голове в том, что программист в первую очередь создает функционал, а тестировщик пытается его сломать. Даже если ты пишешь мега-фреймворк с автотестами, будет приятно если все 100% тестов пройдут, но еще приятнее если пройдет 99%, и выловится 2-3 ошибки. Вклад программиста в том, что он написал, и это просто видно. А тестировщик должен искать баги.
Мы понимаем, что QA — это не только и не столько тестирование. Нормальный QA-менеджер должен консультировать ПМ-а по вопросам best practices.
ПМ должен хотеть, чтобы его проконсультировали. И в этом загвоздка проектов. На мой взгляд в институте ПМ все еще довольно сыро. Молодые люди выскакивают обычно из программистов (вот как я сейчас хочу выскочить), и их установка — поскорее разработать и выпустить. Тестирование воспринимается скорее как помеха.
То есть пока QA — это все же тестирование. Злодей, который ловит баги и заставляет переписывать код.
Да. Мы движемся в нужном направлении, вычитываем документацию и т.д. На мой взгляд, о зрелости можно будет говорить, когда у QA-менеджера будет формальное право вето на выпуск релиза.
А этого нет? Значит, индустрия реально молодая. В промышленности, например, без подписи ОТК ничто никуда не пойдет. Срывайте отгрузку, убеждайте службу качества — как будет подпись, так и получите продукт.
Этого и близко нет, вот я хожу и пинаю всех вокруг — так жить нельзя. Хотя на некоторых проектах — на банковских, например — это есть, потому что цена ошибки очень высока. А на стартапах в приоритете выкатывание функционала.
Можешь рассказать про проект, которым ты сейчас занимаешься, это секрет?
Не секрет, все в опенсорс лежит. Сейчас все, извините, писают кипятком от Опенстека (Open Stack), потому что он позволяет бесплатно развернуть свое облако — то есть сделать то, что делают Амазон, ВМваре или Гугль с большими затратами. Там очень гордо заявлено участие NASA и поддержка Rack Space, но как любой опенсорс-проект, он очень и очень незрелый.
Откуда деньги на вычислительные мощности? У Амазона свой парк серверов, а у бесплатного проекта?
А вот тут самое интересное. Red Hat берут деньги за консультации и поддержку открытых продуктов. Здесь подразумевается то же самое.
То есть хочешь облако без поддержки — делай сам. Хочешь с поддержкой — добро пожаловать в реальный мир?
Да. Тут и начинается мой проект. Опенстек как таковой — очень сложная система, и даже очень толковый администратор со всей доступной документацией (а она очень своеобразная и отрывочная) за месяц может не суметь разобраться в основном фунционале запустить у себя облако. Для упрощения работы Мирантисом была написана библиотека Fuel, которая предоставляет более удбоваримые пользовательские интерфейсы для того чтобы развернуть ОпенСтек. И с ее помощью сисадмин в относительно короткие сроки способен что-то сделать. Но и это еще не наша зона ответственности. Поверх Fuel есть вебовская часть, которая предоставляет заказчику “Большую Красную Кнопку”, которая при минимальных настройках сети ставится с внешнего носителя и еще больше упрощает работу. В итоге кластер ставится на реальные ноды что-то около 2 часов.
Вы тратите на это деньги. А как проект монетизируется, и монетизируется ли?
Как я понимаю, нет. Задача Fuel на данный момент — получить работоспособный продукт, который умеет разворачивать Опенстек во всем многообразии возможных настроек и модулей. В этом заинтересованы внешние инвесторы, которые занимаются развитием Опенстека, поскольку в будущем это снизит их расходы или вернет им много денег.
Еще есть задача выпуска платной версии Fuel, с премиумными фичами. Но это пока только в стадии формирования идеи.
Вообще проект очень интересный из-за сложности системы. Многоуровневая библиотека 2 часа разворачивает кластер. Мне, с точки зрения тестирования, надо проверить что кластер развернулся успешно, и с данными настройками. То есть один тест-кейс на железе любой производительности длится 2 часа. Мы тестируем и Fuel, и Fuel-web в специальной тестовой среде, и результаты их работы. Плюс ко всему, достаточно высока цена ошибки, потому что все это распространяется в виде .iso-образа, и нельзя просто исправить ошибку, как в случае веб-сервиса. Пользователь, который скачает или купит этот образ и не получит работоспособного продукта будет оочень недоволен.
Степень сложности автоматизированных тестов, которые вы создаете. Тенденция идет в сторону больших фреймворков, или мелких автотестов, покрывающих куски функционала?
Есть и то, и то. Айти-индустрия движется в сторону BDD (http://en.wikipedia.org/wiki/Behavior-driven_development) в том числе и потому, что это сильно снижает порог требований на тестировщика. Основная идея клевая. Мы внешними сценариями, хранимыми в дополнительной системе управляем тем, что будет производиться в течение теста. Садится то есть один достаточно умный человек, и пишет функции, которые будут распознаваться. Для интернет-магазина это будет, например, “Закажи товар А в количестве Б”, цепочка таких действий объединяется в “пользовательскую историю” — рассказ о действиях пользователя. Но это структурированная история из заранее определенных фраз с переменными значениями, из которых тестировщик набирает нужный тест, скармливает его фреймворку, который потом проверяет выполнит ли этот сценарий система. Писать такой фреймворк — интересная инженерная задача. Обслуживать его — элементарная рутинная работа.
Какими инструментами автоматизации пользуетесь?
Селениум, потому что это лучшее на сегодня средство для автоматизации тестирования веб-интерфейсов. Он написан на Джаве, но, к сожалению, мы используем порт Селениума на Питоне…
Да он тебя просто преследует!
Коммьюнити ОпенСтека не признает ничего, кроме Питона. Я потратил кучу сил, пытаясь пропихнуть туда Джаву с нулевым результатом. Можно написать крутые тесты на Джаве и услышать
“…Молодец, а теперь пошел и переписал все на Питон”
Мне именно так и сказали. Должен сказать, что с точки зрения работы ОпенСтека Питон, наверное, действительно удобнее. Это интерпретируемый язык, который выполняется на лету, не требующий дополнительных инструментов или виртуальных машин. Он позволяет легко делать простые админские вещи класса “зайти на ноду по ssh”.
Хочешь зайти в мой мир — пользуйся моими инструментами.
Да. Так что даже простые тесты, работающие через API системы, я сейчас пишу на Питоне.
Отойдем от проекта, хотя все что ты говоришь безумно интересно. Скажи, ситуация с умными людьми в QA улучшается?
Нет. По-прежнему все прут в программисты, потому что мало кто понимает, чем занимается QA, да и ВУЗы у нас выпускают только программистов.
Факультет тестировщиков был бы убог.
Согласен. Но дать дополнительные курсы с разъяснением, что это такое и какова роль качества в проекте — было бы полезно.
Мне кажется, запустить такой курс в СГУ для Мирантиса — плевое дело.
В рамках наших собственных курсов оно есть. Но мало, потому что сейчас роль QA недооценена.
Понятно. Ну, сейчас ты перейдешь в ПМ-ы, и тебя это перестанет волновать.
Не знаю. Возможно, мне не понравится, и я вернусь.
Вряд ли. Если тебе хочется творить — никуда не денешься.
Однако, вопросы заканчиваются. Сейчас этот проект выстрелит, и каждый человек в Саратове прочитает интервью с тобой — передавай приветы.
Не любитель — кому надо я и так позвоню и скажу “Привет”.