Как избежать “плохих” [закрытых] требований

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

10
задан Cylon Cat 7 November 2009 в 00:17
поделиться

11 ответов

Для успешного выявления требований вам необходимо

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

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

Эта картинка моя любимая :)

enter image description here

15
ответ дан 3 December 2019 в 14:34
поделиться

Большая часть методологий гибкой разработки состоит в том, чтобы принять тот факт, что требования БУДУТ изменяться.

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

4
ответ дан 3 December 2019 в 14:34
поделиться

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

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

В этом контексте« требования »выражаются более свободно. определены, и они несколько развиваются по мере выполнения проекта.

3
ответ дан 3 December 2019 в 14:34
поделиться

В Agile мы используем аббревиатуру INVEST. Истории (которые заменяют требования) должны быть:

  • I - независимые
  • N - обсуждаемые
  • V - ценные
  • E - оценочные
  • S - маленькие
  • T - проверяемые

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

3
ответ дан 3 December 2019 в 14:34
поделиться

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

Как можно избежать этой ситуации? Убедитесь, что требование:

  • ограничено как по времени, так и по ресурсам (например, $)

  • testable

Или вы работаете над «разомкнутым циклом», и я уверен, что вы понимаете последствия.

Обратите внимание , что иногда требования имеют скорее «качественный» характер: это дело менеджера / команды по продукту, чтобы определить для него «количественное» определение.

2
ответ дан 3 December 2019 в 14:34
поделиться

Я думаю, вы обнаружите, что если вы интерпретируете это следующим образом, это будет иметь больше смысла:

«X% программных проектов терпят неудачу из-за неправильного определения требований»

Есть много вещей, которые вы можете сделать

  • Убедитесь, что вы действительно можете протестировать требование
  • Убедитесь, что аналитик действительно понимает, что на самом деле означает пользователь . Часто то, что пользователь просит, на самом деле не то, что ему нужно.
  • Убедитесь, что разработчик понимает требование. Если разработчик получает плохую спецификацию и должен сделать предположение, которое оказывается неверным, то время будет потрачено зря, когда программист должен исправить это предположение, помимо обычных ошибок.
  • Убедитесь, что пользователь действительно тестирует что их требования были выполнены. Лучше (обнаружено) поздно, чем никогда.
2
ответ дан 3 December 2019 в 14:34
поделиться

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

1
ответ дан 3 December 2019 в 14:34
поделиться

Вероятно, они имеют в виду «неправильно переданные» требования.

Если задуматься, существует много способов неверно сформулировать требования, намеренно или иным образом. Некоторые способы решения проблемы:

  • Осознайте, что требования системы могут постоянно меняться. В противном случае клиент скажет: «Да, это изменилось, вам никто не сказал?»

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

  • Убедитесь, что есть горстка людей, ответственных за доведение до вас требований - у этих людей (не более 5 в проекте среднего размера) должен быть БОЛЬШОЙ стимул предоставлять вам всю информацию для успешной реализации. Если у тебя нет этих людей, вы, вероятно, потерпите неудачу, поскольку все будут слишком заняты, чтобы объяснить вам что-то, и у них будет стимул не разговаривать с вами, поскольку вы сможете утверждать, что X человек сказал вам реализовать систему, как вы это сделали. Вам нужна поддержка руководства в создании этой группы людей.

  • Вам необходимо проверять предположения с другими людьми. Иногда вам нужно задать один и тот же вопрос пятью разными способами.

  • Бойтесь абсолютов ... «Цена продажи не может быть изменена» иногда означает: «Я бы хотел, чтобы было реализовано переопределение надзорного органа в случае, если цена должна быть изменено для текущего клиента »

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

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

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

1
ответ дан 3 December 2019 в 14:34
поделиться

Класс XProperties Криса Мэра может стать хорошей отправной точкой.

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

CONST_1 = shoes and ships
CONST_2 = sealing wax
SomeValue = {CONST_1} and {CONST_2} 

В этом примере свойство SomeValue оценивается как «обувь и корабли и сургуч. "


См. также: http://webcache.googleusercontent.com/search?q=cache:gCgFCpEgmsgJ:www2.sys-con. Возможный способ справиться с этим либо означает наличие хороших бизнес-аналитиков, которые могут выполнить требуемый анализ или иметь хороший готовый продукт, который мог бы удовлетворить этого пользователя (или нет).

  • Аналитики не могут обеспечить надлежащее качество требований. Да, бывает. Нанимайте лучших аналитиков / экспертов по технологиям, но до сбоя, а не после . Требования к тестированию, анализ случаев использования, построение диаграмм состояний как можно раньше понять охват кейсов пользователей и скоро. Другими словами, это связано с общим моделированием.
  • Что ж, существует вероятность неправильного перевода маркетинговых требований / модели в технические спецификации.
  • Проблема качества проектирования (реализация не может соответствовать требованиям).
  • Что нужно сделать, чтобы преодолеть эти проблемы? Давайте позволим инженерам оставлять отзывы, давайте не будем закрывать требования и делать их максимально гибкими. Часто даже при наличии в целом хороших согласованных требований мы сталкиваемся с некоторыми аппаратными ограничениями низкого уровня на этапе реализации, и нам необходимо отслеживать изменения. С другой стороны, давайте разбираться в клиентах, а не только в технологиях. Я видел множество проектов, в которых большая часть работы была выброшена только потому, что они выглядят хорошо для разработчиков, а не для клиентов. Чем лучше вы общаетесь с клиентом, тем меньше вероятность таких случаев.

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

    1
    ответ дан 3 December 2019 в 14:34
    поделиться

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

    Есть отличная книга по сбору и пониманию требований под названием Анализ пользователей и задач для дизайна интерфейса , написанная Джоанн Хакос и Дженис Редиш. Это большая книга, но она очень удобна для чтения и наполнена практическими советами и инструментами.

    1
    ответ дан 3 December 2019 в 14:34
    поделиться

    Что делает требование плохим? Тот, которого там нет

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

    Но для меня один из худших типов «плохих требований» - это то, чего просто не хватает. Я вижу это снова и снова в системах. Через день после запуска пользователи говорят: «А как насчет XYZ? Нам это действительно нужно». На что команда проекта отвечает: «XY что? Мы работали над этим проектом год, и СЕЙЧАС вы нам рассказываете?»

    Почему это плохо?

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

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

    Как этого избежать?

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

    Конечно, это нелегкая сделка. Многие проекты будут содержать бизнес-анализ и тестирование в кратчайшие сроки, чтобы поддерживать всемогущие показатели «вовремя и в рамках бюджета». Но если вы хотите избавиться от этих недостающих требований, вы должны позволить пользователю работать с ними. Именно тогда они узнают то, что они считали само собой разумеющимся на сеансе устного определения требований. Agilists добавят, что этот тест необходимо проводить как можно раньше и как можно чаще, чтобы выявить эти риски и дать команде проекта время определить свои приоритеты и внести коррективы, если это необходимо.

    0
    ответ дан 3 December 2019 в 14:34
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: