最初に気付くのは、アジャイルであることとアジャイルであることには違いがあるということです。アジャイルの技術と特性をゆっくりと展開する-機能横断型チーム、適応計画、進化的/増分的配信、タイムボックス化された反復、そしてリーンからのコンセプトの導入は、エクストリームプログラミング、スクラム、またはクリスタルの導入とは大きく異なります。
顧客の関与を明示的に述べます。はい、アジャイル手法の多くは顧客の関与を求めていますが、アジャイルである必要はありません。すべての政府/防衛関連プログラムでは、顧客との接点であるプログラムまたはプロジェクトマネージャーが常にいました。この人が「顧客の声」になります。電話会議、電子メール、または電話をかけて明確化するため、速度は低下する可能性がありますが、チームの顧客代表である1人の人物(または副PMもいる場合はグループ)を持つことができます。確かに、まったく同じではありません。しかし、柔軟性を持ち、変化に対応することについてアジャイルではありませんか?
また、いくつかの重要な概念についても説明します。事前定義された要件、「壁を越えて」機能要求を行う、「すべてが重要」であるため優先順位が付けられない、固定コストおよび/または固定スケジュールのプロジェクト。これらはそれぞれ異なる方法で対処できます。
すべての要件を前もって持っていると思う場合、そうではない可能性があります。要件は変わります。「完成して承認済み」の仕様を持っているからといって、それが石に固まっているわけではありません。どんな要件文書を持っているとしても、契約書で指定された方法で快適に感じる方法をキャプチャし、要件、設計、アーキテクチャを提供します。さらに、これらが生きているドキュメントであるかどうかを確認します(今日仕事で見たデザインドキュメントはリビジョンGとラベル付けされています。つまり、8回目の更新です)。特定のイテレーションでTBDとしてどれだけ離れることができるか、そして今どの程度固める必要があるかを尋ねます。
ドキュメントを機敏に操作してください。「チームが望んでいること」と「顧客が望んでいること」の間で努力を繰り返さないでください。たとえば、顧客が従来のソフトウェア要件仕様を望み、チームがユーザーストーリーを使用したい場合、時間を費やさないように、従来のSRSに適応し、ユーザーストーリーの代わりにアクションアイテムとローリングアクションアイテムリストを使用してください「システムは...」と「理由」の両方を策定する。ただし、プロジェクト間の違いに適応するためには、チームの規律が必要です。反射の問題をキャプチャします。
開発に着手したら、5回または6回の反復を実行し、顧客を施設に招待して実装のサブセットを確認します。このプロセスをすすぎ、繰り返します。いくつかの方法で求められる継続的な関与ではありませんが、可視性が高いという利点があります。顧客から「いいえ」と言われたら、少なくとも試してみました。彼らがイエスと言うなら、あなたは彼らが敏beingであることを悟ることができます。私が行っていた1つのプロジェクトで、顧客は数か月(通常3〜5か月)ごとにサイトを訪問しました。彼らは私たちがQAテストを通過するのを見て、エンジニアと懸念を話し合い、プログラム/プロジェクトオフィスとビジネスをします。全員が同じページにアクセスできる機会でした。
テストとメンテナンスは、他のアジャイルプロジェクトと同じように行われます。適切な方法でテスト手順を作成し、欠陥を文書化し、契約上の義務ごとにメトリックを追跡し、テスト結果を文書化します。TDDをフォローしたい場合は、ぜひ行ってください。継続的インテグレーションも良いアイデアです。プロジェクトステータスのミーティング中に、プロジェクトマネージャーはこの情報を使用して、「N個の要件を実装し、M個のテストを行い、X個のテストに合格」と言い、お金のある人のプロジェクトの健全性とステータスを更新します。
お金について言えば、固定コストや固定スケジュールの問題があります。
固定されたスケジュールを扱うことはかなり簡単です。要件を考えると、完了できる反復の数がわかります。各イテレーションのワークロードは、実装、テスト、および統合する機能の観点からはかなり固まっています。難しいかもしれませんが、機能を分割して事前に反復に割り当てることは不可能ではありません。これは、顧客を招待するという私のポイントに戻ります。1年で、2週間の反復を使用している場合は、四半期ごとに顧客を招待し(四半期ごとに顧客を招待し)、前の作業の結果を示します。要件の優先順位付け、将来の計画、およびスケジューリングの進め方を彼らに見せてください。
固定予算の取り扱いも同様です。どれだけの時間があるか、プロジェクトにどれだけのリソースがあるか、どれくらいの費用がかかるか、したがって反復ごとに誰もが作業できる時間を知っています。誰もがこれを注意深く追跡することを保証するだけの問題です。あなたの会社が残業のコストを食うことができるなら、それを手に入れてください。それ以外の場合は、全員が適切な時間を働いていることを確認し、優れた時間管理スキルとタイムボクシングを使用して、全員の生産性を維持します。生産性の高い時間は、コストを抑えるために必要なものです。会議やオーバーヘッドのコストなしで、より付加価値の高いドキュメントとソフトウェアを提供します。
最終的には、必ずしもアジャイルであるということではなく、アジャイルを良いものにし、アジャイルにするものを適用することです。要件の変更に対応したり、顧客が望まない場合でも頻繁にソフトウェアを配信したり、付加価値のあるドキュメントのみを作成したりすることができます(契約上作成する義務があるものは何でも)。