Функція проти функції [закрито]


16

Часто я чую, як керівники проектів говорять про особливості та функції. І мені просто так спантеличено розмежувати їх. Іноді я думаю, що функція еквівалентна історії користувача. Щось на кшталт "Як користувач, Боб повинен мати можливість бачити список своїх платежів", і вони називають це функцією. Іноді він стає таким же великим, як підсистема, щось на кшталт "можливість відправки SMS через веб-додаток". Функція, з іншого боку, іноді стає такою ж маленькою, як завдання, "реалізуючи групування цифр для введення чисел", хоча бувають випадки, коли вона стає такою великою, як ціла операція CRUD.

Моє запитання полягає в тому, як ми можемо відрізняти особливості від функції?


9
Я б не нав'язувався з цього приводу так багато. Вони обоє означають, що "програма повинна вміти робити те чи інше"; якщо керівник проекту робить відмінність, це, ймовірно, особисте, і вам слід просто прочитати між рядками, щоб отримати наміри.
tdammers

8
Або просто попросити їх визначення кожного. Напевно, вони вживають обидва як сипучі синоніми.
Péter Török

Відповіді:


35

Особливості - це те, що продають люди.
Функції - це те, що розробляють програмісти.


4
Гарна, пам’ятна, помітна відповідь.
Saeed Neamati

@RobertHarvey Чи є у вас конкретний аргумент проти цієї відповіді?
Zibbobz

@Zibbobz: Ви маєте на увазі, що це, окрім випадків, не повідомляє? Також зверніть увагу на тісні голоси, застосовані до питання.
Роберт Харві

8

Функції не вписуються добре в контекст історії користувача та переважно прозорі для користувача. Це може бути резервний процес або якийсь унікальний або загальний функціональний додаток, який дозволяє належним чином реалізувати інші функції або, можливо, інші функції.

Завдання з іншого боку - це окремі одиниці роботи, які необхідно виконати, щоб надати або функцію, або функцію.

У своїх проектах я, як правило, не розрізняю функцію та функцію, і я пишу розповіді користувачів щодо функцій та додаю функції або зусилля, що рефакторинг, як завдання, щоб виконати одну функцію.

Іноді це робить певні функції непотрібними на плані проекту, але це нормально, тому що якщо мені потрібні функції 1 і 2 та функція 3, щоб відновити належну функцію 1, то, можливо, єдиним моїм результатом для цього спринту буде функція 1, або можливо, взагалі немає результатів.

Поки до кінця спринту у мене ще працює програмне забезпечення, тоді мій проект Agile.


6

Особливості - це те, що може зробити ваша програма. Особливості є прямим результатом потреб користувачів та бізнес-цілей. Таким чином, функції програми існують в основному для задоволення потреб користувачів .

З іншого боку, функціональність полягає в тому, як реально реалізуються вищезгадані функції .


2

Для прем'єр-міністра "Функція" - це мета, а "Особливість" - це поведінка продукту, з яким користувач може взаємодіяти. Однак люди часто отримують двоє назад (що, на мою думку, так і є у вашому питанні).

Добирати мене з місця А до місця Б - це ключова функція автомобіля. Своєю причиною (метою) він існує. Кермо - це особливість, як і редуктор. Драйвер взаємодіє з кількома функціями, щоб досягти функції дістатися кудись.

"Функцію" тут не слід плутати з функцією (методом) мови програмування, яка говорить про реалізацію функціонального програмного забезпечення. Це, швидше за все, не те, про що говорив би прем'єр-міністр, коли вони посилаються на "Особливості та функції".

Немає приємної ієрархії функцій та функцій, оскільки одна функція може використовуватися для підтримки декількох функцій продукту.


0

Я вважаю, що для конкретної методології або конкретної культури вимог слід правильно розрізнити. Далі - моя власна інтерпретація.

Функція: Основна вимога, яка суттєво впливає на цінність програмного забезпечення, яку повинен мати користувач у конкретному випуску. Приклад: функція збереження у текстовому редакторі.

Особливість: Приємно мати можливості програмного забезпечення, яке додає цінність програмному забезпеченню, але не є абсолютною необхідністю для того, щоб програмне забезпечення працювало належним чином і виконувало свої функції. Наприклад, увімкніть функцію скасування у формі введення даних або збережіть документ у вигляді файлу gif для текстового редактора (провідного!).


1
Я не знаю, звідки ви їх взяли, але в IMHO найбільш звичайні визначення функцій та особливостей не роблять жодної різниці за важливістю.
Док Браун

Я кваліфікував anser, thnx для вашого коментаря.
NoChance

-1

За кожною функцією стоїть функціонал, необхідний для надання користувачу цільової мети функції.

Приклад: система реєстрації університету мала б функцію "реєстри студентів для занять". Це завдання вимагає трохи функціональності, а також доступу до бази даних. Дизайн цієї функції передбачав би розуміння фактичного завдання користувача - реєстрації для занять. Це було б необхідною умовою для "дизайну взаємодії", необхідного для полегшення користувачам завдання. Функціонал буде розроблений для реалізації вимог взаємодії.

Програмісти шукають функції для кодування. Дизайнери взаємодії шукають найкращий спосіб забезпечити цю необхідну функціональність шляхом розробки взаємодії програмного забезпечення з користувачем. Розуміння того, як користувач може найкраще досягти своєї мети, на перше місце. Далі слід визначити необхідну функціональність.

Сказане не є науковим, це лише моя думка.


2
Дякуємо, що додали ваше перше повідомлення до програмістів Stack Exchange. Будь ласка, подивіться на FAQ programmers.stackexchange.com/faq, щоб дізнатися, як писати запитання та відповіді, які отримають голоси та покращать вашу репутацію.
DeveloperDon

-1

Важливо пам’ятати про відмінність між функціями продукту та особливостями продукту. Функції - "відповідь продукту на набір задач користувача"; особливості - це "інструменти користувача", притаманні продукту, який використовується для виконання функцій. Проведення телефонного дзвінка - це функція; сигнал набору та клавіатура сенсорного тону - це функції, які використовуються для виконання цієї функції.


-2

Я погоджуюсь, що не варто нав'язувати себе тим, що терміни часто використовуються взаємозамінно в деяких контекстах. Але в більш широкому контексті управління, я думаю, є деякі важливі моменти. По-перше, PM може також означати менеджера продуктів. Хтось повинен взяти на себе відповідальність за вирішення того, що ринок буде підтримувати в ціні, даті поставки та особливостях. Я, як правило, вважаю, що ця функція є кращою, коли ви перебуваєте в маркетинговому контексті. Роль керівника проекту полягає в тому, щоб керувати проектом таким чином, щоб бажаний продукт був доставлений вчасно та в межах бюджету. Архітектору та дизайнерам ця функція надається і може розглядатися як передана функція в людській організації, що пропонує трансформацію та зберігання даних, але повинна бути перероблена, поки дизайн не буде зменшений до делегованих підрозділів роботи, які можуть бути призначені розробникам. . Часто буває так, що функція не чітко відображає набір функцій в машинній системі. Наприклад, швидкі та безпечні - це функції, бажані споживачами, але не можуть бути відокремлені в коді. Ці виникаючі властивості - це те, що ускладнює задоволення нефункціональних вимог.


цю публікацію досить важко читати (стіна тексту). Ви б не хотіли відредагувати його в кращій формі?
гнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.