提督F.D.フレッチャー
数日前、なぜ慎重に処方され形式化されたプロジェクトが、時間と予算を超えて何度も口thatを吹いたのはなぜだろうと思いました。 プロジェクトの動作が異なる場合がありますが、多くの場合、これが発生します。 また、作業量と開発自体を評価するためにどの方法論を使用するかにあまり依存しません。 私はソフトウェア開発の分野で真剣な権威であると考えているMcConnellでさえ、ソフトウェア評価:ブラックアートの謎解きの初めに、プロジェクトのサイズを見積もる簡単な方法は驚くほど複雑なものより悪くなく、同じ問題を経験していると述べています。 おそらく、この結論は評価方法だけでなく拡張することができます。
さらに、他の開発者と同様に、私は今後10年間の業界の見通しについて多少心配しています。これは私の専門的な見通しと関連しているためです。 そして、私は人間として、物事の理解をテストして力を求め、現地での経験とそこからの結論がどの程度かを理解したいと思います。
これはかなり単純なものですが、科学研究では、単純で明白なものが見かけのものではないことが判明した場合、またはプログラムの欠陥が突然「エラーを含む」モジュールで検出された場合、進歩または行き止まりが発生することに繰り返し気づきました。
(イラストでは、「あなたのソフトウェアはクソだ」というフレーズを発音したときの映画「アイアンマン2」イヴァン・ヴァンコのキャラクター)
1.ステロイドの産業
否定するのは難しいが、ソフトウェアは30年以上にわたって病気と市場成長の祝福の影響を受けてきた。 市場が成長しているとき、あなたは効果的である必要はありません。 ネイティブミラーやベルを持ち込むと、品質についてはほとんど気にせず、理解しませんが、それを望みます。
はい、2000年代の危機のように、最も恐ろしく非効率的なハイテク企業の崩壊と過熱した市場への投資の燃え上がりが経済を揺るがしたような警戒すべき呼び出しがありました。 IT企業が長期的にも利益を上げることは良いことであることが突然明らかになりました。 製品の品質とその有用性はわずかに向上し、消費者と投資の別の流入がありました。 そして、この考えは再び道端を通りました。
パプア人の鏡と鐘の製作で技術者または方法論者として働いている場合、私が効果的であることは意味がありません。 成長因子は、私の決定のほとんどを正しいものとして確認し、優れた販売ポリシーは、製品自体に問題があるという事実を完全に隠します。 ミラーは分割することができ、反射や呼び出し音はほとんどありませんが、販売されます。他のミラーを見たことがない人や、「好き」な要素が働き始めた場合に特に適しています。 それによって影響を受けるのは個人だけではありません。誰もがERPまたはCRMを実装しているために近代化したり、誰もがそれを行ったからといってインターネットの方向を開きたいと考えています。 何らかの理由で、この動作は私にとって驚くべきことではありません。
この間に、多数のソフトウェア開発手法とその評価が行われました。
理論的には、それらのおかげで、秩序はカオスから生じ、製品全体が特性、機能、建築的特徴などに美しく分解されます。 そして、作成は、統一と測定の対象となる完全に有限数のプロセスに分割されます。 クールで美しく、まさに科学のように見えます。
私には2つの温度計があります。1つは古い水銀、もう1つは新しい電子機器です。 病気になったかどうかを理解するために、体の温度を知りたいです。 古い温度計を取り、5分後に水銀柱で37.2度のようなものが表示されます。 それから、新しくて安全な新しい温度計を取り、ボタンを押して、それを選んで、1分後に36.638度を表示します。 どの温度計を埋め立て地に送りますか?
古いものは、動作が遅く、みすぼらしく、小数点以下の桁数を減らすために使用できるため、ほとんどが古いものを送信します。 そして、結局、それはより多くのお金がかかり、同情を捨てました。
このような精度は単なる幻想であり、自信を高めることに焦点を合わせています。 ソフトウェア開発および評価方法は、より堅牢になり、より高価に販売できるため、科学的に見えたいと考えています。 それらを使用する専門家の時間もより高価になり始めています。
はい、これは予算と仕事の量を増やす方法を理解しますが、これはどの方法論の記載された目標とも関係しています:すなわち、特定のソフトウェア製品を作成するか、既存のものを特定の状態に変更するために必要な作業の量とコストを削減します。
「製品の状態」とは別の問題であり、まだ触れないほうがいいと思います。これは、主に多くの質問がある要件と測定方法に関するものだからです。
多くの目標があり、少なくともわずかに拡張されたこの言葉遣いは、何らかの方法で、それらの間にある顧客、開発者、またはマネージャーにとって矛盾しているように思われます。
私が開発者である場合、可能な限り最善を尽くすための方法論の助けが必要です。 コードをできるだけ繰り返しません。 できる限り、モジュール全体をナイフの下に入れ、最初からやり取りするようにします。 コードの特定の部分がほとんどの条件下で正しく機能することを確認するため。 欠陥をすばやく検索します。 新しい従業員を開発プロセスにすばやく接続します。
ビジネスの観点から、他の何かが重要です-仕事のコストとプロジェクト予算の違いから利益を得る。 プロセスとコストの予測可能性。 製品要件の法的合理化。 資金調達段階とカレンダー期間へのリンク。 製品サポートへのクライアント依存の形成と新しいバージョンのリリース。
各リストは自由に継続できます。 しかし、これらは2つの異なる惑星であり、いくつかの場所では目標が一致し、しばしば互いに矛盾し、しばしば異なる次元にあります。 製品テスト方法論を四半期ごとに適応しますか?! そして、これは、一般的に、どのように?
妥協案を見つけることになる場合もあります。 欠陥のない高品質のコードが欲しいのですが、プロジェクトを時間通りに提出したいと思います。 どの方法でもこの矛盾を解決することはできません。最適は特定のケースに依存します。 期限がどうであれ、重大な欠陥を含む製品を引き渡すことはおそらく不可能でしょう。 そして、コードの正確性の数学的正当化に半年を費やすことはできません。 (しかし、奇妙なことに、それはこのように起こります )。 または、1人の優秀な専門家が指摘したように、コンピューターの存在の一般的なタスクは、繰り返される日常的な操作を簡素化することです。 ビジネスの観点から、彼らが彼に利益をもたらすなら、彼らは有益です。
主な問題は、可能な限り多くの目標をカバーすると主張することで、既存のすべての方法が非常にソフトな有効性テストに合格したことです。 私たちのソフトウェアは何とか動作し、販売していますか? その後、新しいバージョンを収集し、どういうわけか販売することができましたか? おそらく、私たちはそのような重要な成果を達成できるため、優れた技術を持っています。
私はブラウザを開きますが、その中に私が見ているものの顔を形作った多くの企業があると想定されています。 いいえ、実際、この人は、この段落を読んでいる間に初めて100人がブラウザを開いたという事実によって形作られ、残りは詳細に関係しています。
さまざまな分野で徐々に不均一になりますが、ソフトウェア市場は飽和状態に近づき、薄いところから引き裂かれ始めます。 特定のタイプのプロジェクトの体系的な失敗は、パラダイム全体の失敗と変化につながる可能性があります。 おそらくそれらの最大のものは、業界とその中のプロジェクト管理に関するアイデアに関連しています。
次のノートでは、管理の方法と機能がどこから来たのかを考え、それらの何が問題なのかを理解したいと思います。
ソフトウェア開発:2.継承
ソフトウェア開発:3.暖かくソフト