Профессиональная конференция по управлению интернет-проектами

20 и 21 сентября 2010

Три Кита-атланта систем поддержки разработки

Доклад принят в Программу конференции
Максим Ванюшкин (Команда Тинькофф — это разработчики, тестировщики, SRE-инженеры, архитекторы, аналитики, продакт-менеджеры, дизайнеры и другие специалисты. Вместе они создают финтех-продукты, которыми пользуются около 40 миллионов клиентов. Тинькофф развивает IT-индустрию, поддерживает комьюнити и делится экспертизой.)
Максим Ванюшкин

Разработка ПО всегда сталкивается с одними и теми же проблемами групповой работы над кодом, документацией, тестами, ошибками и требованиями, а также корпоративными знаниями. И системы поддержки разработки – системы управления версиями, коллективного редактирования, учета проблем и т.п. как раз и являются тем магическим компонентом, разрушающее древнее проклятие Фреда Брукса о невозможности больших эффективных команд.

Однако каждая компания делает свой выбор. Кто-то увлекается изобретением систем собственной разработки – впрочем, агитировать против «изобретения велосипеда» достаточно банально.

Кто-то идёт к вендорам и покупает платные системы. К сожалению, интегрированность закрытых инструментов обычно означает страшную негибкость и неудобства, если отклонится от магистральных сценариев. Плюс, конечно, дороговизна. А интегрировать разрозненные закрытые инструменты для создания удобного фреймворка сложно и неинтересно – разумно только в очень редких случаях, когда у платной системы нет альтернативного аналога с открытым исходным кодом.

Может взять интегрированные системы-фабрики, используемые для поддержки open-source разработки? Увы, по каждому функционалу они проигрывают «специально заточенным» системам, например, интегрированные «вики» и «трекеры» сильно проигрывают соответствующим проектам-лидерам. Плюс коммерческая разработка – это большая скорость, это четкий ритм, это серьезное разграничение прав, это централизация и контроль, это необходимость гибкого сочетания синхронной и асинхронной работы и высокого соотношения сигнал/шум. С другой стороны в корпоративном интранете с доверенной средой есть много плюсов, не учитываемых системами, ориентированными на работу в агрессивном интернете, с вандализмом, хакерами и полными идиотами.

Наш вариант – оставшийся, с интеграцией разрозненных, но очень мощных и популярных систем с открытыми исходным кодом. Тут возникает проблема бесплатного выбора даже из open-source систем успешно используемых в крупных проектах – полдесятка ведущих систем управления версиями, вики-системы, системы планирования задач, учета ошибок и тестов, коммуникационные движки (почтовые списки рассылки, форумы, блог-движки). И брать все нельзя – хоть это и бесплатно, «конфликты использования» и затраты на поддержку аукнутся сторицей. А ведь вроде как нужны и корпоративные порталы, и системы обучения, и многое другое.

Как собрать этот пазл – в некотором смысле вопрос вкуса. Но у нас давно получилось так, что основой – теми самыми тремя китами, являются Система Управления Версиями, Трекер, и Вики-Система. В нашем случае это были дикие Subversion, Bugzilla и MediaWiki, которых мы приручили, добавив множество доработок нужных для корпоративной разработки (единая авторизация, система прав, и т.п) и более того, на основе которых вырастили остальные полезные системы (учет тестов, порталы, форумы, блоги, дистанционное обучение, эффективный поиск и информационные потоки).

Мы не просто расскажем об опыте интеграции и покажем все это, ведь хотя объем наших доработок относительно невелик по сравнению с общим объемом систем, это слишком чувствительные затраты, чтобы кто-то быстро повторил наш опыт. Мы идем на большее («Talk is cheap, show me the code» © Линус Торвальдс) и начинаем публиковать в open-source используемые нами системы, с доработками и расширениями. Мы предлагаем сообществу совершенно бесплатно установить все это у себя, и возможно, присоединиться к развитию этого инструментального фреймворка.

Комментарии