初めてのアジャイル開発

2部構成になっており、前半はアジャイル開発の基本的な考え方、後半はスクラム・XP・UP・Evoの各開発スタイルについて記述されています。

アジャイル開発というと、契約が分割されてないと無理、とか、顧客が付きっきりで開発に参加してもうらうのは無理、とよく言いがちです。僕も最初はよくそう思ってました。

例えば、本書の中に『「予想可能な製造」というパラダイムは、ソフトウエアには合わず、そのパラダイムに根ざしたプラクティスや価値はあまり役に立たない』という部分があります。

確かに実際は思うように行かないことが多いのも事実なのですが、ビジネスを行っていく上で計画は必要であり、それに根ざしているITが予想不可能というわけにもいかないので、うまく合わせていく必要があります。

そういった溝がある中で、顧客に対して価値を提供できることが自分たちのビジネスの根幹であり、その溝を小さくする為の手法の1つがアジャイル開発だと考えています。

だから、最近は自分たちの開発が「アジャイル開発」かどうかは気にならなくなりました。ただ、良い手法は取り入れたい、それだけです。

  • 「予想可能な製造」というパラダイムは、ソフトウエアには合わず、そのパラダイムに根ざしたプラクティスや価値はあまり役に立たない
  • イテレーションが始まる直前に最善の判断にもとづいて適応型計画(状況に適応した計画)を立てること
  • イテレーションのタイムボックス化とは、イテレーションの終了日を固定し、変更させないというプラクティスである
  • 反復型ではこの不確実性に対応するため、費用や工数やスケジュールの詳細な見積りを、2,3回のイテレーションが終わるまで待って(おそらくプロジェクトの10%から20%が終わる頃に)作成する
  • 固定価格の入札で進化型の見積りを行う場合に関して、IID手法の中には(UPなど)、プロジェクトを2つの契約フェーズに分けて実行し、それぞれタイムボックスを適用したイテレーションを複数回行うよう、進めているものがある
    • 最初のフェーズは、比較的短い固定時間・定額の契約であり、2,3回のイテレーションを行って、早期のうちに部分的なソフトウエア開発および進化型の要求分析を行うことが目標である
    • フェーズ1の成果物を確認して行う為、フェーズ2の見積りに役立つ質の高いデータが集まり、しかもプロジェクトのソフトウエア開発も進む

  • アジャイル宣言
    • プロセスやツールよりも、個人相互作用
    • 包括的なドキュメントよりも、動作するソフトウエア
    • 契約交渉よりも、顧客との協調
    • 計画に従うことよりも、変化に対応すること
  • アジャイル原則
    • 最も重要なことは、価値のあるソフトウェアを早い段階から継続的に納品し、顧客を満足させること
    • たとえ開発が進んだ後であっても要求の変更を歓迎する。アジャイルなプロセスとは、顧客の競争優位のために変化を生かすもの
    • 動くソフトウエアを頻繁に納品する。その間隔は2、3週間から2、3ヵ月月の単位で、短いほど良い
    • ビジネスサイドの人間と開発者が、プロジェクト全体を通じて毎日一緒に仕事をする
    • やる気のある個人を中心にプロジェクトを構築する。環境を整え、必要なものを提供し、仕事をやり遂げてくれる信じること
    • 開発チームに対して、あるいは開発チーム内で情報を伝えるために最も効率的かつ有効な方法は、直接の対話である
    • 動くソフトウエアこそが進捗を測る一番の尺度である
    • アジャイルなプロセスは、継続的な開発を促進する。スポンサー、開発者そしてユーザが一定のペースを無期限に保たなければならない
    • 技術卓越性と優れた設計に常に注意を払うことが、アジャイルさを向上させる
    • 簡潔性(できるかぎり作業をしないですませる術)こそ本質である。
    • 最も優れたアーキテクチャ、要求、設計は、は自己組織化されたチームから創発されるものである
    • チームは定期的に、より効果的な方法を検討し、自分たちのやり方を調整し適合させる
  • アジャイルプロジェクトマネジメント
    1. クライアントにとって有用なものを出荷する。何が重要視されるかを確認する
    2. 利害関係者が熱心に参加するように育てる
    3. リーダーシップ-コラボレーション方式を採用する
    4. 有能且つ協調的なチームを作り上げる
    5. チームが意思決定できるようにする
    6. タイムボックスを短く区切ったイテレーションを行って、早期にユーザ機能を出荷する
    7. 適応性を高める
    8. 技術的卓越性を擁護する
    9. プロセスに準拠するための作業ではなく、出荷するための作業を重視する
  • オーガスティンとウッドコックの6つのプラクティス
    • 指針となるビジョン: プロジェクトの指針となるビジョンを打ち立て、言葉と行動の両方から継続的に補強する
    • チームワークとコラボレーション: 関係とコミュニティを通してコラボレーションとチームワークを活性化する
    • シンプルなルール: スクラムやXPなどのようにチームの指針となる一連のプラクティスを設定し、サポートする
    • 情報の公開: プロジェクトマネジメントなどの情報を公開してアクセスできるようにする
    • 軽いタッチ: 自律的チームの創発的な振る舞いを促進するために最低限の管理だけを行う
    • アジャイルな自戒: ビジョンを補強し、ルールをそのまま、あるいはカスタマイズして適用し、人の言うことに耳を傾ける
  • 健全な開発チームは複雑適応系である。一羽一羽の鳥は限られた中の単純なルールに従って振舞っているが、マクロの視点では、群れは秩序と集団の創発的振る舞いを示す

  • プロジェクトの要求変更の割合は、中規模で25%、大規模では35%を超える

  • スプリントバックロググラフ(タスクの推定残作業時間をグラフに纏めたもの)を用いる

  • 広域デルファイ法を使った見積りを検討する

  • ムーア式ビジョン記述
    • (ニーズや機会の記述)であるところの
    • (対象顧客)向けに作られた
    • この(製品/システム名)は(製品/システムカテゴリ)である
    • これによって(主な利点、つまり購入せざるをえない理由の記述)が得られる
    • 主な競合製品/システムとは異なり

    • この製品/システムは(主な差異の記述)という点で優れている

初めてのアジャイル開発 〜スクラム、XP、UP、Evoで学ぶ反復型開発の進め方〜
初めてのアジャイル開発 〜スクラム、XP、UP、Evoで学ぶ反復型開発の進め方〜
日経BP社 2004-09-09
売り上げランキング : 23894

おすすめ平均 star
starはじめて手にしたアジャイル
starアジャイル開発してないの?
star本当のソフトウェア開発者に必要なもの

Amazonで詳しく見る
by G-Tools