この質問が物議を醸すかもしれないことを感謝します。ある意味で、それは質問の裏返しです " 技術的な決定をしようとしているビジネス "。
スクラムでは、開発チームは、顧客の要件を満たすために、設計と技術レベルおよびコードレベルの決定をまとめて行う責任があります。利害関係者とのコミュニケーションによってストーリーを定義して優先順位を付ける製品所有者と、方法を決定するチームの間には、責任と権限の分担があります。ストーリーを実装します。
これは、開発者がこれまでに作成したコードと、プロジェクトについて記憶またはメモしたすべての情報に精通しているため、必要なときに不適切な決定の結果に直面するという信念に動機付けられていると思います将来的にコードを変更する場合は、設計上の決定を行うのに最適です。そして、後から考えて、彼らが悪い決定をしたことに気付いた場合、それは彼らにとって非常に貴重な学習経験となり、彼らは何が悪かったのかを経営陣のせいにすることはできません。理論的には、私はこのすべてに同意します。しかし、(悪魔の擁護者の一種として)この原則から文字に従うのが悪い考えとなる状況がいくつかあります。
組織内には、設計や技術的な決定にさまざまな有用な情報を提供できる人がいるかもしれません。多言語開発者; DBAを含むスペシャリスト(必ずしもスクラムチームに所属しているとは限りません)。冷笑的で、野心的または間違ったアーキテクチャを見たことがあるかもしれないマネージャーは、何度も失敗します。
しかし、それは貴重な経験を持つ人々から意見を得るだけではありません。これ以上に、管理者が(いいえ、このように実装するのは悪い考えです。代わりにこのようにしてください)、または少なくとも「いいえ時間があれば後でそれを試すことができますが、最初はこれをもっと簡単な方法で行います」スクラムはこの点で理想的すぎるように思えます。これは確かに起こりますが、この干渉のために、「組織がスクラムを行っていない」ということは、そのような場合には「スクラムを行う」ことは望ましくないことを示唆しています。
あなたが言っていることは要約すると次のように聞こえます:
これが正しければ、問題はスクラムではなく、チームがそれをどのように採用したかにあります。どちらか
スクラムとアジャイルは、反復的なソフトウェアリリースだけではありません。また、ソフトウェア開発ライフサイクルを改善することでもあります。各反復により、アプリケーションに改善がもたらされ、同様に重要なことに、開発プロセスにも改善がもたらされます。これは、物事がそれほどうまく機能しない可能性がある期間が前もってあることを意味しますが、あなたがチームに参加している場合、物事はを取得しますより良い。
[〜#〜] if [〜#〜]あなたのチームが参加しています。誰かがボールをプレーしないからといってスクラムが失敗するのを見てきました。突然、他の1人のインセンティブがアジャイル/スクラムの精神と一致しないため、5人がアジャイルになるための努力が完全に狂ってしまいます。その人にならないでください!あなたは何が起こっているのが気に入らないかもしれませんが、それはなぜですか?本当の問題はありますか?チームは単にアジャイルを効果的に採用していないのでしょうか、それともこの新しいアプローチは単に異質で恐ろしいのでしょうか?
はアジャイルとスクラムに完全に満足していて、チームが実際に改善や提供に失敗している可能性があります。この場合、アジャイル開発をやめるか、問題の修正により多くの時間と労力を費やすことができます。スクラムマスターはいますか?チームの全員がアジャイル開発とは何かを理解していますか?人々は通常、アジャイル開発がより脆弱または責任を負うようになると考えると、アジャイル開発を敬遠します。これは当てはまらないはずですが、時々人々はそのように感じます...
または、さらに悪いことに、それが真実である場合もあります。アジャイル/スクラム/反復ソフトウェア開発が実際にあなたの状況で理にかなっているかどうかを自問してください。そうでない場合、それを採用すると、チームに過度のストレスがかかる可能性があります。 Waterfallがすべての人にはるかに適していたときに、プロジェクトが反復型開発に従うのを見てきました。それは本質的なものであるため、単純に反復型開発を採用しないでください。それがあなたのプロジェクト/ビジネスに合っていることを確認してください。もしそうなら、素晴らしいです!そうでない場合は、そうする開発および管理スタイルを見つけてください。
ただし、最終的には、アジャイル/スクラムアプローチに従うことを選択した場合は、プロセス、ツール、目標、利点、および犠牲について全員が適切に教育されていることを確認してください。あなたの状況では、スプリントはプロダクトオーナーの絶えず進化するニーズに反応するため、非常に反復的なプロセスが設計とアーキテクチャを犠牲にする可能性があることを人々が忘れているようです短期的に。しかし、これらは短期の犠牲です。あなたのチームは、蓄積された負債(技術的、構造的、テストなど)を削ぎ落とすために、スプリントの強化を依頼する必要があります。これが、アジャイル開発が反応性と保守性のバランスをとる方法です。
ふぅ。今のところこれですべてだと思います!
アジャイル開発(特にスクラム)の鍵の1つは、フィードバックループの短縮です。つまり、開発チームは2〜4週間ごとに動作するソフトウェアを提供することが期待されています。 1回または3回のスプリントの後、チームが配信していない場合、経営陣は問題があることを認識し、方向を変えることができます。
シナリオを考えてみましょう。
プロジェクトのコマンドと制御構造は、これらの問題を実際にはうまく処理しません。問題1に必要な所有感を植え付けることはできません。経験豊富な開発者の関与が必要です(どちらの方法でも項目2の解決策です)。それはマゾヒスト/ヒーローになる可能性のある人の手に渡り、残念ながらリスクの高い状況と見苦しいソフトウェアをもたらします。また、スクラムよりも速く技術的な決定を下すことができないことをチームが示して解決することはおそらくないでしょう。
スクラムはフェイルファストの方法論(とにかくフレームワーク)です。それが最大の強みです。
これが、スクラムやテクノロジーに集中するだけでは不十分な理由です--talent selectionは、プロジェクトの成功または失敗の原因の1つです。才能の欠如を補う方法論、監督、または方針はありません。
これらの4つの例の例は、複雑なプロジェクトを提供した経験があり、プロジェクトの継続を保証することに(個人的な利益と金銭的インセンティブを通じて)コミットしている優れた上級開発者をチームに含めることが重要である理由です。順調に進んでいます。チームは、経験豊富な開発者だけで構成されている必要はなく、リードポジションにいる必要があります。
アウトソーシングプロジェクトの場合、アウトソーシングチームが適切なスキルと経験を持っていること、およびアウトソーシングチームのアウトプットを監視する経験豊富な開発者が社内にいることを確認することをお勧めします。仕様、およびコードのレビュー(ソースコードが配信の一部である場合)。
議論は、無能なチームに自分自身を管理させることではありませんか?なぜ誰かがスクラムチームを配置して、その仕事をすることができない人々でそれを埋めたいのでしょうか?
たぶん、より良い技術的アイデアを持つこのマネージャーがチームにいる必要がありますか?
他の誰かに技術的な選択をしてもらいたいのですが、チーム全体が反対した場合、このチームはこの優先的なテクノロジーを使用して開発およびスケジュールを立てることができると思います。それで頑張ってください。
それがうまくいかない状況があり、一般的ではないので、私は何かに対する議論を支持することはできません。この質問で説明されているチームは、監督の量に関係なく、貧弱なコードを生成すると主張します。 1人のマネージャーがチーム全体の無能さを克服できれば、ソフトウェアの作成はそれほど難しくありませんが、そうではありません。
おなじみのアーキテクチャと技術的負債については、あなたが持っていることについて議論しているようです。問題の一部である可能性のある「アーキテクトの役割」についての言及はありません。「ソフトウェアアーキテクト」に関するいくつかの優れたリソースについては、以下を参照してください。 http://www.codingthearchitecture.com/authors/sbrown/ 。 Simon Brownには、現在直面している問題の多くに対処しようとする優れたアイデアがたくさんあります。
あなたがロンドンを拠点としているのを見ると、良い ロンドンでのソフトウェアアーキテクチャ会議 毎年あります。カンファレンスの価値について私が書いたレビューをご覧ください。 ソフトウェアアーキテクチャカンファレンス–ロンドン2012 ジェイミークレイトン
また、「パディングの再開」に関するソフトウェアの決定にも注目します。多くの短期開発者は、自身のスキルを向上させる以外にビジネス上の理由に基づいてテクノロジーの組み合わせを使用したいと考えています。
長年にわたってビジネスの意思決定者や会計士/財務スタッフと協力してビジネス上の意思決定を行った後(タイトな札束)、ソフトウェアのメンテナンスとサポートは非常に重要であり、ソフトウェアのコストの80%になりやすいため、企業の予算に含める必要があります。最初のスクラム/プロジェクトが企業のソフトウェアソリューションのライフタイム全体で20%を占めている間、ソフトウェアを実行します。
先行プロジェクトの年間コストの20%〜30%として、企業ソフトウェアの社内メンテナンス/ライセンス契約をビジネスに売り込みます。これは、すべての商用ソフトウェアベンダーが最低でも請求する金額です。企業がこれらの費用を費用/便益の一部として受け入れない場合は、プロジェクトに対して助言する必要があります(致命的な決定は彼らに任せてください)。
この質問を書いた後に私に起こったいくつかの事柄があります:
あなたが説明しているシナリオはどのような方法論でも発生する可能性があり、それらはスクラム/アジャイルの適応とは何の関係もありません。すでにアジャイルフレームワーク内で働いている開発者を雇っている場合、それらのほとんどは、彼らのコーディングがプロジェクトの保守面に与える影響を知っています。