dreamin' blog

アジャイル開発とは何でしょうか?

私たちは、ソフトウェア開発の実践 あるいは実践を手助けをする活動を通じて、 よりよい開発方法を見つけだそうとしている。 この活動を通して、私たちは以下の価値に至った。 プロセスやツールよりも個人と対話を、 包括的なドキュメントよりも動くソフトウェアを、 契約交渉よりも顧客との協調を、 _計画に従うことよりも変化への対応を、 価値とする。すなわち、左記のことがらに価値があることを 認めながらも、私たちは右記のことがらにより価値をおく。

かの有名なアジャイル宣言です。

http://agilemanifesto.org/iso/ja/

しかし、アジャイルで開発をやろう!という話になると、いろいろなことをみんなが想像しはじめます。 人によってはカンバンや見積もりゲーム、振り返りなどのイベントやツールを思い浮かべます。 中には「アジャイルだからドキュメントは作らなくていい」とか「計画を立ててはいけない」など間違った発想を持ってしまう人がいます。

アジャイル開発の一つの手法であるスクラムでは、確かに見積もりゲームや振り返りなどのイベントがありますが、 それを実践したからといって、アジャイル開発になるとは限りません。

ドキュメントよりも動くソフトウェアを重視しているからといって、動くソフトウェアをドキュメントなしで作れとは誰も言っていません。

僕は今までアジャイル開発の現場に何度も入ってきましたが、アジリティ高く開発できているチームに共通する点があります。 それは、継続的にプロジェクトを改善して、アジリティを高めて行こうとする意思がチームにあることです。

この意思をチーム全体に伝播させるためにふりかえりなどの手法は非常に有効なのですが、 それらを導入することよりも、自分たちが抱えている問題に向き合うことが最も大事です。

問題に向き合っていないチームは、問題を解決することはできません。

その問題は様々です。

テストがないなら、テストを書く。 バグがあるなら、バグを潰す。 デプロイが手動なら、自動化する。

などなど。

アジャイル開発を取り入れても、開発が劇的に変化することはありません。 工期が短縮することも、工数が減ることもありません。

何かをやれば、アジャイルなんて話はありません。 一つ一つ改善していく姿勢を粘り強く持つしかないです。

だとすれば、今取りくんでいる取り組みがアジャイル開発であるということを、あえて言わずに誰かの先入観を作らせずに、アジャイルの要素を用いながら、目の前の問題に向き合うのはどうでしょうか?

スクラムやアジャイルなどのキーワードは一切使わずにアジャイル開発に取り組んでみませんか?