機能と機能[終了]


16

多くの場合、PM(プロジェクトマネージャー)が機能について話すと聞きます。そして、私はそれらを区別するためにとても困惑しています。機能がユーザーストーリーに相当すると考えることもあります。「ユーザーとして、ボブは自分の支払いのリストを見ることができるはずです」などのように、彼らはそれを機能と呼びます。「Webアプリケーション経由でSMSを送信する機能」など、サブシステムと同じくらい大きくなる場合があります。一方、関数は「数字入力用の数字のグループ化を実装する」タスクと同じくらい小さくなりますが、CRUD操作全体と同じくらい大きくなる場合があります。

私の質問は、どのように機能と機能を区別することができますか?


9
私はこれについてあまり気にしません。これらは両方とも「プログラムがこれまたはそれを行うことができるはずです」という意味です。プロジェクトマネージャーが区別する場合、それはおそらく個人的なものであり、意図を抽出するために行間を読む必要があります。
tdammers

8
または、それぞれの定義を尋ねます。おそらく彼らは2つの同義語として使用します。
ペテルトレック

回答:


35

機能は、営業担当者が販売するものです。
関数はプログラマーが開発するものです。


4
良い、思い出に残る、識別可能な答え。
サイードNeamati

@RobertHarveyこの答えに対して具体的な議論はありますか?
ジボブズ

@Zibbobz:それは一般的に知らないこと以外のことですか?また、質問に適用される投票権に注意してください。
ロバートハーヴェイ

8

関数はユーザーストーリーのコンテキストにうまく適合せず、ユーザーに対してほとんど透過的です。バックエンドプロセス、または他の機能や場合によっては他の機能の適切な実装を可能にする、何らかの種類の一意または共通のアプリケーション機能です。

一方、タスクは、機能または機能を提供するために完了する必要がある個々の作業単位です。

私のプロジェクトでは、機能と機能を区別しない傾向があり、機能のユーザーストーリーを記述し、機能を追加したり、単一の機能を完了するためのタスクとしてリファクタリングを行ったりしています。

これにより、特定の機能がプロジェクト計画で不必要に肥大化しているように見える場合がありますが、機能1と2および機能3をリファクタリングして機能1を適切に配信する必要がある場合、そのスプリントの唯一の成果物は機能1になります。おそらく成果物がまったくありません。

スプリントの終わりまでに、私はまだ動作するソフトウェアを持っている限り、私のプロジェクトはアジャイルです。


6

機能はあなたのプログラムができることです。機能は、ユーザー要件とビジネス目標の直接的な結果です。したがって、プログラムの機能は主にユーザーの要求を満たすために存在します

一方、機能は、前述の機能が実際にどのように実装されるかです。


2

PMの場合、「機能」は目的であり、「機能」はユーザーが操作できる製品の動作です。しかし、人々はしばしば2つを逆方向に取得します(あなたの質問のケースだと思います)。

場所Aから場所Bに移動することは、車の重要な機能です。その理由(目的)が存在します。ステアリングホイールとギアスティックが特徴です。ドライバーは、複数の機能と対話して、どこかに到達する機能を実現します。

ここでの「機能」は、機能ソフトウェアの実装について話すプログラミング言語の機能(メソッド)と混同しないでください。それは、PMが「機能と機能」を参照するときに話していることではないでしょう。

1つの機能が複数の製品機能をサポートするために使用される可能性があるため、機能と機能に適切な階層はありません。


0

特定の方法論や特定の要件文化に対して、正しい区別をする必要があると思います。以下は私自身の解釈です。

機能:ユーザーが特定のリリースで持っていなければならないソフトウェアの価値に劇的に影響するコア要件。例:テキストエディターで関数を保存します。

機能:ソフトウェアの機能を備えているのは素晴らしいことです。ソフトウェアに価値を追加しますが、ソフトウェアが適切に機能し、その機能を実行するために絶対必要なものではありません。たとえば、データ入力フォームで元に戻す機能を使用したり、テキストエディター(有線!)のgifファイルとしてドキュメントを保存したりします。


1
あなたからこれらを得たところ、私は知りませんが、機能や特徴の私見最も一般的な定義は行わない任意の重要性に区別を。
Doc Brown

私はあなたのコメントのためにanser、thnxを修飾しました。
-NoChance

-1

各機能の背後には、ユーザーに機能の意図された目的を提供するために必要な機能があります。

例:大学の登録システムには「クラスの学生登録」機能があります。このタスクには、かなりの機能とデータベースへのアクセスが必要です。機能の設計には、ユーザーの実際のタスク、つまりクラスの登録の理解が含まれます。これは、ユーザーのタスクを容易にするために必要な「相互作用設計」の前提条件になります。機能は、相互作用の要件を実装するように設計されます。

プログラマーは、コーディングする関数を探しています。インタラクションデザイナーは、ソフトウェアとユーザーとのインタラクションを設計することにより、この必要な機能を提供する最適な方法を探しています。ユーザーがどのように目的を最もよく達成できるかを理解することが最初になります。必要な機能の識別は次のとおりです。

上記は科学的なものではなく、私の意見です。


2
Stack Exchange Programmersに最初の投稿を追加していただきありがとうございます。よくある質問をご覧になって、programmers.stackexchange.com / faqをご覧ください。賛成票を獲得して評判を向上させる質問と回答の書き方についてのアイデアがあります。
開発者

-1

製品の機能と製品の機能の違いを覚えておくことが重要です。関数は、「ユーザータスクのセットに対する製品の答え」です。機能は、機能を実行するために使用される製品に固有の「ユーザーツール」です。電話をかけることは機能です。ダイヤルトーンとタッチトーンキーパッドは、機能を実現するために使用される機能です。


-2

いくつかの文脈では用語がしばしば交換可能に使用されるので、取りつかれても価値がないことに同意します。しかし、より広い管理のコンテキストでは、いくつかの重要なポイントがあると思います。まず、PMはプロダクトマネージャーを意味する場合もあります。市場が価格、納期、機能で何をサポートするかを決定するのは誰かが責任を負わなければなりません。私は一般的に、あなたがマーケティングの文脈にいるとき、その機能が好まれると思います。プロジェクトマネージャーの役​​割は、プロジェクトを管理して、目的の製品が予定どおりに予算内で納品されるようにすることです。アーキテクトとデザイナーには、この機能が与えられ、データ変換とストレージを提供する人間の組織で提供される機能と考えることができますが、設計が開発者に割り当てられる委任可能な作業単位に縮小されるまで具体化する必要があります。多くの場合、機能がマシンシステムの一連の機能にきれいにマッピングされないことがあります。たとえば、高速で安全な機能は、消費者が望む機能ですが、コード内で分離することはできません。これらの新しい特性は、非機能要件を満たすのを非常に困難にするものです。


この投稿は読みにくい(テキストの壁)。それをより良い形に編集してもいいですか?
グナ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.