Característica frente a función [cerrado]

16

A menudo escucho a los PM (Project Managers) hablar sobre características y funciones. Y estoy tan confundido de diferenciarlos. A veces pienso que una característica es equivalente a una historia de usuario. Algo así como "Como usuario, Bob debería poder ver una lista de sus pagos", y lo llaman una función. A veces se vuelve tan grande como un subsistema, algo así como "la capacidad de enviar SMS a través de una aplicación web". La función, por otro lado, a veces se vuelve tan pequeña como una tarea, "implementar la agrupación de dígitos para entradas numéricas", mientras que hay casos en los que se vuelve tan grande como una operación CRUD completa.

Mi pregunta es, ¿cómo podemos diferenciar la característica de la función?

Saeed Neamati
fuente
9
No me obsesionaría tanto con esto. Ambos significan "el programa debería ser capaz de hacer esto o aquello"; Si un gerente de proyecto hace una distinción, probablemente sea personal y solo debe leer entre líneas para extraer la intención.
tdammers
8
O simplemente pregunte por su definición de cada uno. Probablemente usan los dos como sinónimos sueltos.
Péter Török
Viñetas

Respuestas:

35

Las características son las que venden los vendedores.
Las funciones son las que desarrollan los programadores.

Michael Riley - AKA Gunny
fuente
44
Buena, memorable, respuesta distinguible.
Saeed Neamati
@RobertHarvey ¿Tiene un argumento específico en contra de esta respuesta?
Zibbobz
@Zibbobz: ¿Quieres decir que, aparte de eso, generalmente no informa? Además, tenga en cuenta los votos cerrados aplicados a la pregunta.
Robert Harvey
8

Las funciones no encajan bien en el contexto de una historia de usuario y son mayormente transparentes para un usuario. Pueden ser un proceso de back-end o algún tipo de funcionalidad de aplicación única o común que permita que otras características o posiblemente otras funciones se implementen de manera adecuada.

Por otro lado, las tareas son unidades individuales de trabajo que deben completarse para entregar una característica o una función.

En mis proyectos, tiendo a no diferenciar entre una característica y una función y escribo historias de usuarios para características y agrego funciones o refactorización de esfuerzos como tareas para completar una sola característica.

Esto a veces hace que ciertas características se vean innecesariamente hinchadas en el plan del proyecto, pero esto está bien, porque si necesito que las Funciones 1 y 2 y la Función 3 se refactoricen para entregar adecuadamente la Función 1, entonces quizás mi único entregable para ese sprint sea la Función 1, o posiblemente no hay entregables en absoluto.

Mientras al final del sprint todavía tenga el software funcionando, mi proyecto será Agile.

maple_shaft
fuente
6

Las características son lo que su programa puede hacer. Las características son el resultado directo de los requisitos del usuario y los objetivos comerciales. Por lo tanto, las características de un programa existen principalmente para satisfacer las demandas de los usuarios .

La funcionalidad, por otro lado, es cómo se implementan las características antes mencionadas .

rrazd
fuente
2

Para un PM, "Función" es un propósito y "Característica" es un comportamiento del producto con el que un usuario puede interactuar. Sin embargo, las personas a menudo obtienen los dos al revés (que creo que es el caso en su pregunta).

Llevarme del lugar A al lugar B es una función clave de un automóvil. Es la razón (propósito) que existe. El volante es una característica, al igual que la palanca de cambios. El controlador interactúa con múltiples funciones para lograr la función de llegar a algún lado.

"Función" aquí no debe confundirse con una función (método) del lenguaje de programación que habla sobre la implementación de un software de características. Lo más probable es que no sea de lo que estaría hablando un primer ministro cuando se refieren a "Características y funciones".

No existe una jerarquía agradable para las funciones y características, ya que una característica se puede utilizar para admitir múltiples funciones del producto.

usuario91714
fuente
0

Creo que se debe establecer una distinción correcta para una metodología específica o una cultura de requisitos específicos. La siguiente es mi propia interpretación.

Función: un requisito central que afecta drásticamente el valor del software, que el usuario debe tener en una versión específica. Ejemplo: guardar la función en un editor de texto.

Característica: Una buena capacidad del software, que agrega valor al software pero no es una necesidad absoluta para que el software funcione correctamente y realice sus funciones. Por ejemplo, tenga una función de deshacer en un formulario de entrada de datos o guarde un documento como archivo gif para un editor de texto (cableado).

Ninguna posibilidad
fuente
1
No sé de dónde los sacó, pero en mi humilde opinión, las definiciones más comunes de funciones y características no hacen ninguna distinción sobre la importancia.
Doc Brown
Califiqué el anser, gracias por tu comentario.
NoChance
-1

Detrás de cada característica se encuentra la funcionalidad necesaria para proporcionar al usuario el propósito previsto de la característica.

Ejemplo: el sistema de registro de una universidad tendría una función de "registros de estudiantes para clases". Esta tarea requiere bastante funcionalidad, así como acceso a una base de datos. El diseño de la característica implicaría una comprensión de la tarea real del usuario: registrarse para las clases. Esto sería un requisito previo para el "diseño de interacción" necesario para facilitar la tarea de los usuarios. La funcionalidad estaría diseñada para implementar los requisitos de interacción.

Los programadores están buscando funciones para codificar. Los diseñadores de interacción buscan la mejor manera de ofrecer esta funcionalidad necesaria a través del diseño de la interacción del software con el usuario. La comprensión de cómo el usuario puede lograr mejor su objetivo es lo primero. A continuación se identifica la funcionalidad necesaria.

Lo anterior no es científico, es solo mi opinión.

Bob Buckley
fuente
2
Gracias por agregar tu primera publicación a Stack Exchange Programmers. Consulte las Preguntas frecuentes programmers.stackexchange.com/faq para obtener ideas sobre cómo escribir preguntas y respuestas que recibirán votos y mejorarán su reputación.
DesarrolladorDon
-1

Es importante recordar la distinción entre funciones y características del producto. Las funciones son la "respuesta del producto al conjunto de tareas del usuario"; Las características son las "herramientas de usuario" inherentes al producto utilizado para realizar las funciones. Hacer una llamada telefónica es una función; El tono de marcación y el teclado de tonos son características que se utilizan para realizar la función.

kahsay Terefe
fuente
-2

Estoy de acuerdo en que no vale la pena obsesionarse ya que los términos a menudo se usan indistintamente en algunos contextos. Sin embargo, en el contexto de gestión más amplio, creo que hay algunos puntos importantes. Primero, PM también puede significar gerente de producto. Alguien debe asumir la responsabilidad de decidir qué respaldará el mercado en cuanto a precio, fecha de entrega y características. Generalmente encuentro que esa característica es preferida cuando estás en un contexto de marketing. La función del gerente del proyecto es administrar el proyecto de manera que el producto deseado se entregue a tiempo y dentro del presupuesto. Para el arquitecto y los diseñadores, la característica se proporciona y puede considerarse como funciones entregadas en la organización humana que ofrece transformación y almacenamiento de datos, pero debe ser reificada hasta que el diseño se haya reducido a unidades de trabajo delegables que pueden asignarse a los desarrolladores . Es frecuente que una característica no se asigne limpiamente a un conjunto de funciones en el sistema de la máquina. Por ejemplo, rápido y seguro son características deseadas por los consumidores pero no pueden segregarse en el código. Estas propiedades emergentes son las que hacen que los requisitos no funcionales sean tan difíciles de satisfacer.

Dale Fletter
fuente
esta publicación es bastante difícil de leer (muro de texto). ¿Te importaría editarlo en una mejor forma?
mosquito