Компания Luxoft вновь поддержала конференцию “Разработка ПО / CEE-SECR” (2012.secrus.org), в 2012-м став ее Agile-спонсором. На наши вопросы по этому поводу ответил Станислав Калканов, руководитель Центра Качества Luxoft.
В этом году компания Luxoft решила поддержать конференцию в качестве Agile спонсора.
Почему именно Agile? Какую роль играет Agile в вашей компании?
В настоящее время все больше и больше компаний, заказывающих разработку программного обеспечения, выбирают Agile в качестве подхода к выполнению проектов. Даже крупные международные компании, отличающиеся определенным консерватизмом, такие как инвестиционные банки или промышленные холдинги, стали все чаще использовать Agile. Это в первую очередь связано с глобальными изменениями на мировом рынке, высокими темпами развития информационных технологий и обострением конкуренции. Даже крупные компании уже не могут позволить себе 1-2 года собирать и утверждать требования к новой информационной системе, а затем еще 2-3 года их разрабатывать. Релизы должны выходить раз в квартал. Еще лучше, когда есть возможность постоянного обновления функциональности с возможностью быстрого анализа обратной связи от пользователей, как мы видим на примере публичных компаний типа Google или Facebook.
Luxoft развивает свою Agile практику с 2004 года. Сейчас в компании построен институт Agile коучей, которые могут работать как с командами внутри компании, так и с командами заказчика, помогая подбирать людей, обучать их, запускать Agile проекты и в разы увеличивать производительность работы Agile команд, а также выполнять полную трансформацию команд, работающих по традиционной модели разработки, в Agile.
Наличие сильной Agile практики позволяет компании получать интересные проекты в самых динамичных областях бизнеса наших клиентов. Для сотрудников компании это возможность боле тесно работать с клиентом, лучше понимать предметную область и потребности заказчика, быстро получать обратную связь, а это существенно повышает удовлетворение от работы и позитивно влияет на производительность. Для заказчиков это возможность быстро получить результаты работы, существенно снизить типовые проектные риски, гибко управлять составом и приоритетами работ, беспрепятственно вносить изменения, платить только за реализованную и принятую функциональность. Agile применяется во всех R&D проектах компании.
В чем, по-вашему, секрет успеха гибких методологий в России? Какие существуют сдерживающие факторы?
Успех гибких методологий во многом зависит от высокого уровня технической подготовки специалистов, а также от их умения общаться с заказчиком и их способности быстро разобраться в предметной области. Разносторонее и качественное высшее техническое образование, доступное в России, позволяет находить высококлассных специалистов, которым легко дается освоение современных подходов к разработке ПО.
Главным сдерживающим фактором использования гибких методологий в России, как ни странно, являются российские заказчики. К сожалению, пока еще многие заказчики не готовы работать в высокодинамичной среде, склонны к fixed price и fixed scope контрактам, которые не способствуют высокоитеративным подходам к разработке, отдают предпочтение исполнению буквы договора даже в ущерб реальному бизнес-смыслу работ. Еще одним сдерживающим фактором являются особенности культуры, например, определенная пассивность на уровне инженеров, неготовность разбираться с предметной областью заказчика, концентрация исключительно на технических аспектах решения, менталитет “начальник – подчиненный”, когда ожидается, что думать, предлагать и принимать решения и брать на себя ответственность может только “начальник”.
Вы являетесь руководителем Центра Качества Luxoft в течение нескольких лет. Какие изменения за это время произошли в этой области? Каковы, по-вашему, тенденции развития?
Основная тенденция – повышение требований к скорости выпуска новых функций программных продуктов. Для всё большего числа заказчиков одним из основных критериев выбора вендора становится готовность вендора работать короткими циклами и выпускать новую версию продукта раз в 2-4 недели со стабильным высоким качеством.
Это влечет за собой все остальные изменения, главные из которых – возрастающие требования к техническим навыкам и разностороннести разработчиков, а также необходимость обеспечения цикла напрерывной разработки и сборки и необходимость автоматизации тестирования с использованием test driven development и acceptance test driven development подходов.
Еще одной тенденцией является все более широкое использование открытых библиотек и фреймворков, которые позволяют быстро добавлять поддержку современных технологий: Big Data, Clouds, Mobile, интеграция с социальными сетями и пр.
Вы были участником SECR не раз, как, на ваш взгляд, изменилась конференция за прошедшие годы?
Конференция SECR с момента своего возникновения в 2004 году была ведущей индустриальной конференцией на территории центральной и восточной европы. В 2011 году конференция была существенно обновлена. Уровень организации и проведения мероприятия значительно улучшился. Это было заметно и по месту проведения конференции, и по ее техническому оснащению, и по уровню выступлений, приглашенных гостей и проводимых мастер-классов и open-space сессий. Конференция активно развивается, в ней появились секции по Agile, Cloud Computing, Mobile.
Какие вопросы, касающиеся контроля качества, было бы интересно обсудить на SECR? Что сейчас является наиболее дискуссионным, «горячим»?
Самой интересной темой для обсуждения, касающейся контроля качества, на мой взгляд, является опыт организации системы обеспечения 100%-ого качества, без которой невозможно представить себе крупный Agile проект. Т.е. опыт создания и использования фреймворка обеспечения качества, который позволяет в автоматическом режиме тестировать все слои приложения: базу данных, бизнес-логику, пользовательский интерфейс, гарантируя целостность и стабильное качество системы. Только такие фреймворки могут обеспечить беспроблемное использование гибких методологий при разработке крупных систем.
Для создания эффективного проектного фреймворка обеспечения качества нужно обладать хорошими знаниями по инструментальным средствам тестирования типа Cucumber, FitNesse, JBehave, xUnit, EasyB, JMeter, и др., владеть навыками и инструментами проведения автоматизированного и ручного ревью кода, использовать парное программирование, владеть средствами мониторинга качества кода типа Sonar, разбираться в интеграции всех этих систем с системой обеспечения непрерывной сборки типа Maven, Jenkins, TeamCity, а также уметь создавать единую интегрированную среду тестирования, которая свяжет все используемые модули и позволит добиться 100% покрытия тестами всей функциональности системы.
Это достаточно сложная с процессной, архитектурной и технической точек зрения задача. К тому же она кардинально меняет акценты в подходе к контролю качества по сравнению с традиционными подходами к разработке.
Что, с вашей точки зрения, является самым важным для обеспечения качества ПО? Что бы вы пожелали коллегам по цеху?
Самым важным в обеспечении качества ПО являются люди: их технические навыки и их умение эффективно использовать современные подходы к обеспечению качества. Необходимость наличия глубоких технических навыков у специалистов программной инженерии, работающих по гибким методологиям, является одной из ключевых тем, обсуждаемой в индустрии. В английском языке это называется термином Software Craftsmanship (Мастерство Программирования) и означает приоритет технических навыков специалистов над формальными сводами знаний и стандартами.
Еще одним важным “человеческим” аспектом обеспечения качества является вопрос ответственности за качество ПО. Широко распространено мнение о том, что за качество ПО отвечают тестировщики, и это – глубочайшее заблуждение. За качество ПО отвечает вся проектная команда, каждый вносит свой вклад в создание и обеспечение качества ПО.
Своим коллегам я хотел бы пожелать проектов с сильными командами, состоящими из настоящих мастеров программной инженерии, талантливыми инженерами, которые знают и успешно применяют современные практики и инструментальные средства разработки и обеспечения качества.
—-
Интервью Станислава Калканова, руководителя Центра Качества Luxoft, организаторам конференции Разработка ПО / CEE-SECR. 28 августа 2012. 2012.secrus.org.