アジャイルな開発とかいうもの

新年初エントリ。
今年に入ってから会社でもアジャイルな開発を実践し始めています。
そのためにアジャイルサムライを読んだり。


アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

アジャイルは魔法じゃなくて普通のこと

アジャイルとか言うと魔法の呪文のような開発をしてるのかと思われますが、全然そんなこともなくむしろ普通だろって思うような内容ばっかりです。
アジャイルにおいて最も大切な要素は柔軟な体制作りです。
どのくらい重要かと言うとまずは誰もが対等。
上下関係もなく、言いたいことを全部言う。
まずは空気の通りを良くすることがアジャイルにおいて最も重要な要素です。


たとえそれがクライアント(顧客)であろうとも、です。
アジャイルはとにかく変化を求めるスタイルなので、よりよくソフトウェアを改善していくベストプラクティスです。
しかし、ゲーム業界ではパブリッシャがクライアントとなり、デベロッパがクライアントの要望に沿って開発するというスタイルが今でもずっと続いています。
もちろんそれが悪いことではないのですが、私はクライアントの言葉が絶対であり、そこに意見は許されないという状況が過去に何度もありました。
本当に理解のあるクライアントは「ゲームを良くするためだったらなんでも意見を聞きますのでどんどん突っ込んでください!」と言ってくれたりします。
そういう開発体制はアジャイルにおいても最も有効な運用が出来るでしょう。
そして日々の問題を全体で意識することにより、素早い軌道修正や、イテレーションスピードの上昇に繋るのです。
一番大事なのは顧客とか開発とかそういうのが関係なくみんなで作る!という意識を持つことなのです。

質を上げるためになんでもやる

アジャイルは素早い開発体制をとるため、質が下がりがちと思われたりもしますが、それは間違いで徹底的にクオリティ追求をするためにはなんでもやります。
具体的にプログラミングレベルで言えばコードレビュー、ペアプログラミングユニットテストリファクタリングと様々なものを導入していきます。
もちろん全てが有効なわけではありません。
が、これらは確実に質を上げるため便利なツールであり、良いものを作る体制作りにも必要なものなのです。
「ゲームプログラムにユニットテストとかありえねー」とか言う人もいると思いますが、私はそう思いません。
バグの酷いゲームというのはとにかくテストすら全く行われず、自分の想定外のことも確認出来ません。
そういったものをユニットテストでどんどん排除することも可能なのです。
それで全てが解決するわけではありませんが、後々に必ずそれは響いてくるところなのです。

みんなが見えるように

常にみんなが見えているような状況にすることはとても大事です。
そして何をみんながやっているのかをオープンにすることにより、御互いに問題を指摘することが出来る。
問題点の共有意識を持つためにも日々の作業をどんどんオープンにしましょう。
こういうときにSkypeなどのチャットツールやホワイトボードは非常に有効です。
ただし、ノイズとなるような情報はいりません。
要は明らかに見る必要がないものを全員が確認する必要はありませんし、強制するべきではありません。
大事なのは自然と見えるようにしておくことです。
見る手間もタダではないのです。
無駄な時間はなるべくとられないように。

常に改善する

なにか問題があれば常に改善する意識を持ちましょう。
やり方はいくらでも変えられます。
例えばPCの性能が悪いなんていう不満があった時は真っ先に改善すべきです。
それにより今迄の2倍ビルドが速くなったというのなら安い買い物をしたと言えるでしょう。
みんなが納得すればどんどん開発効率も上がり、結果的に素晴しいものを作るきっかけとなります。


アジャイルにも正解はないのです。