StarSoft увлеклась экстремальным программированием

Петербургская компания Star Software, основным бизнесом которой является оффшорная разработка ПО, подвела первые итоги внутрикорпоративной программы по использованию методов экстремального программирования.

Компания StarSoft Development Labs (Star Software) была основана в 1991 году. Сейчас она является одной из крупнейших в Петербурге компаний, работающей в области оффшорной разработки ПО. Головной офис StarSoft находится в Бостоне (США), также имеются центрs разработки в Петербурге и Днепропетровске. Компания специализируется на разработке заказных корпоративных приложений и портировании существующих систем на новые технологические платформы. Среди ее клиентов - CSC, T-Mobile, Macromedia, IBM, MSI Services, Dynix, Fellowes, Contex и др.

В 2002 году компания пошла на неординарный для российской оффшорной индустрии шаг – внедрение методологии экстремального программирования (XP). Она подразумевает использование ряда практик, которые в большинстве случаев считают неприемлемыми. Среди них можно выделить несколько основных моментов, таких как парное программирование, stand-up meetings, рефакторинг и оптимизация кода, ежедневная сдача готового программного продукта, постоянное тесное общение с заказчиком, максимальная простота кода без избыточного кодирования функциональности на будущее, отсутствие объемной технической документации. Особенность этого подхода – каждая из этих практик основана на эмпирическом опыте, а не на апробированных теоретических разработках.

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

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

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

Последней особенностью XP является отсутствие объемной технической документации. Впрочем, это не подразумевает отсутствие документации как таковой. Суть подхода состоит в составлении начальной документации, основанной на так называемых user stories, взятых на базовом уровне проекта, где еще нет глубокой технической детализации. В дальнейшем по ходу выполнения проекта документация дополняется новыми данными. Для сравнения: в обычном программировании изначально полностью прописывается техническое задание проекта.

«Мы являемся практически единственной компанией в России, которая активно использует методы экстремального программирования. Несмотря на скептическое отношение к этому подходу со стороны многих других игроков, мы довольны результатами внедрения данной программы. Это доказывается и нашим ростом – за прошлый год наши обороты выросли на 80 %», – прокомментировал генеральный директор StarSoft Николай Пунтиков.

Другие российские компании, работающие в области разработки ПО, не спешат вводить методы ХР в широкое применение. «В каких-то случаях методология XP оказывается действенной, в каких-то – нет. Если компания StarSoft использует данную практику, значит, они исследовали все плюсы и минусы данного подхода и смогли использовать его преимущества, - говорит руководитель компании eVelopers Андрей Нарвский. – В свое время мы пытались ввести XP у себя, но вынуждены были от него отказаться. В случае использования этой методологии вся компания должна обладать знаниями во всех областях, а это выполнить довольно сложно. Особенно это касается больших проектов. На данный момент в компании eVelopers применяются другие методологии, которые нас вполне устраивают».

Схожим образом обстоит дело с компанией «Рексофт», которая, в частности, почти не использует практику экстремального программирования и является сторонницей итерационной модели (RUP). «Некорректно было бы говорить о том, что XP является более или менее действенной методологией, нежели любая другая. Наша компания обычно работает с хорошо организованными заказчиками, которые используют RUP-методологию. Мы стараемся следовать проектной методологии клиента», - отмечает руководитель отдела рекламы и PR компании «Рексофт» Светлана Вронская.

«Технологии XP достаточно спорны. Надо отдавать отчет, что они идут вразрез с классическими стандартами разработки программного обеспечения. Вместе с тем они позволяют реализовывать проекты средних размеров в случае, если клиент не имеет четкого представления о том, что он хочет получить в результате проекта, и нет никакой практической возможности проведения предпроектного обследования и согласования базовой технической документации на начальных стадиях проекта. В некоторых случаях данная технология позволяет более эффективно использовать ресурсы компании, обеспечивает за короткие сроки получение первых результатов, понятных заказчику. Что касается разработки больших комплексных систем, данная технология вряд ли пригодна, поскольку уровень управляемости проекта достаточно низок, результат трудно предсказуем и требует слишком неформального взаимодействия с заказчиком, что не всегда бывает возможным. Наша практика использования методов XP сводится к ситуациям, в которых мы не можем организовать клиента на формализованный процесс разработки. В этом случае мы прибегаем к использованию XP как к вынужденной мере», - резюмирует технический директор компании Qbix Александр Красный.

Автор: Наталья Чумарова.

Тематики: ПО, Outsourcing

Ключевые слова: