アジャイルという考え方

  今日のIT業界ではアジャイルという手法を使って、あらゆる問題に取り組んでいます。アジャイル(agile)とは迅速な、俊敏に、という意味。これまで、IT業界では始めに計画をしっかり立てて、設計を行い、実際に開発を始め、最後にまとめてテストする、というプロセスでした。この方法では、最初の計画の段階で何をすべきか、何が必要かという作業を見積もる必要があります。でも、現実的に最初の段階で完璧な計画を立てるのは不可能であるという結論に至りました。そこで、もっと短いプロセスで何度も繰り返して開発を行った方がいいという考え方が登場しました。つまり、小さい機能に焦点を当てて、その機能のみについて計画、設計、開発、テストをする、というやり方。それがアジャイルです。小さく分割すれば見積もりも上手くいくし、何より早い段階でテストができる。言い換えれば、成果が見えやすいということ。
もう1つ、アジャイルには重要な考え方があります。それは人と人との交流を重視するということ。アジャイルでは5~10人くらいで小さなチームを組んで、仕事にあたることが多い。その中には顧客、プログラマー、テスター等色々な人がいて、役職に関係なくとにかく積極的に対話をするらしい。というのも、開発の失敗の原因の多くはコミュニケーション不足からくるものだから。そのため、アジャイルでは絶えずコミュニケーションを取ることを重要視している。
アジャイルについてのまとめとして、アジャイルソフトウェア開発宣言というものがあるので並べておきます。これはアジャイルの原則を言葉にしたものね。
・プロセスやツールよりも個人と対話を重視する
・包括的なドキュメントよりも動くソフトウェアを重視する
・契約交渉よりも顧客との協調を重視する
・計画に従うことよりも変化への対応を重視する

 
  ここまで読んでみてどう思っただろうか?
僕は、これはトライアスロンチームの運営に応用できるのではないかと思った。トライアスロンの上達というのはなかなかシンプルでない問題で、予想もしないことがたくさん起こる。あそこを直せばここが悪くなるということもあるし、予想より多くの時間がかかるということはざらだ。
 なので、大きな計画を立ててそれを守るというより、アジャイル流の小さくサイクルを回すほうが効率良くなるだろうと思った。また、僕自身がトライアスロンはチームでやるスポーツだと思っているからというのもある。別に1人で練習することもできるけど、やっぱりチームで活動した方がより大きなことを成し遂げられる。そういう意味で、チームとしての動き方も参考になる部分が多いのではないかと思っている。(というよりは信じているの方が正しいけど)

   基本的にトライアスロンの練習は1人ではできない。もちろんジョグやローラー、筋トレとかできることはあるけど、それでもせいぜいできることは限られている。そのため、本当に強くなりたいのならチームという単位で練習することを優先して考えるべきだ。1人で考える、1人で反省するという練習よりも、複数で協力して、意見を出し合って、お互いを指導するような関係性の方が効率良くできるのは明らかだ。
  じゃあ、チームとは何だろうか?部活動やクラブ全員で1つのチームと考えればいいのか。それもチームはチームなんだろうけど、アジャイルでは大抵チームは3~10人の小規模な人数で行う。人数が増えれば増えるほどコミュニケーションの質は下がり、結果的に仕事の質も落ちるというのがアジャイル流の考え方。なので練習の中で10人を超える人数で協力して練習するというのは現実的ではないと考えるのが自然だ。今までの経験的に、比較的少人数で、意識の高いメンバーを集めてチームと呼んだ方が上手くいくように感じる。ただ、サークルという枠組みの中でそれをするのはなかなか難しい側面はあるけれど、これはやりようだと思う。メンバーの選定は種目関係なく、目的・レベルが大体一致していることを軸にして考えれば上手くまとまるのかなと思う。まあこれは実際にやってみないと何とも言えないけど。
 先にチームで大事なことは目的が一致していることと書いた。アジャイルではそれをビジョンの共有という言葉で表現している。チームで何をしたいのか、どういう価値観をもって行動するのか、そしてどうなれば成功といえるのかをチームで共有するようにする。そして、決めるだけではなく文書にしてまとめ、チームの中で宣伝するようにする。トライアスロンでいえば、どういう戦略でどういう目標を達成しようとしているか、ということは必ずチームで共有すべきだと思う。それがぶれてしまえば、チームとしてどうやって練習すべきかもぶれてしまう。だからそれを何度も伝えて理解してもらうことが重要。そのために、文書を作って配る、見えるところに張る等が効果的だろう。
  アジャイルでは仕事場の環境についても気を使う方法を教えてくれる。部屋を情報でいっぱいにして、歩いているだけでも、今プロジェクトで何をしているのか、そして状況はどうなっているのかがわかるようにする。トライアスロンの練習場所も同じで色々な情報を見えるようにすべきだ。今日の練習は何か、大会をするときの状況は、今どのテーマにとり組んでいて、どんな課題があるのか。色々な情報を隠さず、様々な方法で見えるようにすればいい。

例えば、
・ホワイトボードを使う。
・チームでブログなどのSNSを使う。
・紙を張り出す。
・練習ノートに書いてもらう。
などの方法が考えられる。また、個人の練習の成績を見えるようにしたり、今までの練習内容を見返せるようにしたりもできる。スマホで選手を撮影する習慣を作って、その場で反省するということもできる。色々な形で練習の中と外を情報でいっぱいにする。そうすれば、練習効率はぐんと変わると思う。
  アジャイルの中にはペアプログラミングという珍しい習慣がある。プログラミングというと1人でやるものというイメージがあるけど、ペアプログラミングはその名の通り2人で1つのパソコンの前に座って作業をする。普通に考えると効率は半分になるはずなのに、意外にこちらの方が成果は上がるらしい。
  1人は今の仕事に集中して、もう1人が全体の大局を見ながら作業ができるから多くの気づきが出てくるそう。また、2人で会話しながら作業することでお互いの知識が増えるし、討論することでよりよいものが作れるそう。トライアスロンにおいては厳密には同じことはできないけど、2人ペアで練習するというのは良い考えなのではないかと思う。1人で練習して客観的に自分を見るというのは難しい。そこで、2人ペアになって、お互いについて話し合ったり、コミュニケーションをとることでより効率的に考えがまとめるのは1つの方法としてアリだと思う。ペアプログラミングは必ずしも同じペアではなく、日によっていろんな組み合わせで行う。トライアスロンも同じ要領で取り組めないかな〜と考えているけど、まあこれも難しい。

   アジャイルはコミュニケーションを重視する考え方だけあって、ミーティングも行うように言っている。でも、ミーティングも簡潔なもので短い時間で回数を多くすればいい程度のもの。例えば、毎練習後にスタンドアップミーティングというものをする。ここでは前回やったこと、今日できたこと、問題点を簡潔に全員が述べていく。名前の通り、このミーティングは立って行う。そのためにこれは短時間でミーティングを終わらせようという意図がある。立ったままであれば、長い時間ミーティングはできないからね。せいぜい5分程度だ。全員の課題を正しく理解するのは、全員が集まって行うのが理想だそう。
  もう1つのミーティングは振り返り。2週間に1回は振り返って、ミーティング行う。このミーティングは、意見を自由に出し合う、意見をまとめる、課題に対して対策を打つという3つの段階で行います。このミーティングは多少長いけど、それでも30分程度。慣れれば短縮も見込めるし。ただ、トライアスロンにこれらの考えがそのまま持ち込めるかっていうのはまた別の問題。でも、練習して即解散とか、集まってすぐに練習開始というのではなく、きちんとチームで話す時間をシステム的にとるのは良い習慣だと思うよ。

   これからのトライアスロンはチームでやるようになると予感している。個人の技量、思考が素晴らしい選手よりも、チームでより多くのアイデアを出し合い、指摘しあって練習した選手のほうが強い。現にそういう環境になりつつある。しかし、僕もまだ個人で強くなるという意識が強くて、なかなかチームでまとまるという経験はほとんどない。だから、アジャイルの取り組みを踏まえて、少しずつ強いチームを育てていきたいな、という風に思う。練習に限界を感じている人はチームというもののあり方を見直してみるのもいいかもしれない。

 

---------------

7/13 10:44

もしかすると(もしかしなくても)、これは理想論なのかもしれない。「かもしれない」っていうのは僕の甘えで、そうあって欲しいっていう自己中心的なエゴ。僕は大学に入ってせっかくトライアスロンをしているんだから、それなりに時間もお金も労力もかけているんだから、目一杯楽しみたいと思っている。そのためにあれこれ良くしようと試行錯誤しているんだけど、みんなはそこまで考えていないんだよね。きっと。半年やってみて、実際に上手く機能していないし。いくら僕が先立ってあれこれやったって周りが付いて来なきゃ何の意味もない。まあ少なくとも任期の間は悪足掻きするけどさ。他のチームはそこら辺どうやってるのか気になるわ。

第3回供養回。もうこれで終わりです。

清書済みのwordファイル置いておくのでご自由にどうぞ

アジャイルという考え方.docx - Google ドライブ