Подтвердить что ты не робот

Сбор требований

Как вы относитесь к фазе сбора требований? У кого-нибудь есть хороший набор рекомендаций или советов? Какие хорошие вопросы задать заинтересованным сторонам?

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

4b9b3361

Ответ 1

Ты почти наверняка чего-то не хватает. Много чего, наверное. Не волнуйся, все в порядке. Даже если вы запомнили все и охватили все основные заинтересованные стороны, вы не сможете дать вам очень хорошие, четкие требования без какой-либо ссылки. Лучший способ сделать это - получить то, что вы можете от них сейчас, затем взять это и дать им что-то, на что можно реагировать. Это может быть прототип бумаги, макет, версия 0.1 программного обеспечения, что угодно. Тогда они могут начать рассказывать вам, чего они действительно хотят.

Ответ 2

Смотрите обязательный комикс ниже...

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

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

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

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

Надеюсь, это поможет!

enter image description here

Ответ 3

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

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

  • У меня есть идея в моей голове
  • Я преобразую это в слова и картинки
  • Вы интерпретируете изображения и слова
  • Вы рисуете образ в своем собственном сознании, что моя оригинальная идея была похожа на

И люди терпят неудачу в этом с беспокойной частотой через их восхитительные недостатки.

Agile делает все возможное для продвижения итеративного развития. Получение ранних версий клиенту важно для определения того, какие функции являются наиболее важными (то, что поставляется с 0,1 - 0,5 и.е.), помогает держать вас обоих на правильном пути с точки зрения того, как приложение будет работать и быстро идентифицирует скрытые функции, которые вы пропустите.

Двумя основными проблемными сценариями являются два конца шкал:

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

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

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

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

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

Ответ 4

Ничего себе, с чего начать?

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

Во-вторых, существуют разные требования.

  • Цели: что пользователь хочет выполнить?
  • Функциональный: что пользователь должен делать, чтобы достичь своей цели? (подумайте о шагах, чтобы достичь цели/с)
  • Нефункциональный: каковы ограничения, которые должна выполнять ваша программа? (думаю, 10 против 10k одновременных пользователей, рост, резервное копирование и т.д.).
  • Бизнес-правила: Какие динамические ограничения вам нужно встретить? (считайте расчеты, определения, юридические проблемы и т.д.).

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

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

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

Ответ 5

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

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

Требования должны быть проверяемыми. Если требование не может быть проверено, это не является обязательным требованием. Это означает что-то вроде "Система"

Требования должны быть конкретными. Это означает, что "Пользовательский интерфейс системы должен быть простым в использовании" не является правильным требованием.

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

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

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

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

Ответ 6

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

Ответ 8

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

  • Прослушивание описания одного абзаца системы, вытащите его

  • Макет UI

  • Формализовать известные требования

  • Теперь итерации между 3 и 4 с более функциональными прототипами и более подробными описаниями. Напишите тесты, когда идете. Сделайте это до тех пор, пока у вас не будет функционального программного обеспечения и полной, объективной, проверяемой спецификации требований.

Это мечта. Реальность обычно происходит после нескольких итераций, каждый из которых идет по голове и кодам, пока не пройдет месяц, чтобы проверить.

Ответ 9

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

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

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

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

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

Ответ 11

Я использую отображение разума (например, структуру разбивки на работу), чтобы помочь собрать требования и определить неизвестные (убийца проекта # 1). Начните с высокого уровня и прокладывайте себе путь вниз. Вам необходимо работать со спонсорами, пользователями и командой разработчиков, чтобы обеспечить вам все уголки и ничего не пропустить. Нельзя ожидать, что вы узнаете всю сферу того, что они хотят без их участия... вы - как руководитель проекта /BA - должны привлечь их к участию (самая важная часть работы).

Ответ 12

  • читать гибкий манифест - рабочее программное обеспечение является единственным измерением успеха программного проекта.
  • ознакомьтесь с гибкой практикой программного обеспечения - изучите Scrum, постное программирование, xp и т.д. - это избавит вас от огромного количества времени не только для сбора требований, но и для всего жизненного цикла разработки программного обеспечения.
  • регулярно проводить обсуждения с клиентами и особенно с будущими пользователями и ключевыми пользователями
  • убедитесь, что вы разговариваете с лицами, понимающими проблемную область - например. специалисты в этой области
  • Возьмите небольшие заметки во время переговоров.
  • После каждого КОНТРАКТА напишите официальный список требований и представите его для утверждения. Позже было бы трудно возразить против всех согласованных документов.
  • убедитесь, что ваши клиенты знают приблизительно, какие приблизительные затраты времени и денег для реализации требований "хорошо иметь".
  • убедитесь, что вы указали требования как "должны иметь", "должны иметь" и "славно иметь" с самого начала, чтобы клиенты понимали различия между этими типами.
  • объединить все документы в последний и окончательный анализ требований (или текущий для итерации или любой гибкий цикл программирования, который вы используете...)
  • помните, что требования меняются в течение жизненного цикла программного обеспечения, поэтому сбор данных - это одно, а управление и реализация другого
  • KISS - держите его как можно проще
  • изучайте также среду, в которой будет жить будущая система - все больше и больше технологических ограничений от устаревших или окружающих систем, поскольку компании не предпочитают бросать на мусор деньги, которые они инвестировали в течение десятилетий, даже если в нашем современном умы 20-летний код - мусор...

Ответ 13

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

Сначала узнайте, кто ваши пользователи - отдел XYZ,

Затем выясните, где они вписываются в организацию - часть Z-деления,

Затем выясните, что они делают в общих чертах - управляйте наличными

Затем в конкретных выражениях - собирайте наличные деньги из досок и проверяйте до мошенничества.

Затем вы можете начать с ними разговаривать.

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

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

Согласитесь с реальным решением с пользователями - получите лучшего поставщика красящей ленты или подключите электронные устройства к сети и загрузите журналы на центральный сервер.

Затем договоритесь о том, как они будут оценивать успех проекта.

Тогда и только тогда предложить и согласовать подробный набор требований.

Ответ 15

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

  • Используйте звукозаписывающее устройство, если это нормально с другим человеком, и информация громоздка.
  • Если вы услышали что-то важное и вам нужно некоторое разумное время, чтобы записать его, у вас есть два варианта: попросите другого человека подождать секунду или попрощаться с этой ценной информацией. Вы не запомните это правильно, спросите любого нейролога.
  • Если вы обнаружите, что точка нуждается в более глубоком просмотре или вам нужен какой-то документ, о котором вы только что слышали, убедитесь, что вы взяли на себя обязательство с другим человеком отправить этот документ или запланировать другое собрание с более конкретной целью. Никогда не говорите: "Я не забуду спросить об этом файле xls", потому что в большинстве случаев вы не будете.
  • Не долго после встречи, суммируйте все ваши заметки, записи и свежие мысли. Просто подведите итог. Создайте эффективные напоминания об обязательствах.
  • Опять же, сразу после встречи, самое время понять, почему сбор, который вы только что сделали, был не таким правильным, как вы думали в конце встречи. Это, когда вы сможете задать много значимых вопросов для другого собрания.

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

Ответ 16

Недавно я начал использовать концепции, стандарты и шаблоны, определенные Международный институт бизнес-аналитиков (IIBA).

У них довольно хороший BOK (Книга знаний), которые можно скачать с их сайта. У них также есть сертификат.

Ответ 17

Я написал статью в блоге о подходе, который я использую:

http://pm4web.blogspot.com/2008/10/needs-analysis-for-business-websites.html

в основном: вопросы, чтобы спросить своего клиента перед тем, как создать свой веб-сайт.

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

  • LM

Ответ 18

Требования Инженерия - это немного искусства, есть много разных способов сделать это, вам действительно нужно адаптировать ее к вашему проекту и заинтересованным сторонам. Хорошее место для начала - разработка требований Karl Wiegers:

http://www.amazon.com/Software-Requirements-Second-Pro-Best-Practices/dp/0735618798/ref=pd_bbs_sr_2?ie = UTF8 & S = & книги амп; QID = 1234910330 & ср = 8-2

и процесс разработки требований, который может состоять из нескольких этапов, например:

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

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

Я обычно считаю, что написание набора прецедентов и в том числе прототипы каркасных карт хорошо работают, чтобы определить исходный набор требований. С этого момента непрерывный процесс работы с техническими людьми и деловыми людьми позволяет уточнить и уточнить требования. Отслеживание того, что было изначально согласовано, и отслеживание дополнительных требований, необходимо для предотвращения ползучести. Переговоры здесь также играют небольшую роль между различными сторонами в соответствии с Разбитым Железным Треугольником (http://www.ambysoft.com/essays/brokenTriangle.html).

Ответ 19

IMO самым важным первым шагом является создание искажения слов, относящихся к домену. Когда ваш клиент говорит "порядок", что он имеет в виду? Что-то, что он получает от своих клиентов или что-то, что он посылает своим поставщикам? Или, может быть, оба?

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

Ответ 20

Я предпочитаю, чтобы процесс сбора требований был максимально простым, прямым и тщательным. Вы можете загрузить образец документа, который я использую в качестве шаблона для своих проектов в этом блоге: http://allthingscs.blogspot.com/2011/03/documenting-software-architectural.html