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

Что такое метафора в контексте XP?

"Метафора" представляется одной из наименее понятных заповедей XP (Extreme Programming), хотя она должна быть (одна из?) наиболее важной.
Трудно понять и, возможно, "лампочку над головой, когда вы ее получите". Метафора кажется фронтом для того, чтобы "программирование было мистическим искусством". Остальным относительно легко следовать. Я прочитал немало книг, а затем некоторые... но он остается туманным.

  • Итак, как мне определить метафору для разрабатываемой Системы?
  • Как я знаю его хороший? Что отличает хорошую метафору? edit-clarification: Может ли плохая метафора принести больше вреда, чем пользы?
  • Что это значит?
  • Как мне лучше найти метафоры... или лучше, чем я сейчас?
4b9b3361

Ответ 1

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

Что предлагает XP, на мой взгляд, следующее:

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

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

Ответ 2

Здесь представлена ​​бумага . Но хорошим примером является этот

The metaphor has two purposes. The first is the communication described above. A user
ought to have an easier time speaking and giving examples about a "chameleon" than
about a window that changes transparency. A second reason is that the metaphor is
supposed to contribute to the team’s development of a software architecture.

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

Что касается некоторых преимуществ (снятых непосредственно из бумаги)

- The metaphor has been helpful in figuring out the overall design of the program.
- The metaphor has helped the team find a common vocabulary.
- We often use the metaphor in conversations with each other.
- We often use the metaphor in conversations with our customer.
- The metaphor is useful in helping everyone reach agreement about our
requirements.

Ответ 3

Идея метафоры в Extreme Programming заключается в разработке общего видения того, как работает программа. В лучшем случае метафора представляет собой простое воспоминание о том, как работает программа.

От Agile Business Coach:

Метафоры - мощное учение инструменты. Они используются в большом количестве полей. Цель метафоры состоит в том, чтобы создать мост понимания: человек, пытающийся объяснить новую идею или концепция пытается найти общий система отсчета между собой и человек, которого они объясняют идея. Затем они объясняют новые идея, использующая общий кадр Ссылка

Теперь на ваши вопросы.

Итак, как мне идентифицировать метафору для разрабатываемая система?

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

Как я знаю его хороший? Какие хорошая хорошая метафора?

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

Что это значит?

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

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

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

См. здесь подробную статью о XP, которая также охватывает метафоры.

Ответ 4

Хорошо, я исследовал этот вопрос чуть более одного дня и придумал немного лучше (чем когда я разместил вопрос) взять метафоры. Это оказалось немного длиннее.. поэтому не включил его здесь и опубликовал в моем блоге. JFYI.

http://madcoderspeak.blogspot.com/2008/10/who-moved-my-metaphor.html

Ответ 5

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

Статья идет гораздо подробнее, но, как итог, в нашем опыте было 5 ключевых черт, которые делают хорошую метафору:

  • Представляет одно представление.
  • Работает только с одним типом структуры.
  • Дает четкие указания относительно проектных решений.
  • Отдает свет на свойства системы.
  • Используется для совместного использования.

Следствие. Даже хорошая метафора все еще требует объяснения.

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

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

Ответ 6

Метафоры позволяют команде иметь общее понимание проекта. Это полезный инструмент для преодоления барьера, связанного с недоразумением, который, как правило, имеет почти любая команда из-за разных факторов/перспектив. Вам не обязательно использовать их, но это помогает, особенно когда вы работаете в какой-либо области или на каком-либо типе приложений, у ваших разработчиков нет предшествующего опыта. Для меня хорошим примером метафоры является знаменитый tree swings. Разработчики никогда не работали над тем, чтобы "размахивать", потому что правильная метафора так и не была найдена. В этом смысле концепция метафоры немного похожа на концепцию Vision в RUP, но, насколько я понимаю, она больше ориентирована на техническую сторону развития.

Отвечая на ваши вопросы:

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

И помните - метафора не могла растянуться бесконечно. Не ожидайте, что они будут идеальными.