12

私は何年もの間、アジャイルについて聞いたり読んだりしてきました。私はそれについての本を1、2冊所有していますが、そのアイデアが気に入っています。

私は最終的に、私が働いている場所でこのようなものを展開できる立場にいますが、それが私たちにとって進むべき道であるかどうかについて深刻な懸念があります:

  • これに最小サイズはありませんか?3 ~ 4 週間のプロジェクトでは、事前に大きな設計を行う方が効率的である必要があります。
  • 当社の顧客は通常、固定価格を要求します。彼らは、私たちが明らかなブラックホールに直面している特別な場合を除いて、彼らが何を扱っているかを知る必要があります. では、進行中の要件の変更に寛容なプロセスを使用する場合、どのように見積もりを提供できますか?
  • アジャイルがより複雑なプロジェクトで成功の可能性を高める可能性があることは理解していますが、それによって顧客のコストが上昇することはありませんか? そしてもちろん、考慮しなければならないコストもあります。おそらく、ここで最小サイズの問題に戻ったのでしょう。
  • この直感に反するアプローチを顧客にどのように説明しますか? 技術者以外の利害関係者は、ウォーターフォール以外のことについて頭を悩ませる経験がないかもしれません。
  • 社内プロジェクトでも予算はあります。私は何が欠けていますか?
  • 最近、アジャイルに対する反発があるようです。他の何かがすぐに勢いを増し始めるのでしょうか?

注: 私たちは、1 日か 2 日から数か月にわたるプロジェクトを持つ 5 つの開発ショップです。それらすべてを支配する 1 つの方法論があるとは思いませんが、すべてのプロジェクトに適応できるほど柔軟なものを見つけることができれば素晴らしいことです。

どうもありがとう!

ブライアン・マッケイ

4

11 に答える 11

7

1 つの方法論ですべてを支配できるとは思いません。ごめんなさい。私は、適切なプロジェクトに適切なモデルを見つけることを固く信じています。たとえば、あなたが手術に携わっていて、あなたを生かしている機械が、事前の設計がほとんどなく、迅速な反復サイクルで開発されたことを知っていたら、どう思いますか.

とにかく、あなたの質問に進みます。私は、イテレーションを短く保ち、ユーザーが望むものに焦点を合わせ、戦艦を建造するのではなく、まさに必要なものだけを建造するという、アジャイルなアプローチを強く信じています。すべてのプロジェクトの 95% がアジャイル アプローチを使用できると思いますが、それができない場合は通常、プロジェクトの問題ではなく、文化の問題です。

BDUF (Big Design up Front) に関しては、4 か月のプロジェクトで 20 人のチームで大きな成功を収めました。プロジェクトを 3 つの 4 週間のサイクルに分割し、各サイクルの開始時に全員が集まりました。部屋、そして、これが私たちが構築する必要があるものであり、これがどのように構築するかであり、インターフェイスがどのように見えるか、必要なデータなどを突き刺しました...しかし、それは突き刺しただけでした。私たちの机に戻り、さまざまな作品を所有していた人が詳細を洗い流しました.

基本的に、チームを活性化するために十分な BDUF を前もって行いました (そして、すべてのビジネス要件を確実にカバーしました)。私たちはこれらのセッションを Developer Days と呼んでいましたが、チームを活性化させる良い方法でした。現金を持っている場合は、チームをホテルの会議室に詰め込み、たくさんのがらくたを与えて、ジュースが流れるのを見ることができます.

于 2008-12-08T04:02:39.043 に答える
7

簡単な解決策には2つのステップがあります:

  1. プロジェクトのコストとスケジュールを見積もらない、機能のコストとスケジュールを見積もらない
  2. 速度と推定誤差を計算するのに十分な情報を測定して記録する

可能な場合は小規模で社内で開始して、いくつかのベース番号を取得します。それでも「大規模な事前設計」を行いたい場合は、個々の機能に対して行います。これにより、最初の見積もりがより正確になり、快適な「機能」の粒度にも役立ちます。

注:これは、顧客が自分の役割を果たそうとする場合にのみ機能します。つまり、開発者に高い可用性を提供し (質問に答えたり、ストーリーを書いたり、説明をテストしたりするなど)、イテレーション中に気が変わらない場合にのみ機能します。

移行を成功させてください。移行の進捗状況をお知らせください。

于 2008-12-08T04:23:33.650 に答える
6

私が見た最大の禁忌は、価値観の不一致です。エクストリーム プログラミングは、尊敬、コミュニケーション、フィードバック、勇気、シンプルさに依存しています。相容れない価値観に基づいて行動する組織では、XP を適用すると摩擦が生じ、永続的な変化 (IME) は得られません。

于 2008-12-08T18:14:22.617 に答える
4

誰に尋ねるか、そして彼らがアジャイルを信じているかどうかに依存します...

これに関しては:

それらすべてを支配するための 1 つの方法論を見つけたいと思います。

http://www.opaquelucidity.com/facepalm.jpg

お客様はみんな同じですか?期間は大きく異なるとすでにおっしゃいましたが、さまざまなプロジェクトが 1 つの方法論に適していると考えるのはなぜですか?

于 2008-12-08T03:55:01.883 に答える
0

Scott Ambler は、これに関する回答の優れた権威の 1 つです。彼の記事は、固定価格のいくつかの落とし穴をうまく強調していますが、確実に可能です。Alistair Cockburnもそれが可能であることに同意しますが、固定価格の契約ではアジャイルから得られる利点の一部が失われることを指摘しています。

「大規模な事前設計」 (BDUF) の基本的な問題の 1 つは、ほとんど使用されない機能の設計に時間がかかることです。1 か月以内に製品を完成させる必要がある場合は、事前に問題を明確に定義する必要があります。

失敗のコストに関しては、それは非常に正当な懸念です。アジャイルの利点の 1 つは、ウォーターフォールの方法論に従うプロジェクトよりも、あらゆる失敗が早期に発生し、はるかに少ないコストで発生することです。これらの失敗から学び、最終的に良い製品を得ることができるということは、ウォーターフォールの方法論が提供できる結果ではありません。連邦政府には、ウォーターフォール手法と BDUF に従ったソフトウェア プロジェクトの注目すべき失敗がかなりの数あります。FBI の Virtual Case File プロジェクトの失敗についてブログに書きました。

使用する方法論は、構築しているソフトウェアのタイプと同様に、チームとの適合性、および顧客によって決定されます。tvanfosson は、アジャイル手法に適していないプロジェクトについて非常に正しいです。価値観の不一致の考え方については、Kent Beck に同意します。一部の組織は、他の場所でのメリットや成功に関係なく、文化的な観点からアジャイルの準備ができていません。

于 2008-12-08T19:43:17.477 に答える
0

すべてが事前にわかっているプロジェクトでは、必ずしもアジャイルを使用するわけではありません。アジャイルは、変更の可能性が高い場合にうまく機能します。変更の可能性が低い場合は、予測プロセスまたはウォーターフォール プロセスを使用して、そのようなプロジェクトを管理できます。

特定の質問への回答は次のとおり です。これには最小サイズはありませんか? 実用的な観点から、アジャイルはサイズに依存しません。そうは言っても、プロジェクトが大きくなればなるほど、変更が発生する可能性が高くなります。プロジェクトが十分に小さい場合、すべてを知ることができ、変更はほとんどありません。

3 ~ 4 週間のプロジェクトでは、事前に大きな設計を行う方が効率的である必要があります。 TDD によって駆動されるシンプルで進化的な設計は、常により効果的です。主要な部分がどこにあるのかを知るために、事前に十分なアーキテクチャを準備しておく必要があります。何をしようとしているのかを推測するためにアーキテクチャを使用しないでください。知っていることだけを捉えてください。シンプルで進化的な設計により、アプリケーションを構築する際に詳細な設計を進化させることができます。

当社の顧客は通常、固定価格を要求します。彼らは、私たちが明らかなブラックホールに直面している特別な場合を除いて、彼らが何を扱っているかを知る必要があります. では、進行中の要件の変更に寛容なプロセスを使用する場合、どのように見積もりを提供できますか? 最初はある程度の教育が必要です。製品のバックログを確立し、製品の所有者に優先順位を付けてから、作業の初期見積もりを行います。これには、プロダクト オーナーが固定入札のバックログにカット ラインを設定する必要がありました。次に、見積もりに合うようにチームと期間のサイズを設定します。契約には、設定されたタイムボックスにチームの固定キャパシティを使用することが記載されています。これにより、プロダクト所有者は、バックログで優先度の高い通話を行うときに、タイムボックスと予算に集中できます。

アジャイルがより複雑なプロジェクトで成功の可能性を高める可能性があることは理解していますが、それによって顧客のコストが上昇することはありませんか? 成功したプロジェクトは、失敗したプロジェクトよりも常に安価です。

この直感に反するアプローチを顧客にどのように説明しますか? 技術者以外の利害関係者は、ウォーターフォール以外のことについて頭を悩ませる経験がないかもしれません。 教育 (つまり、アジャイル ブート キャンプ) と成功しているアジャイル チームの訪問は、非常に役立ちます。次に、チームを動かします。仕事は彼らを忙しくさせ、結果は彼らを売るでしょう。

社内プロジェクトでも予算はあります。私は何が欠けていますか?最近、アジャイルに対する反発があるようです。他の何かがすぐに勢いを増し始めるのでしょうか? 私が知っている唯一の反発は、エンジニアリング手法を効果的に使用していないアジャイル プロジェクト (つまり、SCRUM のみ) です。SCRUM と XP を効果的に使用するチームは、デリバリーと持続可能なペースで非常にうまく機能します。

于 2009-05-12T20:05:15.553 に答える
0

あなたの懸念にポイントごとに答えさせてください:

これに最小サイズはありませんか?3 ~ 4 週間のプロジェクトでは、事前に大きな設計を行う方が効率的である必要があります。

コードをリファクタリングするより紙に四角形を描く方が速いに違いないとあなたが考える理由がよくわかりません。

とにかく、仮にそうだったとしても、BDUF が見返りをもたらすかどうかという問題は、プロジェクトの規模よりも、プロジェクト中にどれだけの学習を期待するかに大きく依存します。システムを実装する際に、設計や要件などについて何かを学べば期待できるほど、事前の設計が無駄になります。

システムを実装しながら重要なことを学ばなかったプロジェクトにまだ遭遇したことがありません。

当社の顧客は通常、固定価格を要求します。彼らは、私たちが明らかなブラックホールに直面している特別な場合を除いて、彼らが何を扱っているかを知る必要があります. では、進行中の要件の変更に寛容なプロセスを使用する場合、どのように見積もりを提供できますか?

総労力を変更しない要件の変更のみを受け入れます。つまり、新しい要件が発生した場合は、重要度の低い要件を削除します。費用対効果が最大になるように、顧客に決定してもらいます。

この方法ではアジャイルのすべてのメリットを享受できるわけではありませんが、私が知る限り、固定価格と同じくらい優れています。

アジャイルがより複雑なプロジェクトで成功の可能性を高める可能性があることは理解していますが、それによって顧客のコストが上昇することはありませんか?

アジャイルな方法で実行されるプロジェクトは、従来のプロジェクトよりもコストがかかるということですか? 実際、コストを最大で 50% 削減した、逆のことを経験した企業があります。

そしてもちろん、考慮しなければならないコストもあります。おそらく、ここで最小サイズの問題に戻ったのでしょう。

アジャイル プロジェクトでは、初期のフィードバックにより、失敗のコストが下がります。失敗に気づき、プロジェクトをキャンセルすることを決定するのは、はるかに早い時期です。

この直感に反するアプローチを顧客にどのように説明しますか? 技術者以外の利害関係者は、ウォーターフォール以外のことについて頭を悩ませる経験がないかもしれません。

なぜアジャイル ソフトウェア開発は有料なのですか?

社内プロジェクトでも予算はあります。私は何が欠けていますか?

知らない。アジャイルは予算に合わせてうまく機能します。予算が使い果たされるまで、最も優先度の高い機能を実装します。そのお金で実装できた最も価値のあるシステムを手に入れました。

最近、アジャイルに対する反発があるようです。他の何かがすぐに勢いを増し始めるのでしょうか?

それに対する反発は当初からありました。そして、人気が高まるにつれて (実際にそうです!)、反発も見られるのは当然のことです。

リーン ソフトウェア開発は、多くの注目を集めています。ただし、これはアジャイル開発と競合するものではなく、補完的なものです。コミュニティは実際にはかなり重複しています。

「すべてを支配する 1 つの方法論」については、Alistair Cockburn のアジャイル プロセスの「Crystal」ファミリを参照してください。彼は、すべてのプロジェクトには独自のプロセスが必要であり、1 つのプロジェクトのプロセスでさえ、プロジェクトの過程で変更する必要があると (非常に有能に) 主張しています。そして彼は、プロセスを開発するための軽量フレームワークを提供します。

私が考えているように、スクラムもそうです。スクラムは、実際にはプロジェクトの実行方法についてはあまり教えてくれませんが、何が機能しているかを見つけ出し、チームがそれらの調査結果に適応できるようにする方法について、より多くのことを教えてくれます。

于 2008-12-09T18:19:57.300 に答える
0

アジャイルの実践が失敗する原因を探ってください... マイナー ポイントが 1 ~ 2 点あれば、それらを克服する方法が見つかります。そうでなければ、あなたは失敗を探しています。そして、一度失敗すると、次の機会はありません。失敗したのはアジャイルプラクティスではなくても...

于 2008-12-08T03:57:40.630 に答える
0

社内プロジェクトから始めて、アジャイル プロセスがどのように機能するか、および作業にかかる時間を最適に見積もる方法について経験を積んでください。本当の顧客を引き受ける準備ができたと感じたら、信頼できる顧客を選び、適度に小規模なプロジェクトから始めましょう。ここで重要なのは、自信をつけたいということです。あなたが何をしているのか、そしてその理由を説明し、優先順位をより適切に反映するより良いソフトウェアをより早く彼らに提供したいのです。約束を果たす - 私はアジャイル手法を信じているので、これを実行するのはそれほど難しいことではないと思います。

成功したら (そして顧客を驚かせたら)、他のプロジェクトでその方法を使用するように求められます。満足している顧客を 1 人獲得したら、最初の顧客を参考にして、他の顧客に拡大することができます。すぐに、使用しているプラ​​クティスが非常にうまく機能し、「ウォーターフォール」プロセスにも忍び込んでいることに気付くでしょう。最終的には、クールエイドを十分に飲んで、他のアジリストと同じようになるでしょう。:-)

おー。そして、そうです、アジャイル手法にあまり適していないプロジェクトもあります。生命に不可欠なシステム、原子力発電所の制御、高度に規制された産業などはすべて、アジャイルが許容するよりも多くの事前設計とプロセスを必要とする場合があります。私たちのほとんどは、これらのプロジェクトに取り組んだことはありません。

于 2008-12-08T04:08:36.817 に答える
-1

私見では:

アジャイルであろうとなかろうと、実装する前に、つまり「何かを試す」前に、わかっていることを設計する必要があります。再帰的に物事を管理可能なタスクに分解し、既知のものを設計します。それは核心的な詳細であろうと、単なる大まかな概念であろうとです。UI や日常のビジネス要件などは、開発前に確定されることはほとんどありませんが、航空機のシミュレーション機能は確定される場合があります。

アジャイルを顧客に「売り込む」ための 1 つの方法は、顧客に 2 つのオプションを与えることです。2. アジャイル。ステータスに関する毎週の更新情報、利用可能になったハンズオン デモ、および 2 週間ごとにサービスを中止する権利 (私たちの仕事が気に入らない場合) を取得します。

于 2009-05-12T20:36:10.323 に答える