Требования в аутсорсинговых проектах
Коротко Когда ваше ПО разрабатывает или тестирует другая компания, требования становятся частью контракта. Они должны быть готовы раньше и написаны точнее, чем для собственной команды, потому что подрядчик сделает ровно то, что написано, — не больше и не меньше.
По материалам: К. Вигерс, Дж. Битти, «Разработка требований к программному обеспечению», 3-е изд. (Microsoft Press, 2013), гл. 23; И. Корнипаев, «Управление требованиями», слайды курса, раздел о тендерах RFI и RFP.
На этой странице
Главные идеи#
Чем отличаются такие проекты#
По сравнению с собственной разработкой Вигерс и Битти указывают на: - более медленную обратную связь между разработчиками и пользователями; - формальное, договорное определение требований, из-за которого расхождения в толковании всплывают поздно и обходятся дорого; - больший разрыв между тем, чего ждут заказчики, и тем, что они получают, при меньших возможностях скорректировать курс; - задержки при решении вопросов из-за разницы часовых поясов; - языковые и культурные барьеры; - то, что кратких требований, которых хватало внутри компании, здесь недостаточно, а бизнес-аналитик не всегда рядом, чтобы пояснить; - то, что удалённым разработчикам не хватает знаний о бизнесе, которые местные сотрудники накапливают со временем.
Авторы замечают, что офшорные проекты часто обходятся дороже ожидаемого — не из-за ставок, а из-за дополнительных усилий на точные требования, переделок из-за невысказанных требований, переговоров по контракту и более плотной коммуникации и контроля.
Требования — это контракт#
Заказчик выпускает запрос предложений (RFP) со спецификацией требований и критериями приёмки; поставщик оценивает работу, и стороны договариваются; поставщик создаёт и передаёт ПО и документацию. Без ежедневного контакта подрядчик не реализует требования, которые вам казались слишком очевидными, чтобы их записывать. Поэтому разрабатывайте требования раньше по графику и подробнее. Тщательность, которая внутри компании могла бы показаться избыточной, здесь становится достоинством.
Чтобы смысл дошёл#
- Визуальные модели преодолевают языковые барьеры и позволяют разработчикам проверить своё толкование, но только если подрядчик знает нотацию.
- Неоднозначные слова вроде «поддерживать» (support) вызывают настоящую путаницу, когда работа идёт на разных языках. Авторы описывают проект, где именно это слово её и вызвало. Избегайте также идиом, жаргона и культурных отсылок, явно указывайте форматы дат, единицы измерения и порядок частей имени.
- Для требований к качеству авторы советуют Planguage — структурированную нотацию для их точной формулировки.
Совместная работа#
- Запланируйте несколько циклов ревью. В некоторых культурах рецензенты избегают открыто критиковать чужую работу; выясните это заранее и скорректируйте подход.
- Авторы описывают провальный проект: в плане была неделя семинаров по требованиям, но не было времени на то, чтобы документировать, проверить и доработать спецификацию. При медленной связи на большом расстоянии график рухнул, а спор дошёл до суда.
- Поставляйте небольшими инкрементами, чтобы недопонимание всплывало рано.
- Записывайте каждый вопрос подрядчика и ответ на него в требования, в системе, доступной обеим сторонам.
- Некоторые поставщики соглашаются на невозможное, чтобы угодить заказчику, или стесняются сказать «я не понимаю». Задавайте открытые вопросы и договоритесь о явных правилах взаимодействия.
- Распределите нагрузку: заказчик предоставляет полную информацию, поставщик спрашивает, а не додумывает.
- Авторы описывают и офшорную команду, которая реализовывала каждое требование буквально, по одному, не понимая целого. В итоге заказчику пришлось самому переделать большую часть работы.
Изменения и приёмка#
Используйте единый процесс изменений и общие инструменты для запросов на изменение и дефектов, где бы ни находились участники. В контракте должно быть указано, кто платит за какой вид изменений: за новую функциональность или за исправления исходных требований. Определите критерии приёмки и включите их в RFP («начинайте, представляя конечную цель», как говорит Кови), а требования утвердите до передачи.
Проведение тендера#
Курс Корнипаева описывает сторону заказчика. Организации проводят тендер, когда им не хватает мощностей или экспертизы или когда привлекательным выглядит готовый продукт. Этапы: изучение рынка → запрос информации (RFI) → RFP → решение.
Со стороны участника тендера Корнипаев отмечает риск: вопросы, заданные во время тендера, могут дойти до конкурентов. Участник может не обращать внимания на проблему, сделать задокументированное допущение или всё-таки спросить. Участникам стоит сохранять все материалы тендера, включая допущения и незаданные вопросы: подписание контракта может затянуться, а проектная команда часто не совпадает с той, что готовила заявку.
Пример: структура RFP#
По структуре из курса Корнипаева:
1. Конфиденциальность
2. Введение: цель, границы, зависимости, документы, на которые даны ссылки
3. О заказчике
4. Инструкции для участников: условия, бюджет и принципы оплаты,
право заказчика изменить RFP или отклонить заявки,
требования к участникам и к их ответам, ценообразование
5. График: выпуск, уведомление об участии, вопросы и ответы, подача ответов,
презентации, короткий список или выбор, контракт
6. Критерии выбора: экспертиза команды, техническое предложение, стоимость
7. Приложения: вопросы к участникам; требования
(уровня заинтересованных сторон или системного уровня)
Для «Мастерской», вымышленной сети веломастерских, которая нанимает внешнюю команду, в приложении с требованиями собраны требования к записи и уведомлениям. По совету Вигерса и Битти туда же включены критерии приёмки, например «клиент может записаться, перенести и отменить запись из браузера на телефоне».
Чек-лист#
- Требования полны и утверждены до отправки RFP.
- Критерии приёмки включены в RFP.
- Неоднозначные термины убраны или определены в глоссарии.
- Модели используют нотацию, которую знает поставщик.
- Запланировано несколько циклов ревью, культурные привычки рецензентов понятны.
- Вопросы и ответы фиксируются там, где их видят обе стороны.
- Поставки небольшие и частые.
- В контракте указано, кто платит за какой вид изменений.
Источники и что почитать#
- K. Wiegers, J. Beatty. Software Requirements, 3rd ed. Microsoft Press, 2013. Рус. изд.: К. Вигерс, Дж. Битти. Разработка требований к программному обеспечению, 3-е изд. М.: Русская редакция; СПб.: БХВ-Петербург, 2014. Гл. 23.
- И. Корнипаев. Управление требованиями: слайды курса. Этапы тендера RFI и RFP и структура документов.