Уточнение требований — первая фаза разработки IT-проекта, где важно определить его стоимость, потребности заказчика и то, какие ресурсы и специалисты для него потребуются. Лишь после этого команда сможет приступить к согласованию этапов работы и сроков их выполнения, а также к выбору методики приемочного тестирования продукта.

Чек-лист требований оценки проекта мы поделили на несколько блоков.

Функциональные требования к «удачным» сценариям

Для начала разработчикам нужно понять, что же должна делать система. То есть команде необходимо четко представлять, каким видит заказчик конечный результат работы. Нужен ему личный кабинет для клиентов на сайте или форма охвата? Какой будет форма регистрации пользователей и как они смогут обновить или восстановить пароли при утере? А также есть ли база клиентов и нужно ли ее загрузить на сайт.

Функциональные требования для нештатных случаев

Клиент хорошо представляет, как должна в идеале работать система. Но большая часть сил уходит на работу с ошибками, вызванными нестабильным интернетом, сбоем в работе сторонних серверов, нехваткой объема хранилища бэкапов и т. п. Нужно выяснить, каковы требования в этих случаях.

Нефункциональные требования

Этот блок будет состоять из 12 пунктов.

Производительность и мощность

Очень важно уточнить у заказчика все цифры и параметры. На сколько юзеров рассчитывать проект, какова должна быть скорость ответа при требуемых объемах данных и нагрузке на систему. Каков общий объем данных и сколько всего ресурсов будет потреблять проект в штатном режиме работы.

Не стоит позволять уменьшать производительность до минимума. Да, на стадии прототипа все будет окей, но в режиме полноценной работы система быстро выйдет из строя.

Как говорится, на игрушечной машинке далеко не уедешь.

Устойчивость

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

Надежность и восстанавливаемость

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

Безопасность

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

Масштабируемость

Без уточнения ожидаемых возможностей масштабирования — никуда. И не забудьте спросить заказчика о сроках и стоимости развертывания допмощностей.

Расширяемость

Проект можно сделать быстро и за небольшие деньги. Однако у него будут рамки в объеме данных, скорости, мощности и иных параметрах. Но продукт в сжатые сроки выйдет на рынок, получит отклик и отзывы пользователей, а заказчик сэкономит на инфраструктуре.

Если же заказчик хочет, чтобы у проекта были перспективы развития, ему следует быть готовым на куда большие затраты. И временные, и денежные. А, значит, и к риску, что конкуренты могут его обойти и выпустить свой аналог продукта быстрее.

Поэтому ваша задача — понять и удовлетворить потребности заказчика, и при этом учесть все имеющиеся ограничения по срокам реализации проекта и его стоимости.

Обслуживаемость

Очень важный пункт — какова должна быть доступность системы. Если ей будут активно пользоваться люди с разных уголков планеты, то останавливать ее для технических работ часто не получится.

Поэтому узнайте у клиента, кто будет ответственен за установку, обслуживание и обновление продукта и какова их квалификация. В зависимости от этого предусмотрите необходимый уровень сложности мониторинга, диагностики и обновления системы.

Эргономика

У заказчика нужно уточнить, каковы его требования к юзабилити и accessibility. И то, как быстро, по его мнению, должен освоить систему среднестатический юзер. Этими вопросами займутся ваши UX-эксперты.

Графический дизайн

У клиента уже может быть готов дизайн его будущего продукта. В противном случае, он скорее всего захочет, чтобы ваша команда его разработала. Этот момент и нужно уточнить.

Документированность

В случае, если устанавливать и настраивать разработанное вашей компанией решение будут работники клиента, понадобится составить для них инструкцию по применению. И от квалификации сотрудников зависит, насколько детальной и развернутой она должна быть.

Лицензионная чистота

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

Соответствие стандартам и законодательству

Оценивая IT-проект, невозможно проигнорировать требования законодательства в части хранения персональных данных, необходимости получить лицензию на отдельные виды деятельности, фискального учета. А также в части расположения серверов и хранения данных в определенных юрисдикциях.

Подведем итог

Следование данному чек-листу поможет максимально полно выяснить, чего ожидает заказчик. Таким образом, меньше риск, что позже вскроется, что он видел проект иначе. Устранение любой неопределенности и недосказанности со стороны клиента — залог вашего с ним успешного сотрудничества.