わずかな時間で重要な技術的決定を下す方法


36

私の会社がWPFアプリケーションをLinux / Android / iOSに移植するために使用するツールとプラットフォームについて非常に深刻な決定を下した2日間です。

明らかに、すべての可能なオプションについて読んだり、試用、プロトタイプの作成などについて読むには2日では十分ではないことを先輩に指摘することができます。私はそれを言うことができます。少し助けにはなりません。 2日後に決定が下されます。期間。

片方からはイライラし、もう片方からはこのアプローチには真実があると思います。さもなければ、ベンチワークやサンプルの実行を行う多数のダウンロードされたSDK、フレームワーク、API、ブログ記事などに簡単に埋もれてしまいます。そして、それがすべてのためだったことをプロセスで忘れます。

それでも、間違った決定が会社に多大なコストをかけることを恐れています。それでは、そのような決定を下すための「理想的な」プロセスは何だと思いますか?


4
2日以内に決定を下すことはほぼ不可能であることをどこかに書いてください。次に、悪くない決定を下し、あなたの決定が最善ではないことを文書化してください。言い換えれば、あなたのお尻をカバーします。Qt5が検討される場合があります。または、製品をHTML5 Webアプリケーションにします(おそらく、libonionやFastCGIなどのHTTPサーバーライブラリを使用します)
Basile Starynkevitch

2
@gnat私は同意しません、それが主観的な質問であるということです。たとえ複数の可能な答えがあったとしても、私たち全員が他の経験から得ることができます。
Flot2011

9
多くの場合、「最適なオプション」はありません。PHPwebappとして記述できれば機能します。または、Qtプログラムとして記述しても機能します。openGLゲームインターフェースUIである可能性があります。これらはすべて許容可能な選択肢です。1つを選択して、それを機能させるように設定するのがコツです。何かを選んだら、疑いで麻痺しないでください。
gbjbaanb

5
非常に悪い例です。例の場合、このための明らかな選択肢であるテクノロジーが1つあるためです-Xamarin。.NETバックエンドコードを保持し、UIを何かに置き換えるだけです。指定されたすべてのケースを処理します。ですから、これは「.NETのクロスプラットフォームシステムについて今や知っていること」のケースです。
トムトム

7
2日では十分ではないと言うことは、あまり建設的ではありません。3日で十分ですか?それとも、実際に2か月費やしたいですか?そして、あなたの決断はどれほど良くなるでしょうか?~~~~ 1週間必要だと言って、これで数百時間の開発時間を簡単に節約できると確信している場合は、必ずこれを言及してください。助けにはならないかもしれませんが、利害関係者があなたのビジネスケースを好む可能性は常にあります。
デニスジャエルディン

回答:


48

2日間でプロトタイプを作成する時間がなく、すべての代替案を読むことさえできない場合、実際には2つのオプションしかありません。

  1. 知っている人に聞いて、アドバイスに従ってください。これは必ずしも個人に尋ねることを意味するわけではありませんが、ブログや記事を検索するのに2日間費やして、十分な情報が得られない決定を下すのに十分な情報を収集します。

  2. すべての主流オプションについて少し調べてから、1つを選択します。リーダーシップは、間違った決定をすることを恐れないことを意味する場合があります。

より分離されたアーキテクチャであるため、変更が容易です。たとえば、クライアント/サーバーモデルでは、中断を最小限に抑えながらUIテクノロジーを別のテクノロジーに置き換えることができます。


10
「間違った決定をすることを恐れないでください」の+1「分析麻痺」に巻き込まれることは、まったく決定を下さないことよりも悪い場合があります。私たちはすべて人間です。最善を尽くし、人生を続けましょう。
semaj

1
揺らぐ:異なる意見や行動を交互に繰り返す、または揺らぐ 優柔不断です。
TankorSmash

10
+1「より分離されたアーキテクチャを
考え出す

2
@emodendroket Windows Workflow Foundation。
メタファイト

2
問題が主流ではない場合、主流のソリューションがうまく機能するとは思わないでください。これは、デカップリングと柔軟性が重要な場所です。彼らがあなたが何をする必要があるかを予想していなかったとき、彼らがあなたの期待に何かを靴べらにするのではなく、あなた自身のことを簡単に行けるようにするフレームワーク/ライブラリを探してください。
jpmc26

19

私はこの流れに逆らうように思えるかもしれませんが、私は最近、エド・キャットマルの本「Creativity、Inc.」を読んでおり、この状況に取り組む本当に素晴らしい段落がありました。

次にアンドリュー・スタントンが話した。アンドリューは、人々はできるだけ早く間違っている必要があると言うのが好きです。戦いで、2つの丘に直面していて、どちらを攻撃するかわからない場合、彼は言う、正しい行動は急いで選択することです。間違った丘だとわかったら、向きを変えて他の丘を攻撃してください。そのシナリオでは、受け入れられない唯一の行動は丘の間を走ることです。

あなたの状況にも適用できると確信しています。たぶん、1つを選んで作業を開始することで、今日の決定を下すことができます。うまくいけば、その2日間で何か準備ができて、「これを選んだので、テストをほとんど実行しなかったので、これで何ができるかを示すことができます...」と言うでしょう。選んだソリューションにまったく価値がないことに気づいたら、別のソリューションを選択して翌日に作業することができます。最悪のシナリオは、2つのプラットフォームをテストするために両方の日を使用し、どちらも機能しないことを確認することです-しかし、それは最終的に正しい答えではありませんか?雑草を取り除いて、間違った可能性のある選択を取り除くので、次の決定は前のものよりもはるかに良いでしょう。最良のシナリオは、あなたが

明らかに、2日間でプラットフォームをマスターすることはありませんが、ASAPを1つ選ぶと、その仕組みをよりよく理解できるようになり(それについて読むだけでなく)、より良い答えにつながります。


12
私は世界的なレベルであなたに同意しますが、時には戦場を急ぐことはかなり自殺的です。
Flot2011

誰も急いでいるとは言いませんでした。私は今日上司に歩いて言って決して言いませんでした-「ここに解決策があります。今ここで今。」。代わりに、私は頭の中で一つを選んでそれを走らせてそれをいじくり回すことを提案しています。単にそれについて読んで、それを他の誰かと議論するだけでは、トリックはできません。私は、先に進んで試してみると、はるかに高い品質の選択ができると信じています。
ミハル

6
@ Flot2011でも、MBAを取得している場合は、現在の場所に留まり、すべての部隊を派遣していずれかの丘と戦うことができます。彼ら全員が死ぬならば、まあ、あなたはより多くの軍隊を手に入れて続けます、しかし今回は、将軍としてのあなたの経験があなたをもっともっと作ると言います...途方もなく多くの給料に値します。
gbjbaanb

1
「できるだけ早く選んでからプロトタイプを作成する」というのは、この状況では非常に悪いアドバイスだと思います。はい、プロトタイピングは重要ですが、時間もかかります。自明ではない問題には多くの場合2つ以上の解決策があり、2日間ではいくつかの技術のプロトタイプを作成するには不十分です。
メリトン-ストライキ

@meriton私はあなたの言うことを感じます-私は同意します、プロトタイピングには時間がかかります。私は明示的に「プロトタイプを作成する」とは言いませんでした。だからこそ、ティンカーという言葉を慎重に選びました。プラットフォームを調べ、小さなコードを書き、いくつかの基本的な実装ファイルを開き、内部でどのように動作するかを確認してください。可能性としては、意思決定者がすべての詳細を正しく理解することはできませんが、試行錯誤によって決定の質を確実に改善できる可能性があります。
ミハル

10

gbjbaanbは非常に良い点をいくつか示しています。少しだけ追加すると思いました。

十分な情報に基づいた決定を下すのに十分な時間がないことは明らかです。あなたの唯一の選択肢は、将来の痛みを最小限に抑える決定を試みることです。私はお勧めします:

  1. 状況の性質を明確に文書化します。マネージャーにメールを送信し、マネージャーと関係者にCCします。あなたが割り当てられた問題はトリッキーなものであるが、あなたはそれをすべて喜んで与えることをいとわないことを説明する。ただし、厳密な時間の制約があるため、調査結果が最適であることを保証することはできません。

  2. 大規模でアクティブなオンラインコミュニティのあるフレームワーク/プラットフォームを見つけます。最後にしたいことは、あいまいなフレームワークのデバッグだけで立ち往生することです。

  3. gbjbaanbで前述したように、疎結合アーキテクチャを使用して、移植の苦痛とリスクを軽減します。テクノロジーの選択肢のいずれかですべてがナシ形になった場合、これにより交換が容易になります。

私は以前あなたの状況にいたことがあり、最終的に政治的な悪夢に変わりました。システムが魔法のように機能しなかったとき、人々は指を指し始め、物事はいものになりました。だからこそ、私の一番の推奨事項は、不可能な可能性に対して最善を尽くしたことを明確に文書化することです

がんばろう :)


17
日時:#1。誰も気まぐれな敗者が好きではないので、不可能な状況に対してできる限りベストを尽くしたことを強調するだけで、あなたは熱心なチームプレーのプロアクティブな勝者のように見えます!経営者はそのようなことを好みます。ちなみに、大きな書き直しが機能しない理由はたくさんあります。通常、ある技術を別の技術よりも選択するほうが問題は少ないです。
gbjbaanb

ええ、少し気まぐれだと気づいたので、修正しました。
メタファイト

個人的には、不確実性の重大度を指定していないため、「最適ではない」よりも具体的です。「完璧である必要はない、ただ十分である」という考え方のマネージャーは、この警告を無視してしまいます。
メリトン-ストライキ

3
代わりに、具体的なリスクを特定し、経営陣にエスカレーションします。たとえば、「現在の知識に基づいて、テクノロジーAが最良の選択であると考えています。ただし、期限が短いため、このアプローチがこのシステムに期待されるワークロードを処理できることを確認できませんでした。」管理者はリスクを受け入れるか、さらに分析を依頼してリスクを軽減できます。
メリトン-ストライキ

ポイント2の+1。その背後に成熟したよく発達したコミュニティがあるソリューションを探します。このようなソリューションが複数ある場合は、オンラインフォーラム、ブログを参照したり、質問を投稿したりすることができます。ベスト
アーナブバガバティ

5

彼らは帽子から候補者を選ぶ以上のことをする時間がほとんどないので、私は次のアプローチを採用します。

以下のテクノロジーを選択してください。

  • 大規模なユーザーベースを持っている
  • 積極的にサポートします(どのようなチャネルを介しても)
  • 積極的に開発されています

定義上、これは最先端のテクノロジーを除外します。

また、開発者のフレッドが過去にテクノロジーXを使用したという理由だけで、さらなる分析なしにテクノロジーXを使用したいという衝動に抵抗します。それが完璧にフィットする可能性は低く、フレッドがより環境に優しい牧草地に進むと、あなたの分野の専門家になります。


テクノロジーXが十分に適していて、Fredが他の開発者を喜んで教育している場合、それを行うことはチームをキックスタートする良い方法かもしれません。
CVn

確かに-それは他のボックス...ダニ場合
ロビーディー

4

この種の決定を行うには2日間が非常に短い期間ですが、次の2日間のリストでそれを行う必要があるため、

  1. ターゲットプラットフォームとは
  2. 移植にかなりの労力が必要になる可能性がある現在のアプリで使用されているカスタム/サードパーティのコンポーネントは何ですか。たとえば、チャートコンポーネント、グリッドコンポーネント、レポートコンポーネントなど。
  3. 現在のアプリはどのように世界に接続し、セキュリティはどのように処理されますか(データベース接続/ Webサービス/など...)
  4. 配布方法と更新の提供方法

すべてのターゲット環境に使用できる代替手段を見つける必要があります

それぞれの選択肢について、現在のアプリが使用している接続性/セキュリティを使用するためのサポートを見つけてください。

次に、各カスタム/サードパーティコンポーネントについて、それぞれに使いやすい代替手段があるかどうかを確認します。

そして、見つけた代替案ごとにどのように配布を行うことができるかを考えてください。

2日間、これはカバーできる範囲であり、結果に基づいてソリューションを提供できるはずです。


4

私は新しいものを学び、実験するのが好きですが、時間の制約の下で、最善のオプションは常に、仕事をするのがより快適だと感じるものを選ぶことです。あなたが知っていることに固執します。

長い目で見て最良のオプションを選択しなかったことが明らかになったとしても、あなたが開発したものは価値あるものであり続け、完全に使用可能で移植可能な一種のフィールド知識を包み込みます。それはまさに、あなたが使用することを選択した快適なコンテキスト、ツール、プラットフォームが邪魔にならず、本当に重要なものを確認できるからです。


2

選択する必要がある要素のリストを作成します。パフォーマンスセキュリティコスト使いやすさXを実行する能力Y開発者を熟知するまでの時間など。

これには1時間もかからず(実際には15分もかからないはずです)、管理者と一緒に座って、それらの要素に優先順位を付けます。(優先順位とあなたのものが同じになる可能性はほとんどありませんが、優先順位についての提案を行うことで選択を多少導くことができます。)これで、テクノロジーについて何を評価するかがわかりました。

インターネット検索に基づいて、問題に対する3つまたは4つの一般的な解決策を選択してください。

次に、各選択肢がそれぞれの上位3〜4の優先順位にどの程度適合するかを十分に推測します。各選択肢に数値を割り当てます。各優先度の評価にその優先度に設定された値を乗じて計算します(1の場合は10、2の場合は8、3の場合は6、4の場合は4、または任意の数値)これで、可能性ごとに数値スコアが得られました。一般的に、割り当てられた優先順位を最もよく満たすのは明らかです。さらに良いことに、あなたはあなたの選択を証明するためにそれらを分析する何かを持っています。彼らはあなたがそれをサポートする数字を持っているので、彼らは通常あなたの選択で買います。数字がそれをサポートしていない場合は、他の数字を好む理由を自問し、数字で最高のものを選ぶか、割り当てられた数字を再検討する必要があります。

選択の本当のプリロイトが何であるかに集中することにより、あなたは多くの研究時間を削減することができます。たぶん、1日以内に推測してから、残り2日間で上位2つの可能性を取り、必要に応じて試用版をダウンロードして、少し試してみることができます。


あなたが説明したものは、「分析階層プロセス」と呼ばれます。これは、貿易調査の実施に使用した最も一般的な手法です。その強みは、かなり客観的な方法で最良のオプションを決定するのに役立ち、すべての利害関係者の意見を考慮に入れることです。ウェブサイトがこのテクニックをどのように複雑にしているのかを見て驚いた。ウェブサイトに見られる見かけの複雑さを揺さぶらないでください。本当に使いやすいです。とにかく、良い例を見つけることができなかったので、ウィキペディアはen.wikipedia.org/wiki/Analytic_hierarchy_processと同じくらい良い出発点だと思います。
ダンク

1
スプレッドシートに構造を設定するのに10分もかからず(最も複雑な部分は、優先順位を比較する要因を決定することです)、記入するのは簡単です。
HLGEM

本当に簡単です。また、全員が各カテゴリに値を割り当てて、誰もが最も重要だと思うものを決定する調査を行い、各カテゴリに重みを適用します。結局のところ、ソフトウェアチームはプロセッサの速度とメモリが常に最優先事項であると考えていますが、ハードウェアの人たちはバッテリ寿命が重要であるため、反対意見を持っているようです。もちろん、顧客は通常、評価の重みの少なくとも半分にカウントし、ソフトウェアまたはハードウェアの懸念については気にしません。オンラインの説明は、そうでない場合は本当に複雑に見えます。
ダンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.