Как стать автором
Обновить

О качестве требований в ИТ проектах, начистоту (с позиции команды разработки). Часть 1

Тестирование IT-систем *Анализ и проектирование систем *Проектирование и рефакторинг *Функциональное программирование *Промышленное программирование *
По мотивам моей статьи, изданной ранее…

Вступление


Получить бы медаль, а уж с обратной ее стороной найдем, что делать.
(Георгий Александров)

В подавляющем большинстве работ, посвященных управлению требованиями, которые мне довелось читать [1], [2], [3] и другие, авторы хороводят вокруг заказчика, акцентируя основное внимание читателей на том, как максимально эффективно организовать работу именно с ним. Ну и конечно, львиная доля труда обычно посвящена вопросам преобразования собранной информации в некие проектные решения, моделирующие разрабатываемую систему, а также оформление их со спецэффектами, бантиками и рюшами. Разумеется это все важно и я ни в коем случае не хочу умолить значение этих аспектов формирования требований, но есть еще и обратная сторона. Ведь дальше требования должны попадать непосредственно в “цех” по производству программного обеспечения. И именно там они, до самого рождения целевого продукта, останутся основным сводом законов и правил, по которым он будет зарождаться и являться миру. Этот факт уже сам по себе определяет важность того, насколько точно требования должны соответствовать интересам специалистов, призванных воплотить их в конечном продукте.

А посему, давайте взглянем на качество требований глазами команды исполнителей: разработчиков, специалистов управления качеством, менеджеров проекта. Ведь именно эти люди и являются основными потребителями работы аналитика. И от того насколько точно созданные спецификации подходят конкретной команде для переработки их в готовый программный продукт, зависит качество и конечная себестоимость этого продукта.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 18K
Комментарии 2

О качестве требований в ИТ проектах, начистоту (с позиции команды разработки). Часть 2

Тестирование IT-систем *Анализ и проектирование систем *Проектирование и рефакторинг *Функциональное программирование *Промышленное программирование *
С частью 1 можно ознакомиться, перейдя по ссылке

Рекомендации по проектированию спецификаций требований с примерами


То, о чем не говорят, каждый понимает по-своему

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

Готовим читателей к знакомству со спецификациями


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

Пример обзора документа:



Для лучшего восприятия контекста разрабатываемой системы, помимо разделов, отобранных нами в структуру документа — как обязательные, я стараюсь включить в текст информацию о целях, которые должны быть достигнуты в результате разработки целевого продукта или его составного модуля. Разработчики все-таки должны осознавать, чего же желает заказчик получить на выходе проекта. Для описания этого раздела подойдут формализованные Потребности заказчика. Похожий раздел есть в большинстве стандартов, например в ГОСТ-34.602-89 [4] он называется «назначение и цели создания (развития) системы».
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 12K
Комментарии 6

Практика формирования требований в ИТ проектах от А до Я. Часть 1. Вводная

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

Пролог


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

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

Теперь я хочу рассказать, как можно качественно сформировать сами требования, ведя Заказчика от его «хотелок», к его счастливому и плодотворному сожительству с программным продуктом, его мечты.
Об авторских тренингах на тему: «Обучение проектированию ПО» подробнее можно узнать на моем YouTube канале
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 27K
Комментарии 5

Практика формирования требований в ИТ проектах от А до Я. Часть 2. Цели и Потребности

Управление разработкой *Управление проектами *Управление продуктом *Бизнес-модели *

Об авторских тренингах на тему: «Обучение проектированию ПО» подробнее можно узнать на моем YouTube канале

IV ОПРЕДЕЛЯЕМ ЦЕЛИ, ПРОЕКТА

Цель не обязательно должна достигаться. Порой это просто направление двигаться дальше.
Брюс Ли.


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

Цель данной группы работ: определить основные задачи, которые ставят перед собой группы заинтересованных лиц, участвующих в проекте.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 21K
Комментарии 2

Практика формирования требований в ИТ проектах от А до Я. Часть 3. Функции системы и Границы проекта

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

Об авторских тренингах на тему: «Обучение проектированию ПО. Функции системы» подробнее можно узнать на моем YouTube канале

VI Определяем функции системы и границы проекта


Каждая модель ограничена в своих ответах, но нет ограничения на то, как и что моделирует модель, как нет ограничения на человеческую мысль
Дуглас Т. Росс


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

Цель данной группы работ: максимально полно определить набор функций, который должен выполнять целевой продукт, для удовлетворения выявленных потребностей заказчика. Отобрать те из них, которые, могут быть реализованы в рамках текущего проекта.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 26K
Комментарии 7

Практика формирования требований в ИТ проектах от А до Я. Часть 4. Бизнес процессы, автоматизируемые системой

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

Об авторских тренингах на тему: «Обучение проектированию ПО» подробнее можно узнать на моем YouTube канале

VII Детализируем процессы, включенные в рамки проекта


Нужно усложнять, чтобы в результате все стало проще,
а не упрощать, чтобы в результате все стало сложнее.
Веслав Брудзиньский


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

Цель данной группы работ: на основании выявленных функций, определить сценарии использования, разрабатываемого целевого продукта.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 12K
Комментарии 0

Практика формирования требований в ИТ проектах от А до Я. Часть 5. Сущности предметной области и немного о стратегиях

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

VIII Определяем сущности предметной области


Все, что видим мы, — видимость только одна.
Далеко от поверхности мира до дна.
Полагай несущественным явное в мире,
Ибо тайная сущность вещей — не видна
Омар Хайям


Определив абстрактные хранилища продукта, мы получаем костяк для построения детальной модели данных. При проектировании структуры сущностей продукта, удобно использовать канонические диаграммы «Сущность-связь» (ERD), логическую диаграмму (Logic Diagram) или диаграмму классов (Class diagram).

Цель этой группы работ — спроектировать модель хранилищ данных для использования в продукте, а также задокументировать сущности системы и способы их взаимодействия.

Теория проектирования такого типа диаграмм детально изложена в литературе, описывающей работу с UML. Например, эта тема очень удачно представлена в [11]. Поэтому остановлюсь лишь на некоторых аспектах, интересных на мой взгляд,.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 14K
Комментарии 0

Практика формирования требований в ИТ проектах от А до Я. Часть 6. Поведение системы. Совершенстваоние требований

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

IX Определение поведения системы.


В очень многих случаях поведение … только потому кажется смешным, что причины его, вполне разумные и основательные, скрыты от окружающих.
Франсуа де Ларошфуко



После того как мы определились с перечнем основных сценариев и сущностей предметной области, необходимо сопоставить их друг с другом.

Цель данной группы работ: на основании выявленных сущностей и процессов, разрабатываемого целевого продукта спроектировать поведение системы, распределив ее по классам.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 5.3K
Комментарии 4

Практика формирования требований в ИТ проектах от А до Я. Часть 7. Передача требований в производство. Заключение

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Визуализация данных *Промышленное программирование *
Tutorial

XI Специфицируем требования


Требование — всего лишь временный посредник для решения проблемы реального мира.
«Фабрики разработки программ» [8]



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

Цель данной группы работ: на основании собранной информации о целевом продукте подготовить качественные спецификации требований, позволяющие максимально эффективно организовать процесс их реализации.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 5.7K
Комментарии 2

Анализ требований

Анализ и проектирование систем *Интерфейсы *Управление проектами *Развитие стартапа Управление продуктом *
image
Анализ требований — часть процесса разработки программного обеспечения, включающая в себя сбор требований к программному обеспечению (ПО), их систематизацию, выявление взаимосвязей, а также документирование.
https://ru.wikipedia.org/wiki/анализ_требований
Большинству уже интуитивно понятно, о чем идет речь, однако я еще не встречал людей, которые бы руководствовались интуицией в вопросах анализа требований и получили что-то годное к использованию.

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

На мой взгляд, для того чтобы избежать этой ситуации, надо всего-лишь посмотреть на процесс под другим углом…
Читать дальше →
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 35K
Комментарии 9

Анатомия распределенной команды — процесс подготовки требований

Прототипирование *Управление проектами *Agile *Развитие стартапа Управление продуктом *
Все мы знаем, какую боль в самых разных частях тела вызывают проблемы с требованиями у всех в Разработку ПО вовлеченных. Казалось бы даже у контор, которые давно на рынке, уже должны быть целостные практики формализации и подготовки требований — ан-нет, процесс в большинстве случаев достаточно примитивен, и нигде не расписан. Кому-то этого достаточно, но в моем случае команда наша еще и распределенная, да еще и с языковым барьером (к-к-ккомбо!).

image

Дисклеймер: Каждая организация уникальна — от внутренней структуры, и до того, как она общается с внешним миром. Так что я не считаю ни один воркфлоу (или бизнес-процесс, как любят говорить на русском) универсальным решением. Пост не претендует на полноту и исключительность, он скорее о том, что подобный подход работает у нас в SkuVault, в текущей конфигурации команды, и демонстрирует положительные результаты. Наша специфика — это 50 человек, 16 из которых оторваны от другой части 10-часовой разницей во времени.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 6.9K
Комментарии 6

Agile коммуникация в распределенных командах, не пересекающихся по рабочему времени

Управление разработкой *Управление проектами *Agile *Фриланс Развитие стартапа
Главный вопрос этого поста: какие же изменения претерпевает agile коммуникация (и скрам, в частности), натягиваясь на распределенные команды?

Для этого, давайте сначала классифицируем коммуникацию:

  1. стратегические митинги (планирование / ретроспектива)
  2. ежедневную синхронизацию (в том числе daily standups)
  3. прояснение рабочих вопросов

image

Давайте добавим еще одно измерение! Если попробуем наложить вышеприведенную классификацию на географию, то появляются дополнительные срезы для вышепреведенного:
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 8.2K
Комментарии 2

Как задолбать всех коллег: собираем требования к CRM

Блог компании RegionSoft Анализ и проектирование систем *ERP-системы *CRM-системы *Бизнес-модели *
Вы замечали, насколько по-разному покупают люди, например, смартфоны? Один подходит, уверенно берёт нужную модель и может проконсультировать всех вокруг, второй робко слоняется вдоль витрины, трогает экраны и оценивает вес и яркость, третий открывает камеру и делает селфи, четвёртый набирает «Привет! Как дела», тестируя клавиатуру одной рукой. Ничего необычного — каждый смотрит то, что ему важнее. Хуже, когда так же покупают CRM или ERP  — буквально с закрытыми глазами, бегло глянув на яркую презентацию или прочитав советы на форуме. Потом сыпятся негативные отзывы, а автоматизация вызывает стойкую неприязнь. Казалось бы, что проще — собрать требования и приступить к трезвому выбору вендора. Но нет, инструкцию будем читать потом, когда сломается… А вот, собственно, и подробная инструкция.

Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Просмотры 48K
Комментарии 34

МВД Украины озвучило требования к сотрудникам киберполиции и их зарплату

Информационная безопасность *
imageСегодня на специальном брифинге для журналистов в министерстве внутренних дел Украины премьер-министр Арсений Яценюк совместно с министром МВД Арсеном Аваковым объявил о создании отдельного Департамента киберполиции, которое будет заниматься проблемами информационной безопасности в стране. Структурно новое подразделение будет частью Национальной полиции и будет насчитывать 400 человек: среди них будет 187 инспекторов и 39 специальных агентов информационных технологий.
Узнать подробности
Всего голосов 29: ↑22 и ↓7 +15
Просмотры 21K
Комментарии 25

Нефункциональные требования: Масштабируемость

Анализ и проектирование систем *
Из песочницы
Автор: Adam Alami, PhD Fellow, IT University of Copenhagen (перевод с англ.)

ВВЕДЕНИЕ


Нефункциональные требования широко представлены в литературе. Нет недостатка в определениях и примерах нефункциональных требований. Международный институт бизнес-анализа (IIBA) определяет нефункциональные требования следующим образом:

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

Ключевыми словами в этом определении являются «не имеют прямого отношения к поведению или функциональности решения». Это либо «условия», либо «качества».

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

Качества: это бизнес-требования, которые определяют не системное поведение и не связаны с процессом, а являются требованиями к качеству решения.
Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры 25K
Комментарии 8

В РФ появился предварительный стандарт для мобильных приложений с 87 требованиями к их функционалу

IT-стандарты *Софт


Чиновники Росстандарта утвердили предварительный стандарт для мобильных приложений в России. Он содержит 87 требований к функционалу софта, о чем сообщает «Коммерсант». Одно из основных требований — возможность бесплатного ознакомления с возможностями платного софта. Пока что сам стандарт и его требования носят сугубо рекомендательный характер, но разработчики документа считают, что при создании новых приложений стоит ориентироваться именно на него.

Требования разделяются на несколько категорий, включая качество мобильных приложений, юзабилити, безопасность, производительность. Заместитель руководителя Роскачества Илья Лоевский заявил: «Раньше в России не было госстандартов в области мобильных приложений, и разработчики ориентировались на гайдлайны корпораций, в частности Google и Аpple».
Читать дальше →
Всего голосов 26: ↑20 и ↓6 +14
Просмотры 14K
Комментарии 100

Хороший код до Google не доведет

Терминология IT Исследования и прогнозы в IT *Карьера в IT-индустрии Лайфхаки для гиков IT-компании
Из песочницы
Долгое время работая в разных сферах ИТ, мы с исследовательской командой наблюдали все возможные проблемы становления разработчиков и все причины-следствия их дефицита. Нас интересовало: почему программист развивается в senior-специалиста так долго или вовсе им не становится? Откуда неоправданные ожидания с обеих сторон? И главное — что делать разработчику на каждом уровне, чтобы войти в привилегированную касту senior-ов, архитекторов, тимлидов и руководителей?

Мы провели обширное исследование среди программистов и их руководителей. Собрали требования к senior-разработчикам топовых компаний, возможности и пути к развитию до этого уровня, сгенерировали всевозможные инсайты и лайфхаки и трансформировали их в данную статью. Об всем этом и пойдет дальше речь.
image

Senior, who the f… is Alice Senior?


Анализ описания вакансий на hh и требований, которыми поделились руководители в очных беседах, показал — единого подхода к определению уровня senior нет. В одной компании это тот, кто способен сам спроектировать сложный модуль, в другой — подключиться к доработке отдельных решений, в третьей — тот, кто просто круче остальных.
Читать дальше →
Всего голосов 32: ↑17 и ↓15 +2
Просмотры 25K
Комментарии 218

Облачный чек-лист, или как нас оценивал заказчик

Блог компании КРОК Облачные сервисы *

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

Переносили все системы: тестовые среды, тест + прод, препрод, все виртуальные машины, виртуальные сервера плюс все системы виртуальной инфраструктуры. Даже поддержка у них своя появилась в России. От нас — только аренда ресурсов.

Проверяли они нас знатно, по масштабам: почти полный аудит ЦОДа. Но они смотрели не железо и теххарактеристики в основном, а то, как выстроены процессы ИБ и как соблюдаются разные SLA. С их точки зрения, именно процессы по стабильности SLA указывают на качество работы компании. И мы им рассказывали про каждый из компонентов детально.

Я хочу поделиться списком критериев к проверке. Потому что появилась хоть какая-то методология, ведь до этого мало какой заказчик так системно подходил к вопросу.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 5.6K
Комментарии 4

Запросы от пользователей и требования к продукту

Управление продуктом *
Очень много статей и книг о работе менеджера продукта, рассматривают вопросы стратегического мышления и инноваций. Безусловно, это базис. Мне же нравится обращать внимание на ежедневные рутинные задачи. Одна из таких работа с запросами пользователей и требованиями к продукту.

Аксиомой является то, что запросы на функциональность от пользователей не являются требованиями к продукту. Запрос может быть легко разделён на несколько требований, и наоборот, одно требование состоять из нескольких запросов от пользователей.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.3K
Комментарии 0

Двойственная природа требований к программному обеспечению

Анализ и проектирование систем *Проектирование и рефакторинг *Управление разработкой *

Некоторое время назад я обозревал искажение применяемых методик в производстве программного обеспечения. Углубившись в частность (применение DDD) мне хотелось намекнуть читателю на то, что идя на поводу у совиного менеджмента можно не выполнить свой долг инженера.


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


СvБ

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 4.4K
Комментарии 1