開発者は不可能な要件をどのように拒否すべきですか?[閉まっている]


74

私が直面している問題は次のとおりです。


プロジェクトマネージャーからの引用:

こんにちはSparkさん、多くの異なるiOSアプリケーションに使用できるフレームワークを開発するタスクを割り当てています。要件は次のとおりです。

  • UIの操作に使用されている親指または指の太さを検出できる必要があります。
  • この情報を使用して、UIのすべての要素を自動的に配置およびサイズ調整する必要があります
  • 親指を大きくするには、要素を画面の中央近くに配置する必要があります。
  • 親指を小さくするには、要素を画面の角に近づけて配置する必要があります。
  • 親指を大きくするには、すべてのフォントを小さくする必要があります。(この場合、大人を想定しています。)
  • 親指を小さくするには、すべてのフォントを大きくする必要があります。(この場合、若い人を想定しています。)

概要:

このフレームワークは、ユーザーフレンドリーなユーザーインターフェイスをプログラムで作成するために必要です。フレームワークは、必要な数のプロジェクトで使用できるように開発される必要があるため、開発者にとっても使いやすいものでなければなりません。


私はこのタスクを与えられた開発者なので、私の質問は次のとおりです。

  • これらの要件が少しばかげていることをどのように説明できますか?
  • 実際のプロジェクトの開発に専念する方が良いと説明するにはどうすればよいですか?
  • これが可能であったとしても、そのようなものを開発することはお勧めしません。
  • このプロジェクトに礼儀正しく、優しく、敬意を持ってノーと言うにはどうすればいいですか?
  • 3年の経験を持つ開発者であっても、これは不可能かもしれないことをどのように説明できますか?

7
これらすべての要件が「愚か」ではなく、最悪の「いいえ」を回避することで、多くのブラウニーポイントを獲得できます。iOSデバイスはこの種の機能をサポートしていないことを説明します。
ラムハウンド

26
How do I say politely, gently & respectfully NO to this? 私があなたに与えなければならないもう一つのアドバイスは、あなたの上司をコントロールするために、常に彼らに彼ら自身の結論に到達させるべきです。彼らがあなたに注文したら、ノーと言うことはせず、事実を説明し、問題について話し合うだけです。彼らは詳細を知らないかもしれないので、彼らの要求がどれほど愚かであるかを理解させるようにしてください。彼らはおそらくそれが馬鹿げた考えだとわかり、あなたに別の仕事を与え、あなたは決してNOと言う必要はありませんでした。私は決してNOとは言いません、そして決して起こらない愚かな要件を常に受け​​ます。
maple_shaft

151
あなたが不満を言っていた要件の一部は、彼らがあなたをシュガーと呼んだことだと思いました。それから私はあなたのユーザー名を見ました:)
ゴランジョヴィック

6
「観察された」指のサイズは、デバイスを保持している方法に応じて変化するという事実を気にしないでください。そしてそれを人々に貸し出しますか?クライアントの観点だけでなく、ボタンの移動はひどいものです。これを合理的にサポートするにはどうすればいいですか(ボタンは標準化された場所にありません)。そして、どのように「より大きな」/「より小さな」親指を定義し、年齢との相関関係を定義しますか?女性男性よりも小さく(そして手が小さい)傾向があります-あなたのアプリは性別を知る必要がありますか?そして、光学的な問題は年齢とともに悪化する傾向があり、良くなることはありません。
時計仕掛けのミューズ

13
年齢を推測するのに役立つように、指のしわ率を検出してみてください。次に、しわの割合が高い大きな指を持っていると、より大きなフォントを必要とする高齢者がいます。そして、しわの比率が高い小さな指を持っていると、お風呂から出たばかりの子供がいて、iPhoneの時間ではなく就寝時間だというエラーを投稿します。
music2myear

回答:


102

デバイスが必要な機能をサポートしておらず、サポートできないために実装することが物理的に不可能な要件のセットを取得した場合、要件を作成する人にこれを説明する必要があります。

あなたは尊重するとの要件を実装することができない理由を説明しなければならない(タッチスクリーンは、親指、指またはスタイラスを区別することはできませんすなわち、それは指の幅を検出するために十分な解像度を持っていません。) -物事を保つため、事実を指し、存在する場合は、既存のドキュメント。

どんな感情的な議論にも入らないで、クールでプロフェッショナルに保ちましょう。要件がばかげていることをだれかに言うことは、決して勝利戦略ではありません。

機能の実際の目標を理解できるかどうか、なぜそれが要件と見なされるのかを確認してください。これにより、ニーズを解決する別のより優れた機能に導くことができます。(@spoikeに感謝)

@ DarkStar33は、調査を行うためにコメントで提案し、プロジェクトの費用と所要時間の実際の推定値を提供しますが、結果は高価すぎて価値がありません。数字とそれらをバックアップするデータで武装することは確かにあなたのケースに役立ちますが、私はまだビジネス目標を見て、それらが別の方法で満たされることができるかどうかを確認します(部分的にも)。


31
+1事実を保持し、プロジェクトリーダーに、この機能が持つ実際のビジネス目標を説明してもらい、より優れた別の機能とソリューションを活用できるようにします。
スポイケ

8
@Spoike "have the project lead explain the actual business goals"は素晴らしいアイデアです。たとえ彼らがそれを求める方法を知らなくても、彼らが望むものを与えてください。
StuperUser

2
この場合、視覚障害のある人がアプリケーションにアクセスできるようにすることが目標であると仮定すると、他の方法ではるかに簡単に解決できます。たとえば、ユーザーが最初にアプリを起動するときに(後でアプリの設定を使用して)より大きなテキストまたは小さなテキストを使用するかどうかを選択できるようにします。指の大きさで年齢と視覚障害を判断するのはかなり手間がかかり、UXの面でも問題になります(高齢者と小さな人と若い人と大きな人の場合)。
スポイケ

2
私は私のおばあちゃんはテレビを打つことは、それを修正するための有効な方法だった時代に育った...それが可能だとは思わない@Tom ...
Izkata

5
プロダクトマネージャーとして、1)事実を維持することは重要ですが、2)彼らが実際に何をしようとしているかについて質問することは大いに役立つと断言できます。あなたが彼らのニーズを理解していると彼らが信じるなら、彼らはあなたが彼らに伝えなければならないものに対してよりオープンになります。
タージムーア

30

これらの要件は、愚かでも、愚かでも、ばかげていません。これは、実際、タッチスクリーンのユーザーにとって非常に重要な問題です。指が大きい人は、ターゲットを正確に特定するのが非常に難しいため、小指では理解できないことがよくあります。

ただし、デバイスのセンサーが指のサイズを測定できないためにこの要件を実装できない場合は、単に次のように書くだけです:残念ながら、現在利用可能なデバイスはそのような機能をサポートしていません


顧客のニーズや欲求が決して愚かではないことに同意します。私たちはその点を主張していません。要件、プロジェクト計画、およびプロトタイプ化されていないプロジェクト専用のリソースをレイアウトするのは愚かだと主張しています。
maple_shaft

11
まあ、私はlechlukaszを申し訳ありませんが、今回は彼らが実際に終わりまで愚かだと思う。プラットフォームが重心を計算できるようにタッチスクリーンで押された楕円を露出させたとしても、指の太さに基づく動的UIのアイデアは少し「エキゾチック」です。ユーザーとして、セッションごとに1本の指のポリシーに制限されることは望ましくありません。一度に指で、静電容量ペンで、または他の部分でも画面を押すことができます。私はとてもXDを感じれば体。
ミスタースミス

@maple_shaft-この機能の箇条書きリストは、プロトタイプを作成するのに十分なだけのようです。
ジェフ

1
私はこれが実際に有用なフレームワークであり、有用でない場合は非常にクールであることに同意します。これはおそらくAppleの世界でさらに重要になります。「指のサイズを調整」ウィジェットが必要なだけで、残りは所定の位置に収まるはずです。
ジェームズアンダーソン

1
これは現在の技術でできると思います。完全に動的な測定が想定されているが、それ以外の場合は実行可能であるのではなく、指のサイズを較正して静的に保存する特定のアプリケーションが必要になります。Windowsは何年もの間、ウィンドウとアイコンを画面サイズに合わせて調整してきたため、その側面はよく知られています。
ジェームズアンダーソン

16

ここで少しDevil's Advocateをプレイして、人の親指の大きさを測定することは実際には技術的に実行可能であると思います。iPhoneはマルチタッチデバイスです。キャリブレーションの場合、親指または2本の指を画面に並べて配置し、これらのタッチ間の距離を測定するようにユーザーに指示できます。

もちろん、これには、私の直感がどの程度実現可能かを確認するためのテストと実験が必要です。おそらく、読みやすくするには、親指を画面上でドラッグする必要があります。

とはいえ、深刻なユーザビリティと実装の問題があります。

  • デバイスが共有されている場合はどうなりますか?キャリブレーションはいつ行われますか?
  • フレームワークで構築されたすべてのアプリケーションで、UI要素の位置を任意に動的に決定するにはどうすればよいですか?明らかに、各アプリには異なるUIと異なるレイアウトがあります。
  • 現在のiOSアプリの簡単な調査では、適切に設計されたアプリは利用可能なすべての水平スペースを使用し、重要なボタンが可能な限り大きく、端の近くに配置されるような要素を既にスペースに使用しています。デバイスの幅全体がリストとレイアウトに使用されることは明らかです。
  • たとえ可能であったとしても、費用/便益分析とは何ですか?標準のUIコントロールと比較して、このようなシステムからどれくらいの利益が得られますか?多くのアプリがすでに使用しているように、フォントサイズの簡単な切り替えコントロールを使用する方が簡単ではないでしょうか?

12

あなたがすることは真剣にそれを扱い、それがするのにどれくらいの時間がかかるかの見積もりで戻ってきて、彼らが高い数字に異議を唱えないように見積もりが非常に高くて非常に詳細であることを確認してください。一度あなたがそれを行うことは経済的ではないことを示したら、彼らはあなたを放っておくでしょう。特定のタスクが現在ハードウェアでサポートされておらず、実行することも実行できないことも指摘してください。この規模のプロジェクトに必要となる可能性のある、専門家やその他の人々に費用を追加することを忘れないでください。


2
うん、これは正しいアプローチです。ノーと決して言わない"。問題を分析し、時間の見積もりとともに、機能するソリューションを提案するだけです。それでは、指の幅を動的に計算するためにiOを変更するための推定時間はどのくらいですか?約10人のOS開発者にとって2年かもしれません。あなたの見積もりがあります!:)
スティーブングロス

この場合、Appleに同意する必要があります。つまり、法的なもの、およびソフトウェア開発の範囲外のあらゆる種類のものに言及することを意味します。この場合、「ハードウェアの制限を考えると不可能です。私たちは制御できません。Appleと交渉する必要があります」と言うことができます。
deworde

1
@deworde-20年前、「提供されたハードウェアでは現在は不可能」と言うのは素晴らしいと「不可能」だと思った「不可能」という言葉は嫌いです。
ラムハウンド

@Ramhound彼らはあなたの子供ではなく、あなたのビジネスプランナーです。彼らの希望と夢を守るために砂糖を塗らないで、仕様から要件を引き出してください
deworde

1
さらに2年、100人のハードウェアエンジニアと5,000万ドルのR&Dラボを追加して、Appleに販売するハードウェアを発明します。
hotpaw2

11

Appleの人々はすでにこれらすべてのことを深く考えており、親指/指のサイズに応じてサイズ変更可能なインターフェイスを思いつきませんでした。

ユーザーとして、私は指の下でターゲットを動かすことを嫌います。


2
設計が不十分なAccessデータベース用のユニバーサルメタクエリを作成するように求められたときに、この引数を使用しました。(IE任意のユーザがクエリビルダを使用せずに何かを任意に問い合わせることができシステム)私はこれが可能だった場合、Microsoftはそれを行っているだろう、と彼らはどこにでもそれを宣伝するだろう」と述べた。
クリスCudmore

@chris:これは、誰かがeverythinthレポートウィザードを望んでいるときに私が言うことです。それが可能であった場合、アクセスは90年代初期に戻ってそれを持っているだろう
ニールN

4
-1、「Appleはそれをしなかったから」は、何か新しいことをしようとしない理由ではありません。それ信じられないほど愚かなアイデアであるか、物理的に不可能である可能性があります。か否か。しかし、私は彼の上司がリソースを使いたがっている場合、それを試してみることで害がどこにあるか見ていません。
グランドマスターB

2
@GrandmasterB-私の推測では、Appleはそれを行ってから拒否したということです。とにかく、少しの常識は、使いやすさの観点から、これは快適ではないことを示しています。そのような考えを持つ上司は必要ありません。
mouviciel

10

不可能な要件を与えられたためにトラブルに巻き込まれることを心配している場合、最善の選択は、不可能であることをすぐに伝えることです。不可能なプロジェクトでビジネスプランを作成する時間が長ければ長いほど、プロジェクトの失敗のせいで彼らを責める可能性が高くなります。

とりわけ、あなたのせいではないことを心配しないようにしてください、私たちは皆、私たちがコントロールする能力があることを心配するのに十分です。誰かがそのようなプロジェクトの失敗の責任をあなたに負わせた場合、それはあなたに対する不正です。カルマを信じますか?


はい、私はカルマを信じていますか?:)
サガーR.コタリ

1
@sugar私もやります!彼らはあなたの言うことを聞かないと失敗します。
maple_shaft

オペレーティングシステムがこの情報を提供しないと言うことは不可能だと言ってはいけません。iOSアプリケーションの場合、パブリックメソッドのみを使用できるため、オペレーティングシステムが公式にサポートするものに制限されます。これが可能だった場合、彼らはこれをフレームワークに提供していたので、ユーザーはこの要件に疑問を投げかけることさえしなかったでしょう。
ラムハウンド

8

不合理な要求を迂回する1つの方法は、クライアントが解決しようとしている問題の性質を理解するのを支援することです。「なぜスタックをポップする」として口語的に知られている計画面接テクニックを通して、あなたは再帰的に「もちろん」を尋ね続けます(もちろん丁寧で知的な方法で):

コミュニケーションを取り、特定の問題を「追いかける」ための重要なツールの1つは、バレットが「理由」スタックをポップすることです。これは、単に「なぜそのように行われるのか」という質問を続けることです。プロジェクト要件について。彼は、この手法が発掘できることの典型的な例を示しました。「プロセスの特定の段階でデータを印刷する必要があるクライアントと一緒に仕事をしたことがあるので、理由を尋ねました」。「答えは、データを受信する部門がそれをキー入力する必要があるということでした。データがアプリケーションに自動的に転送されることは決してありませんでした。」

目標は、機能のコアビジネス価値に到達することです。

  • 収益を保護
  • 収入を増やす
  • コストを管理する
  • ブランド価値を高める
  • 製品を目立たせる
  • 顧客により多くの価値を提供する

Cucumber wikiのアイテム)

この機能がこれらのカテゴリのいずれにも当てはまらない場合、クライアントは、より重要なことに集中する必要があることを確認するか、この思考プロセスを通じて、問題に対処する方法をアドバイスできる場合があります。より意味のある方法で解決しようとしています。多くの場合、実際の問題は、修正を要求した問題よりも高い抽象化レベルにあります。

親指のサイズをスキャンする例を使用するには:

クライアント: UIの操作に使用されている親指または指の太さを検出したい。

開発者:なぜそれをしたいのですか?

クライアント:これらの小さなボタンをタップしようとすると、しばしば間違ったものにぶつかり、ソフトウェアは私のような大きな手を持つ多くの建設作業員によって使用されるためです。指のサイズに合わせてUIを調整できれば、使いやすくなります。

開発者:使いやすさは確かに顧客にとって価値がありますが、なぜUIを調整したいのでしょうか?これを使用している人々が大きな手を持っていることがわかっている場合、そのユースケースに合わせてデザインを調整してみませんか?

クライアント:そのように考えたことはありません。小さな手を持つ人にもきれいなデザインが同じように機能すると思います。


4
+1 whyスタックとクォートをポップするためにOften the real problem lies at a higher level of abstraction than the problem they've requested you to fix.
Spoike

7

免責事項-リクエストが可能かどうかはわかりません。可能であれば、どれくらいかかるかを判断し、そのフィードバックをマネージャーに提供する必要があります。しかし、少なくとも標準のフレームワークを使用して、それが実行可能ではないという前提でこの回答を書いています-そして、あなたが本当に何かをすることができない、またはすべきでないより一般的なケースに私の答えを拡張しています。

断ってよ。

このスレッドには多くの「決して言わない」という答えがありますが、それは柔らかくて従順な態度だと思います。このように考えてください-私はこのチームの技術専門家であり、他のチームメンバーは、実行不可能、過度に複雑、潜在的に不可能だと思うことをしようとしています。ノーと言うのは私の責任です。

もちろん、私は穏やかにノーと言うことができます。ノーと言う前に「可能かどうか調査する」ことを申し出ながら、「これに対して強くお勧めします」しかし、それは私の仕事だからです。

これには非常に多くの類推があります

  • 会計士、感謝祭のディナーを税控除として下ろしてほしい
  • シェフ様、鶏肉をカウンターに一晩置いて、生でお召し上がりください。
  • 私の弁護士、私は子供たちを寝室を片付けないことで訴えたい
  • メカニックさん、私の電気自動車にターボチャージャーを取り付けてください

これらすべての人に、愚か、無駄、危険、または間違いであるとわかるタスクを実行するように依頼できます。そして、あなたは彼ら全員がこれらの行動に対して助言し、最終的に拒否することを期待するでしょう(少なくともそうすることを望みます)。これらの専門家のいずれかが「うーん、私たちはそれができると思う」と答えた場合-「これは悪い考えです」をまっすぐに言わずに-それからかなり率直に言って私は彼らを雇いたくありません。

同僚はあなたの誠実さを高く評価し、尊重します。また、うまくいかないとわかっていることをするよりも、役に立つフィードバックを提供すれば、多くの時間とお金を節約できます。


2
注:「開発者は不可能な要件をどのように拒否すべきという質問に取り組んでいます
カークブロードハースト

あなたにもっと力を。
ThomasX

2

ターゲットプラットフォームで許可されていないものを実装できないことをクライアントに伝えるのは難しくありません。しかし、一歩下がって、これらのかなりばかげた要件の背後にあるロジックは何ですか?私が読むことができるものから、彼らは使いやすさについて非常に心配しています。その後、彼らに尋ねて、彼らがあなたに同じことを言うまでもう少し掘り下げてください:「私たちはユーザーフレンドリーなインターフェースが欲しい」。次に、実行可能なものとそうでないものにそれらを導きます。簡単なユーザーインターフェイスが必要な場合は、ユーザーにフォント/アイコンのサイズを設定させるなどの簡単な(そしてより安価な方法)ことを伝えます(IoSで可能だと思います)。ユーザーが設定タブからアプリケーションのフォントサイズ/アイコンサイズおよび配置を制御できるようにすることはできますか?これは、親指の大きさで人の年齢を推測しようとするよりも簡単です(そしてより正確に!)。マネージャーが最後に望むのは、OSが既に提供しているものと同じことを達成する、不必要で肥大化した、保守が難しいコードです。ユーザーに腹を立てるような方法でアプリケーションを制御するよりも、ユーザーがアプリケーションを制御することを好むことをクライアントに伝えます。


1

私の応答は、これらの未検証の技術のいくつかを調べ始め、それが可能かどうかを彼らに知らせることです。これらの発見に基づいて、潜在的な開発計画を開始できます。

ある人の親指を他の人から見分けることはできないと思いますが、指が親指を使用していることを知るのに十分な大きさを指から得ることができるかもしれません。本当の問題は、親指の角度が他の人よりも画面上のスペースに触れることがないためです。親指で電話を使用して、親指の指紋をとるように画面上に平らに置く人はいません。

会社を辞めます。方法を見つけてください。あなたが今作っているよりもずっと多くのお金でそれを売ってください。


1

要件に関しては、私は通常このようにします。特定の要件を実現するのにかかる時間を見積もろうとしています。

要件が不可能な場合は、数日、または可能かどうかを判断するのにかかる時間を尋ねます。あなたの場合の質問は、「ユーザーの指の太さを判断することは可能ですか?」です。

実際、この質問はさらに複雑です:「最初のタッチ後、ユーザーの指が200ミリ秒以内にどれだけ太いのかを判断して、すぐに対話できるようにすることはできますか?」(最初に2番目または...に置き換え、200ミリ秒から300ミリ秒などに置き換えます...)

この質問に答えるのに1か月かかることもあります。多分これが実行可能であるとしても、ケースの80%でのみうまく機能する超複雑なアルゴリズムが必要です。

私がどこへ行くのかわかりますか?

人々は、問題の分野に関する専門知識と経験が低いため、可能性について間違った仮定をすることがよくあります。したがって、直感で議論することはできませんが、事実が必要です。

他の利害関係者が、この機能に2人年かかり、iPhone 10が2014年より前に到着することを必要とすることに気付いた場合、要件はすぐに縮小されます。


1

これは複雑に聞こえますが、まったく不可能ではありません。タッチスクリーンが親指、中指、またはスタイラスを区別できない点は、意味がありません。ユーザーは、初期化(セッションの起動など)で、親指、中指などを配置して、いくつかの動きなどを使用してサイズを調整(統計的な平均を作成)するよう求められます。


0

解決できないと言う前に、根本的な問題を別の方法で解決しようと考えています。

たとえば、ユーザーが小さなボタンをクリックして失敗することが多い場合、ボタンの周りの領域を監視し、それを使用して他のすべてのクリックを再調整できます。

このような創造的な解決策を提示することは、おそらく、指の幅を魔法のように把握するようにあなたに頼んだ後のことです(APIにはありません)。

ボタンの周りにエリアを配置してミスを検出するのはまだ難しいかもしれません。


0

それが彼の感情を傷つけるので、あからさまにノーと言わないでください。テクノロジーの制約により、毎回60%の時間で動作することを明確にしてください。

そして、そのような仕事に伴う非現実性とコストに気付いたら、予算内でテキストサイズを変更できる設定にするなど、より実用的なアプローチを提案します。そして、ロシア人は鉛筆を宇宙に持ち込みました。

将来のプロジェクトのソリューションと設計ではなく、問題と要件を述べさせてください。


-1

私がやりたいのは、チームの観点から問題に取り組むことです。この場合、プロジェクトマネージャーと私は解決策を考え出す必要があります。また、私は心を開いていることを示すのが好きです。私が不可能を聞いていると思うことを聞いた場合、私とプロジェクトマネージャーの間で誤解がある可能性があります。または、おそらく私たちはあの瞬間に到達していません。

飛躍してオープンな会話をすることを決めたら、問題を経済的なものとして扱うのが最も簡単だと思います。テクノロジーでは、無限のリソースがあれば、ほとんど何でも可能です。何をすべきかを議論することは、敬意を表して「ノー」と言う最も簡単な方法です。そして、それは、あらゆる誤解を取り除く方法です。正直なところ、私たちはまったくノーと言っているわけではありません。そして、とにかくノーと言うことの目的は何ですか。仕事にやりがいがなければ、やりたいかどうかは関係ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.