Fonction vs fonction [fermé]

16

J'entends souvent des PM (chefs de projet) parler de fonctionnalité et de fonction. Et je suis tellement perplexe de les différencier. Parfois, je pense qu'une fonctionnalité équivaut à une user story. Quelque chose comme "En tant qu'utilisateur, Bob devrait pouvoir voir une liste de ses paiements", et ils l'appellent une fonctionnalité. Parfois, il devient aussi gros qu'un sous-système, quelque chose comme "la possibilité d'envoyer des SMS via une application Web". Par contre, la fonction devient parfois aussi petite qu'une tâche, "implémentant un groupement de chiffres pour les entrées de nombres", alors qu'il y a des cas où elle devient aussi grosse qu'une opération CRUD entière.

Ma question est, comment pouvons-nous différencier la fonction de la fonction?

Saeed Neamati
la source
9
Je ne serais pas tellement obsédé par ça. Ils signifient tous les deux «le programme devrait être capable de faire telle ou telle chose»; si un chef de projet fait une distinction, c'est probablement personnel et vous devez simplement lire entre les lignes pour extraire l'intention.
tdammers
8
Ou demandez simplement leur définition de chacun. Ils utilisent probablement les deux comme synonymes lâches.
Péter Török
Bullet points vs valeur
Erik Reppen

Réponses:

35

Les fonctionnalités sont ce que les vendeurs vendent.
Les fonctions sont ce que les programmeurs développent.

Michael Riley - AKA Gunny
la source
4
Bonne réponse, mémorable et reconnaissable.
Saeed Neamati
@RobertHarvey Avez-vous un argument spécifique contre cette réponse?
Zibbobz
@Zibbobz: Vous voulez dire autre que cela n'informe généralement pas? Notez également les votes serrés appliqués à la question.
Robert Harvey
8

Les fonctions ne s'intègrent pas bien dans le contexte d'une user story et sont pour la plupart transparentes pour un utilisateur. Il peut s'agir d'un processus d'arrière-plan ou d'une sorte de fonctionnalité d'application unique ou commune qui permet à d'autres fonctionnalités ou éventuellement à d'autres fonctions d'être implémentées de manière appropriée.

Les tâches, en revanche, sont des unités de travail individuelles qui doivent être terminées pour fournir une fonction ou une fonction.

Dans mes projets, j'ai tendance à ne pas faire la différence entre une fonctionnalité et une fonction et j'écris des user stories pour des fonctionnalités et j'ajoute des fonctions ou des efforts de refactoring en tant que tâches pour compléter une seule fonctionnalité.

Cela donne parfois à certaines fonctionnalités un aspect inutilement gonflé sur le plan de projet, mais cela ne pose pas de problème, car si j'ai besoin que les fonctions 1 et 2 et la fonction 3 soient refactorisées pour fournir correctement la fonctionnalité 1, alors mon seul livrable pour ce sprint sera la fonctionnalité 1, ou éventuellement aucun livrable du tout.

Tant qu'à la fin du sprint, j'ai toujours un logiciel fonctionnel, mon projet est Agile.

maple_shaft
la source
6

Les fonctionnalités sont ce que votre programme peut faire. Les fonctionnalités sont le résultat direct des besoins des utilisateurs et des objectifs commerciaux. Ainsi, les fonctionnalités d' un programme existent principalement pour répondre aux demandes des utilisateurs .

La fonctionnalité, d'autre part, est la façon dont les fonctionnalités susmentionnées sont réellement mises en œuvre .

rrazd
la source
2

Pour un PM, "Fonction" est un objectif et "Fonctionnalité" est un comportement de produit avec lequel un utilisateur peut interagir. Cependant, les gens obtiennent souvent les deux en arrière (ce qui, je pense, est le cas dans votre question).

M'emmener de la place A à la place B est une fonction clé d'une voiture. C'est la raison (le but) qu'il existe. Le volant est une caractéristique, tout comme le levier de vitesses. Le pilote interagit avec plusieurs fonctionnalités pour obtenir la fonction d'aller quelque part.

La "fonction" ici ne doit pas être confondue avec une fonction (méthode) de langage de programmation qui parle de la mise en œuvre d'un logiciel de fonctionnalité. Ce n'est probablement pas ce dont un PM parlerait lorsqu'il se réfère à "Caractéristiques et fonctions".

Il n'y a pas une bonne hiérarchie entre les fonctions et les fonctionnalités, car une fonctionnalité peut être utilisée pour prendre en charge plusieurs fonctions de produit.

user91714
la source
0

Je crois qu'une distinction correcte doit être établie pour une méthodologie spécifique ou une culture d'exigences spécifiques. Ce qui suit est ma propre interprétation.

Fonction: une exigence de base qui affecte considérablement la valeur du logiciel, que l'utilisateur doit avoir dans une version spécifique. Exemple: fonction de sauvegarde sur un éditeur de texte.

Fonctionnalité: Une fonctionnalité intéressante du logiciel, qui ajoute de la valeur au logiciel mais n'est pas un must absolu pour que le logiciel fonctionne correctement et remplisse ses fonctions. Par exemple, ayez une fonction d'annulation sur un formulaire de saisie de données ou enregistrez un document en tant que fichier gif pour un éditeur de texte (câblé!).

Aucune chance
la source
1
Je ne sais pas d'où vous venez, mais à mon humble avis, les définitions les plus courantes des fonctions et des caractéristiques ne font aucune distinction d'importance.
Doc Brown
J'ai qualifié l'anser, thnx pour votre commentaire.
NoChance
-1

Derrière chaque fonctionnalité se trouve la fonctionnalité nécessaire pour fournir à l'utilisateur l'objectif prévu de la fonctionnalité.

Exemple: Le système d'inscription d'une université aurait une fonction «registres des étudiants pour les cours». Cette tâche nécessite un certain nombre de fonctionnalités ainsi qu'un accès à une base de données. La conception de la fonctionnalité impliquerait une compréhension de la tâche réelle de l'utilisateur - l'inscription aux cours. Ce serait une condition préalable à la «conception d'interaction» nécessaire pour faciliter la tâche des utilisateurs. La fonctionnalité serait conçue pour mettre en œuvre les exigences d'interaction.

Les programmeurs recherchent des fonctions à coder. Les concepteurs d'interaction recherchent la meilleure façon de fournir ces fonctionnalités nécessaires à travers la conception de l'interaction du logiciel avec l'utilisateur. La compréhension de la façon dont l'utilisateur peut atteindre au mieux son objectif passe avant tout. L'identification des fonctionnalités nécessaires suit.

Ce qui précède n'est pas scientifique, c'est seulement mon avis.

Bob Buckley
la source
2
Merci d'avoir ajouté votre premier message à Stack Exchange Programmers. Veuillez consulter la FAQ programmers.stackexchange.com/faq pour des idées sur la façon d'écrire des questions et des réponses qui recevront des votes et amélioreront votre réputation.
DeveloperDon
-1

Il est important de se rappeler la distinction entre les fonctions et les caractéristiques du produit. Les fonctions sont la «réponse du produit à l'ensemble des tâches utilisateur»; les fonctionnalités sont les «outils utilisateur» inhérents au produit utilisé pour exécuter les fonctions. Passer un appel téléphonique est une fonction; la tonalité et le clavier à touches sont des fonctions utilisées pour accomplir la fonction.

kahsay Terefe
la source
-2

Je conviens qu'il ne vaut pas la peine d'être obsédé car les termes sont souvent utilisés de manière interchangeable dans certains contextes. Pourtant, dans le contexte plus large de la gestion, je pense qu'il y a des points importants. Premièrement, PM peut également signifier chef de produit. Quelqu'un doit prendre la responsabilité de décider de ce que le marché prendra en charge en termes de prix, de date de livraison et de fonctionnalités. Je trouve généralement que cette fonctionnalité est préférée lorsque vous êtes dans un contexte marketing. Le rôle du chef de projet est de gérer le projet de manière à ce que le produit souhaité soit livré à temps et dans les limites du budget. Pour l'architecte et les concepteurs, la fonctionnalité est donnée et peut être considérée comme des fonctions livrées dans l'organisation humaine offrant la transformation et le stockage des données, mais doit être réifiée jusqu'à ce que la conception ait été réduite à des unités de travail délégables pouvant être attribuées aux développeurs . Il arrive souvent qu'une fonction ne mappe pas correctement à un ensemble de fonctions dans le système de la machine. Par exemple, rapide et sécurisé sont des fonctionnalités souhaitées par les consommateurs mais ne peuvent pas être séparées dans le code. Ces propriétés émergentes sont ce qui rend les exigences non fonctionnelles si difficiles à satisfaire.

Dale Fletter
la source
ce post est assez difficile à lire (mur de texte). Pourriez-vous le modifier sous une meilleure forme?
moucher