アジャイルソフトウェア開発の奥義から学ぶアジャイルプラクティス
これからの開発で意識していくため書きます。
- プロセスやツールよりも、人と人同士の交流を重視する。
- 成功の鍵を握る最も重要な要素は「人である」。
- 仲間とうまくコミュニケーションをとる能力は、純粋なプログラミング能力より重要だ。
- もちろん、適切なツールを使うことも非常に重要だ。
- 先ずは小さなツールから始めよう。
- ここで肝に銘じておいて欲しいのは、開発環境を整えるよりも、開発チームを形成することの方がずっと重要であるということだ。
- 包括的なドキュメントよりも、動作するソフトウェアを重視する。
- ドキュメントの氾濫は不足するよりも始末が悪い。
- 新メンバーに仕事内容を伝えるときに最も役立つドキュメントは「コード」と「チーム」そのものだ。
- 【重要で差し迫った必要のあるドキュメント以外は作成しない。】
- 契約上の交渉よりも、顧客との協調を重視する。
- プロジェクトを成功させるには、顧客からの頻繁なフィードバックが欠かせない。
- 計画に従うことよりも、変化に対応することを重視する。
- ソフトウェア開発プロジェクトにおいては、遠い将来の予定を立ててもあまり意味がない。
- 詳細な予定は次の2週間分だけにし、おおまかな計画を3ヶ月分だけ作り、その先に関しては大雑把にしておくのが上手な計画の立て方だ。
12の原則
-
最優先事項は顧客を満足させることであり、価値あるソフトウェアを早い段階から継続的に届けることでこれを実現する。
・ 一部分でも動くものを早い段階から納品することと最終製品の品質との間に強い相関関係があるというのもだ。 -
要求変更を歓迎し、たとえ開発過程の後半であってもそれを受け入れる。アジャイルプロセスは、変化に対応することで顧客の競争上の優位性を確保する。
・ アジャイルプロセスを使う者は変化を恐れず、むしろ要求変更を歓迎する。 -
実働可能なソフトウェアの納品を頻繁に行う。できるだけ短い期間で納品することを旨とし、数週間から数ヶ月間隔で納品する。
・ 我々の目標は、あくまでも顧客の要求を満たす実際に動くソフトウェアを納品することにある。 -
顧客と開発者はプロジェクト全般を通じて日々共に働かなければならない。
-
やる気のある開発者をプロジェクトの中心に据え、彼らが必要とする環境とサポートを与え、信頼して仕事の完遂を任せる。
・ アジャイルプロジェクトでは、成功の鍵を握る最も重要な要素は「人」である。 -
開発チームで情報を伝達する最も効果的な方法は、直接話し合うことである。
・ 主要なコミュニケーションの手段は会話である。
・ ドキュメントは基本的に作成しない。 -
実働するソフトウェアこそが進捗状況の尺度である。
・ 30%完成していると言ったら、必要な機能の30%が稼働しているという意味でなければならない。 -
持続できるペースで開発する。そうすれば、スポンサーも開発者もユーザーもずっと一定のペースを確保できる。
・ アジャイルプロジェクトは50メートル走というよりは、マラソンのようなものだ。
・ 明日出来ることを無理に今日やってしまわないこと。 -
高度な技術と優れた設計への配慮は、アジャイル性を高める。
・ 開発スピードを保つ鍵は「品質」である。
・ 乱雑なコードを書いてしまったらその日のうちに書き直す。 -
シンプルさが肝心ーーー やらなくていいことはしない。
・ 今日必要な作業をできるだけシンプルに高い品質で行う。そうすれば、明日問題が発生したとしても柔軟に対処出来るからだ。 -
最高のアーキテクチャ、仕様要求、設計は自己管理能力のあるチームから生まれる。
-
チームは定期的にプロジェクトを見直し、より効果的な方法を考え、対処方法の変更や調整を行う。
以上がアジャイルプラクティスである。