1

私は数年前から開発を行っていますが、私のチームの年配のプログラマーの何人かが、開発哲学を一切持たずに設計と実装を進めていることに不満を感じていました。柔軟性と検証の欠如に。私は同僚にこのイライラを募らせたところ、彼らは「それでは、何百もの開発哲学のうちどれを使用することをお勧めしますか?」と答えました。

チームで作業するよりも、自分で作業するときに開発哲学を使用する方がはるかに簡単であるため、これは答えるのが難しい質問でした. 私はコードが正しく動作しているという最高の安心感を与えてくれるように思えるので、テスト駆動開発には少し偏っていますが、TDD には限界があり、主にすべてのテストを書くために必要なオーバーヘッドと、私たちのテスト フレームワークにギャップがないこと (チームで作業する場合、これを実現するのは困難です)。私の友人は、Agile Unified Process (AUP) を支持し、それ以外の使用を拒否しています。

私の質問は

  • チームで開発する際にうまく機能することがわかった開発哲学はどれですか?また、それらはどのように製品を予定どおりに予算内で提供するのに役立ちましたか?

  • どのような問題に遭遇し、どのようにそれらを克服しましたか?

  • それらはまったく必要だと思いますか?

4

5 に答える 5

2

請負業者として、特定の会社の開発哲学の変化に影響を与える影響はほとんどないかもしれません。これは、ほとんどの企業が臨時雇用者と見なす価格の一部です。人としてのあなたにとって、あなたができる最善のことは、現在の企業文化に適応することを学び、影響力のある立場にあるときに何が効果的で何が効果的でないかを学ぶことです。

テスト駆動部品はいつでも自分で実行できるため、少なくともコードがテストに合格することがわかります。私もそれをオーバーヘッドとは見なしません。それが機能することを確認するためのコードを書くことの一部です。テストを作成しないことに関連するオーバーヘッドははるかに大きくなります。

場所に特定の開発方法がない場合、1つを取得する方法は2つあります。1つ目は、開発者が使用する哲学にほぼ同意し、それを使い始めて、それが機能し、製品を改善する管理を示す場合です。開発者は、他の多くの専門分野よりも、自分の仕事のやり方を非常に自由に理解できます。これを有利に使用してください。志を同じくする人々の小さなグループを集めて、あなたがすべて同意する方法を使い始めてください。あなたが物事を行う方法について、グループに不慣れな人に教えてください。実際の進捗状況を示し、管理者がそれに参加します(マネージャーは見栄えを良くするものが好きです)。

企業文化を変える2つ目の方法は、トップダウンです。これを行うことについて1人の上級管理職の考えを変えると、彼は新しい方法論の使用を義務付けることができます。それはきれいではなく、人々はそれをやって戦うでしょう(これは変化への抵抗と呼ばれ、それは正常な状態であり、あなたはそれに対処することを期待する必要があります)。人々に新しい方法を使用させるという困難な段階を通して、方針に固執する意欲があり、新しい方法に従わない人々には結果がなければなりません。ボランティアと一緒に最初に方法論を使用するテストプロジェクトを行うことで、他の人に価値を証明できる場合もあります。また、人々はただのデッドウッドであり、何があっても変わらない場合もあります。

しばらくの間、何度も変更する機会があった後でも、新しいポリシーに参加することを拒否する人々は、個々の開発者としてどれほど優れていても、手放す必要があります。チームのルールに従えない場合は、先に進むか、先に進む必要があります。文化の変化は、最終的に全員が参加しなければ達成できません。

時には、外部の影響を利用して、マネージャーにビジネスのやり方を変えさせることができます。最大の顧客の1つが必要とする認証を取得するために、ここで開発プロセス全体を変更しました。HIPPAおよびSarbanes-Oxley法は、開発プロセスを形式化する多くの企業にも責任があります。ある種の認証を取得したり、法律を遵守したりするためのプロセスを形式化することが、より多くのビジネスを獲得するメリットであると主張することができれば、おそらく彼らは突然その価値を理解するでしょう。

于 2009-09-09T17:41:24.703 に答える
1

非常に主観的ですが、これらの方法論を読んで、作業プロセスが何らかの形で一致するかどうかを確認し、すべての方法論からのアイデアを使用して物事を改善する必要があります. すべてのチームは異なり、作業の性質、プロジェクトの開始、維持、および実行の方法に応じて、方法論もすべて異なります。

チームに何かを押し付けようとするのではなく、何をしたいのか、何を変えたいのかを話し合ってください。あなたは受容と変化の問題に出くわすでしょう。

そのすべてはコミュニケーションに関するものであり、はい、これは必須です。

于 2009-09-08T08:03:52.980 に答える
0
  1. プロジェクトの成功を脅かすリスクを特定し、それらに優先順位を付け、テストの実行の成功を通じて客観的に解決策を示す短い反復を使用して、最初に最も深刻なリスクを攻撃します。

  2. プロジェクトの目的、制約、およびアーキテクチャを明確にし、チームのすべてのメンバーがそれらを理解していることを確認します。

  3. 発見された反復中にすべての欠陥を修正します。

主な障害は常に変化への抵抗です。模範を示してください。

于 2009-09-08T08:57:03.710 に答える
0

私のクライアントはさまざまな方法論 (アジャイル/スクラム/XP など) を使用しています。私の観点からは、これらの間に起因するパフォーマンスの違いは見られません。

ただし、これらの方法論のさまざまな側面を使用するチーム間で、明確な生産性の違いが見られます。特に、継続的インテグレーション (CI)、TDD、およびテストを作成/維持する意欲と、頻繁に/定期的にリリースすること。私がこれらを使用して一緒に働いたチームは成功する傾向があり (彼らが方法論を何と呼んでいるのか、スタンドアップ ミーティングを行うなどに関係なく)、苦戦する傾向がないチームもいます。

あなたがそのような方法を使用しているかどうかはわかりませんが (使用しているとは思いません)、方法論を押し付けるのではなく、特定のプラクティス (CI/TDD の可能性が最も高い) を導入し、そこから作業することをお勧めします。これは、同僚が飲み込みやすく、最大の利益をもたらす錠剤になると思います。もちろん、TDD の方法論を強制する必要があります。私は経営陣に早期にこれを受け入れてもらいます。

于 2009-09-08T08:11:41.303 に答える
0

方法論の可能性 (および限界) を完全に理解するには、何年にもわたる経験が必要です。

いくつかの哲学の大まかな説明を読んで、状況に最も適していると思われるものを選び、実際にそれを実行するのが最も簡単な方法だと思います. 最も重要なことは、1 つのトラックを維持することです。混ぜ合わせようとしないでください。1 つのパラダイムに固執し、それをずっと使用します。

また、同僚をトレーニングし、ビジョンを共有して、誰もがこれらの原則に従わなければならない理由を彼らが本当に理解できるようにすることも重要です。マイナス面がどうなるかをすでに知っている場合は、それらも共有し、方法論の利点がマイナス面をどのように上回るかを明確にしてください.

ただし、言うは易く行うは難しです。最も重要なことは、あなたがなぜ、何をしているのかを誰もが理解できるように、オープンな対話を行うことです。

于 2009-09-08T08:13:34.127 に答える