web-dev-qa-db-ja.com

アジャイルソフトウェア開発の魅力は何ですか?

アジャイルソフトウェア開発は、最近、かなり楽しい流行語になりつつあります。

開発者として、私は反復開発の実用的な価値を理解していますが、(ほとんどの場合)ソフトウェア開発へのアジャイルアプローチを採用することは開発者の選択ではありません。それはトップダウンの管理選択です!クリスタル、アジャイルメソッド、dsdm、rup、xp、スクラム、fdd、tddであるかどうかに関係なく、名前を付けます。開発者の選択ではありません。

そこにいるすべてのマネージャーにとって、アジャイル開発を行うことを選択する最大の理由は何ですか(私の経験では)ほとんどのマネージャーは自分の人生でコードに触れたことさえありません!

17
Agile Scout

要件の変化、より迅速な配信

アジャイルは、変化するニーズに迅速に(またはまったく)適応する可能性を提供し、それらの変更をより迅速に顧客に提供できるため、魅力的です。

これが、アジャイル/スクラムの使用時に多くの企業が失敗する理由です。マネージャーは優れたパワー(より速いリリース日を設定し、要件を頻繁に変更すること)が開発者に依存する責任)であることを理解していません。見積もり。アジャイルが機能するためには、マネージャーは喜んでスコープを削減する必要があります。

彼らは両方の力を求めています。

26
Nicole

トレンドに従う

時々人々は物事を行うが、それは彼らが着手している事柄(アジャイル)のメリットのためではなく、単にそれが人気で他の人たちが同じことをしようとしているためです。

「何?Macrojamはアジャイルをやっている?なぜ私達じゃないの?私達は遅くはない、私達はアジャイルだ、とんでもない!」

一部の人々は、アジャイルであることが実際に何を伴うかを善悪に与えません。それは単に彼らの存在を正当化するための手段です。羊飼い、仲間のプレッシャーなど.

9
Mark Canlas

コーディング自体は、マネージャがアジャイルをメソッドとして選択することを確信できる主な理由ではありません。要件と優先順位の変化に迅速に対応できるという事実は魅力的です。最終的に「マネージャー」は、エンドユーザー/顧客/彼のマネージャーにソリューションを提供する必要があります。

プロジェクトの開始時に重要と思われた機能をプロジェクトの途中で廃止し、より関連性の高い新しい要件に置き換えることができる場合、それは大きな利点です。

また、ほとんどの場合(たとえば、スクラムのように)各中間配信は、本稼働に移行する準備がほぼ整っている必要があります。同時に、最も緊急の機能が最初に開発されました。したがって、何らかの企業の決定によりプロジェクトがキャンセルされた場合でも、経営陣は最終的には正常に機能し、運用可能な状態になるはずです。

お役に立てれば。

8

何が起こっているかについてvisibilityを増やし、productivityを増やします

  1. マネージャは通常、特にスクラムに関してvisibilityアジャイルをもたらすことに関心があります。これは、マネージャを対象としたセミナーで最もよく使用されるセールスポイントの1つです。

  2. 生産性の向上は、デモンストレーションが容易であるため(一般的には可視性のおかげです)、それらを引き付けるためにも使用されます。一部のアジャイルエバンジェリストは、既存の従業員からの卓越した生産性を約束しています。 「何ですか?私はすでにレモンのようにそれらを押しています、そしてあなたは私がさらに得ることができると私に伝えますmore "

多くのマネージャーはアジャイルを使用して従業員をもう少し押しつぶしており、私は彼らがバーンダウンチャートを1つの大企業のスラックハンターマシンとして使用しているのを見ました。

結果? distressの多くのチーム。彼らはアジャイルがすべての問題を解決するだろうと考えていましたが、それは全く逆でした。問題は別の場所にありました。

私は積極的にそれと戦っています。だからこそ、アジャイル手法よりも高い確率で経営陣がpervertedになる可能性があるのは、社内では触れないことです。

6
user2567

その質問への答えは本をいっぱいにするかもしれません。

主な理由の1つは、アジャイル開発が成果物に重点を置いていることだと思います。それは常に、ここで今最も緊急であるものを正確に提供することに焦点を当てています。

もう1つの理由は、アジャイルプロセスが従うストーリーベースの計画と見積もりの​​実践により、何をいつ配信できるかをはるかに正確に見積もることができるためです。

ストーリーベースの計画がいかに効果的であるかの良い例は、私が取り組んだプロジェクトです。 (アジャイル開発を採用する前の)数か月間、プロジェクトリーダーは予定どおりに納品できると信じていました。これは期限から約18か月でした。すべての開発者は、それはおそらく非現実的だと感じていました。アジャイル計画を開始した後も、プロジェクトリーダーは状況について楽観的な評価を下していました。しかし、数回のスプリントの後でのみ、プロジェクトリーダーは、チームにはすべての要件を予定された時間に提供するだけの能力がないことに気づきました。そして、それは今でも締め切りから12ヶ月以上ありました。

したがって、アジャイルプラクティスは、現実をより早く明らかにすることにもなります。

そして最後に、アジャイルチームは、より良いコード品質を作成するプラクティスを採用する傾向があります。テスト駆動開発、頻繁なリファクタリング、継続的インテグレーション、ピアコードレビュー/ペアプログラミングなど。従来のソフトウェアプロジェクトはこれらのプラクティスを禁止しているわけではなく、それほど焦点を当てていない傾向があるだけです。

4
Pete

ほとんどのマネージャーは、自分の人生でコードに触れたことさえありません!

私は12年間開発者でしたが、現在は5年間のマネージャーでした。5年間で、コード化されたマネージャーから、主に純粋なマネージャーに徐々に移行しました(まだバグを修正したり、プロトタイピングの練習をしたりしています)。

アジャイル開発を選択する最大の理由は何ですか

  • 可視性または成功の速さ/失敗の速さ-私たちは、6か月から24か月サイクルの製品開発ショップです。機能するテスト済みの機能を使用した反復的な開発では、プロジェクトのステータスをより適切に反映できました。
  • 変更-私たちの環境では、要件と時間は固定される傾向があります。しかし、あまりにも頻繁にビジネスを行うと、方向性が急激に変化します。反復的で目に見える開発により、プロジェクトの方向転換が容易になりました。
  • 反復開発によるストーリーベースの要件により、要件の技術的側面を常に理解していなかったり、一部の詳細のビジネスドライバーを完全に理解していなかったりしたビジネスとの連携が容易になりました。これまでの取り組みでは、高レベルの仕様やマーケティング要件のドキュメントだけでは必ずしも十分ではありませんでした。現在、プロジェクトの進展に伴い、市場と顧客の研究が並行して行われる可能性があります。
  • プロセスの変更には、TDD、自動テストと手動テスト、より厳密なテストサイクル(QCグループはなくなり、QAグループのみが含まれます)、品質に関連する高い評価と努力(私たちはより多くのツールとメトリック)。

他の方法でこれを達成することもできましたが、アジャイル手法とアイデアを活用することで、非常に役立ちました。

また、プロセスの改良も続けています。たとえば、事前の設計作業と実装直前の設計とのバランス。すべての決定を定期的に確認して、過去の設計決定を延期できるかどうかを判断します。そして、問題が発生した場合、エラーが特定されるまでに、さらに多くの事前作業が必要でした。多くの場合、障害は詳細な分析を必要とするコーナーケースです。多くの場合、その詳細を取得する作業は、途中でそれを理解してリファクタリングするコストと同じです。チームはこれらのタイプのエラーに対してペナルティを課せられておらず、より積極的になるように奨励されています。

4
Jim Rush

多くの企業がアジャイルを「実行」しているのを見てきました。残念ながら、それらのごく一部採用アジャイル。つまり、反復的な開発を行っているだけであり、毎日のスタンドアップ(チームのほとんどが座る場所)によってチームがアジャイルになるわけではありません。 TDD、リファクタリング、継続的インテグレーション、顧客プレゼンス、SOLIDプラクティスはチームをアジャイルにします。それらがなければ、あなたは円の周りを回っています。

アジャイルのメッセージがもたらす魅力はたくさんあります。変化への適応性が最大です。残念ながら、プロジェクトの管理方法を変更しただけでは、コードの適応性は向上しません。これを実現する企業が増えるまで、アジャイルプロジェクトが失敗するという話を聞くだけです。

3
Michael Brown

バズワード部分は知りません。私はこれを、あまり正式ではない、または特定されていないプロセスで実際にずっと行ってきました。私は彼らのウェブサイトを構築するときに、クライアントに文字通り私の肩越しに見てもらいました。約50通のメールを保存し、クライアントはこのプロセスについて何かを学びました-それは簡単ではありません。

ユーザーがソフトウェアにしてもらいたいことをすべて書き留めるのに長い時間を費やし、アプリを試してから2秒以内に発見したいと思うものを構築するのに長い時間がかかるという全体的な概念彼らが期待しているのは吐き気がするものではありません。プロジェクトまたはアプリケーションをいくつかの合理的な部分に分割して、別の部分をビルドする前にビルドしてフィードバックを得るのはどれほど難しいですか。

これは単純化しすぎて、実際の開発者のプラクティスに対応していないことはわかっていますが、ほとんどの非技術系マネージャーや顧客に販売するのも難しくありません。他にどんな魅力的なアプローチがありますか?プログラマーは、いくつかのウォーターフォールプロジェクトの間に開発している間、プログラマーが6か月から12か月間髪の毛を失っていることを本当に気に入っていますか?この方法で家を建てる人を雇いますか?

3
JeffO

管理はこれらのものを開発者に押し付けません。開発者とチームは、イニシアチブを取り、より良い仕事をするために、彼らに向けて努力する必要があります。経営陣の仕事は、これらのイニシアチブをサポートすることです。

1
CaffGeek

私の経歴でかなりの量のコードを書いたマネージャーとして、私はあなたがこれに答えるために探している人ではないかもしれません。いずれにせよ、最近のアジャイルの魅力は、顧客のニーズへのより迅速な対応と、仕様、コーディング、テスト、顧客間のフィードバックループの短縮に関係していると思います。これらの理由から、私たちはよりアジャイルな開発に向けて動き始めています。

1
Dave Kincaid

アジャイルプロセスとコーディング/開発プラクティスを台無しにしないでください。たとえば、スクラムは、コードをどのように開発する必要があるかを教えてくれません-変更を受け入れるのはすべてプロセスです。

0
Sergii Pozharov