技術に詳しくない人は、技術に詳しい人に、これは簡単に達成できると言ってはいけません_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:20:04
オリジナル
759 人が閲覧しました

技術に精通していない人は、技術に精通している人に、これが簡単にできるとは教えません

「このウェブサイトは非常にシンプルで、X、Y、Z を完成させるだけです。次のようになります。あなたはかなりの技術者なので、構築に多くの時間を費やす必要はないと思います。」

時々このようなメールが届きます。こうしたメールを書いている人は、ほとんどの場合、テクノロジーの経験がないか、初めての製品に取り組んでいる人です。最初は、人がこのようなことを言うのを聞くと、いつも本当にイライラします。ソフトウェアの開発にかかる時間について誰と議論しているのでしょうか? しかし、プロジェクトにどれくらいの開発時間がかかるかを予測できたとしても、私には無知であることに気づきました。自分もうまくやれないのに、なぜその人たちに怒らなければいけないのでしょうか?

私が本当に憂鬱なのは、彼らの見積もりの​​間違いではありません。問題は、彼らが実際には正しい見積もりができると考えていることです。私たちは開発者として、ソフトウェア開発の問題になると、素人が自然に複雑なことを単純なものとして見積もってしまうことによく気づきます。

これは私たちの怒りの言い訳にはなりません。しかし、これは別の興味深い疑問を引き起こします: プログラミングの問題に直面すると、複雑さを予測する私たちの生来の能力が機能しないのはなぜでしょうか?

この質問に答えるために、私たちの脳が物事をどのように推定するかを見てみましょう。経験の浅い人にとって正確に予測するのは簡単なこともありますが、そうでないこともあります。

人がギターを弾いているのを見て考えてみましょう。ギターを弾いたことがない人でも、「メリーさんは子羊」のギター演奏を見れば、シンプルで背が高すぎなくても弾けるテクニックだと推測できるでしょう。同様に、誰かがパシャベルのニ長調カノンを演奏するのを見れば、それが複雑であり、習得するには長い練習が必要であることが容易に推測できます。

なぜこれら 2 つの音楽の複雑さを迅速かつ正確に推定できるのでしょうか? これは、物事が単純か複雑かを判断するために使用する方法に関連しています。私たちの脳には、これらのことを達成するための既製のパターンがいくつかあり、最初のパターンは速度に基づいています。この場合、脳は毎秒何が再生されているかを識別します。 1 秒間にどれだけのものが再生されるかに基づいて、曲の複雑さを直感的に判断することが簡単にできます。ギターで曲を演奏することは物理的なプロセス、つまり感覚活動であるため、私たちの脳はこれを使ってテンポを簡単に推測し、それを複雑さに変換することができます。

推測の自然な根拠はもう一つあります、それは出来高です。テントとアパートを比較して考えてみましょう。たとえ建築を学んだことがなくても、多くの場合、アパートの建物よりもテントの方が設計や建設が簡単であると言えるでしょう。なぜかというと、私たちは何かの複雑さの指標として物理的な体積を使うようになっているからです。

もちろんです。上記の 2 つの論理分析は、必ずしも 100% 効果的であるとは限りません。しかし、ほとんどの場合、それが人々のやっていることであり、うまくいきます。ほとんどの場合、物理プロセスを評価するとき、私たちの脳は物理的なものの間を効率的に接続するため、以前の経験に依存する必要はありません。

それではソフトウェアについて話しましょう。非技術者がソフトウェア開発時間を評価しようとする場合、非常に基本的な直観的な指標が 2 つあります。1 つはボリュームの指標としての複雑さ、もう 1 つは速度の指標としての複雑さです。しかし、彼らが気づいていなかったのは、そのソフトウェアが彼らが想像していたものではなかったということです。ソフトウェアは本質的に形のあるものではありません。サイズもスピードもありません。その小さなコンポーネントがコンピュータ画面上で時々点滅することがあります。このため、Web アプリケーション (またはあらゆる種類のソフトウェア) の開発となると、私たちの基本的な直感が崩れてしまいます。

この最初の点である速度は、素人がソフトウェアを評価するために使用するのは明らかに不可能です。したがって、当然のことながら、評価にはボリューム指標を使用する傾向があります。ドキュメントを説明するページ数、またはソフトウェアの機能的使用例や機能の数に基づきます。

場合によっては、この評価方法が実際に機能することがあります! 静的な Web サイトに直面する場合、特別な設計要件はなく、素人でもこの方法を簡単に使用して開発時間を見積もることができます。ただし、通常、ソフトウェア開発の場合、量は複雑さを正確かつ効果的に反映しません。

残念ながら、ソフトウェアの複雑さを推測する唯一の効果的な方法は経験に基づくことです。そして、それは常に機能するわけではありません。プログラマーとして、私は以前に開発した同様の機能に基づいて、これらの各機能に現在どれくらいの開発時間がかかるかを見積もることができることを知っています。次に合計時間を合計し、プロジェクト全体を完了するのにかかるおおよその時間を算出しました。しかし、実際には、どのプロジェクトでも開発プロセス中に 2 つまたは 3 つのボトルネックに遭遇します。これらのボトルネックはプログラマーの多くの時間を消費しますが、遭遇する前にはそれを予測することさえできません。プロジェクト全体の速度が低下し、数週間、場合によっては数か月も遅れる可能性があります。

これらは、複雑さを評価するときに、経験の浅い人には理解できないことです。彼らは、他のものではうまくいく方法が、なぜソフトウェア開発ではうまくいかないのかを理解していません。ですから、次に誰かが「これは数日で開発できると思います」という言葉を聞いても、誰が言ったとしても動揺しないでください。深呼吸して、この記事のアドレスを彼に伝え、必要なことは何でもしてください。

興味がありそうな記事

  • curl の post を使用してデータを送信し、PHP で Web ページのデータを取得する方法の概要
  • js は、マウスとキーボードのイベント (マウスの右ボタン、矢印キー、バックスペースキー、F5更新キーなど)、IE、Firefoxと互換性あり
  • jsは英字と数字のみの入力に制限されており、中国語やその他の特殊文字は入力できません
  • phpmyadmin設定ファイルの詳しい説明
  • まとめmysql サーバーのクエリが遅い原因と解決策 方法
  • PHP ob_start() 関数の重要なポイントの詳細な説明
  • Web サイト上の複数の URL が同じコンテンツにアクセスするのは危険です
  • デスクトップを右クリックして、不足している新しいテキストドキュメントを作成します。それを復元する方法

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/868585.html技術記事技術に精通していない人は、技術に精通している人に「このサイトはとてもシンプルで、やるべきことはすべて完了です
」と簡単にできるとは言いません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート