アジャイルコーチって何するの?
みなさんこんにちは。@ryuzeeです。
InfoQに“アジャイルコーチ” とは何か という記事があったので、アジャイルコーチとして活動している僕が普段どんなことをやっているのか説明したいと思います。
オンラインでのコミュニケーション
TwitterやFacebook、そしてこのサイトからアジャイルに取り組んでいる方や、これから取り組みをはじめようとする方からよくご質問を頂きます。 コーチとしては、実践する上でどういうことに困っているかを色々と知ることができるので大変ありがたいです。 特に金銭のやりとりはありませんが、コーチとして責任をもった回答をする必要があると思っているので、文献や海外のサイトや海外の著名トレーナーの資料などを参照しつつ自分の見解も交えて回答させて頂いているつもりです。 質問は回答をうける側よりも、回答する側のトレーニングになると思っています。 質問頂いた内容は、一般化してサイトに記事として載せたりもします。 より詳細な話を、ということになると実際にお伺いしてお話することも多いですし、その縁で、プライベートで社内講演をさせて頂くこともあります。
集合研修の実施
実際の仕事の入り口として多いのが集合研修です。 これからアジャイル開発に取り組もうとされている企業様向けに20人〜30人規模で実施することが多いです。 アジャイルやスクラムについて教えることは勿論ですが、なぜそのやり方が必要なのか、いままでのやり方とは考え方がどう違うのかといったことや、そもそもアジャイル開発も手法の1つなので、本当にやるべきことは何なのか、ムダの取り方、仕事の進め方や考え方なんかを中心に教えることが多いです。 研修時間の半分はワークショップに割いているのですが、これは座学だけでは分からないことを身をもって体験することが大事だと思っているからです。 体験があれば、後から研修資料や他の書籍を読むことで、腑に落ちるようになります。 研修の内容は参加者の反応によって変えることもよくあります。例えば質問が多い領域のワークショップを追加したり、復習のためのワークショップを追加したりします。 2日に分けて同一企業の異なる参加者に研修を行うことも頻繁にありますが、初日と二日目で内容が違うのも普通です。
研修実施後は参加者の方からの質問メールに対応したり、2週間〜1ヶ月後くらいを目処にフォローアップに伺って疑問点を直接説明したり、要望に応じて特定の領域をさらに詳しく説明したりします。 例えば、先日はプロダクトバックログを演習で作ったのですが、フォローアップで実際のプロジェクトのプロダクトバックログを一緒につくって実際作る上でのポイントを再度説明したりしました。
オンサイトでの支援
こちらも実際の仕事でご依頼頂くことが多いです。大きくわけて2つのパターンがあります。 1つはお客様のところに席やPCを用意頂いて、チームと一緒に仕事をするパターン、もう1つは、スクラムの定期イベントにあわせて訪問するパターンです。 訪問回数は多めです。
前者の場合は、アジャイルやスクラムに関係がない話でもチームと一緒に行なっていきます。 アジャイルなやり方を教え、スクラムの各種イベントのファシリテーションをしたりプロダクトバックログやスプリントバックログなどの成果をチェックしたりしつつ、テスト戦略を一緒に考えたり、テストコードの書き方を教えて一緒に書いたり、継続的インテグレーションサーバをチームと一緒に構築したり、リリース手順や切り替え手順をレビューしたり、コードレビューしたり、デプロイの自動化を一緒に行ったり、開発環境を作ったり、パフォーマンスチューニングを一緒にやったり、お客様への説明を一緒にしたり、会議のやり方を指導したりと、広範囲にわたってチームと一緒に仕事をするわけです。 このパターンでは、チームが僕をどう使うかはチームが決めます。 基本的に僕はプロダクションコードは書きませんが、それ以外のことはチームの依頼で動きます(勝手に引っ張っていくわけではありませんし、アジャイルやスクラムの導入を強制するわけでもありません。あくまで主役はチームなのでチームが依頼しないと僕は遊んでます。 コーチは豚ではなく鶏です。 結果責任も取れません。 でも勿論チームにはもっと上手にお客様の期待に応えられるようになってほしいし、自分たちが楽しく仕事をできるようになってほしいと思っていますし、そのお手伝いをしているつもりです)。 お客様やプロジェクトによって開発言語やツール群が異なるので、それぞれについて仕込みしておく必要はあり、技術的にも楽しいことが多いです。 今年を例にすると、PHP、Perl、C#、Rubyの現場を支援しました。
もうひとつのパターンは指定された時間にお客様先を訪問して、スクラムイベントを一緒に行うパターンです。 お客様先にPCは用意されていないので、仕事の進め方やスクラムイベントの進め方を中心にサポートします。 ふりかえりのサポートをして、チームが実行可能な改善活動を行えているか、外部からの圧力に屈していないかといった点をチェックしたり、スプリントレビューで、開発チームが成果物を届けていて、プロダクトオーナーの合否判定を受けているか、フィードバックプロセスが回っているかといったことをチェックします。 もちろん会議のやり方や時間の使い方といったアジャイルに直接関係ないことも支援の対象です。 このケースの場合はお客様先にスクラムマスターが存在しているケースが多く、その人のサポートを中心にしていきます。 またチームからの質問に答える時間を作ったりメールで質問をもらうようにして、問題の解決を先延ばしにしないようにフォローします。
いずれの支援の場合も3ヶ月から半年くらいの期間になることが多いです。 僕自身は長期契約はすべきではないと思っているので、通常は1ヶ月単位の訪問回数による実費精算での契約をお願いしており、お客様が解約しやすいようにしています。 うまく改善が進んでいけば通常コーチはそのくらいの期間で不要になっていきます。
ちなみによく聞かれるのですが、コーチを入れたからといって必ずプロジェクトが成功したり現場が変わったりするわけでありません。 実際にやるのはチームであり現場の人たちです。言い訳に聞こえるかもしれませんがコーチは触媒でありきっかけです。 したがって同じ会社でもあるチームはうまくいって、あるチームはうまくいかないとかそういうのもあり得ます(個人的には自分の力不足をハンセイすることも勿論あります)。 また会社の組織的な問題が妨害になっているケースもあります。 例えば人事考課が個人の成果の量で行われていてお互いに協力しあう文化がないとか、似たような考え方の人が多すぎるとか、そもそも集中して仕事をする環境でないとかです。 そういう場合はマネジメント層と一緒になって改善を行う場合もあります。
イベントへの登壇や開催など
オープン、クローズド問わずイベントで登壇したりします。 オファーは平日であれば全て受けるポリシーです。 オープンなところで使った資料はスライド共有サイトで公開しています。登壇は自分の知識を整理したり考え方をまとめる良い機会です。 また参加者の方とディスカッションするのもとても有意義だと思っています。 登壇用に作った資料を普段のコーチングや研修にバックポートすることもよくあります。
アジャイルやスクラムは手段だと思っている一方で僕自身はスクラムは良いやり方だと思っているので、多くの方に知ってもらいたいと思っています。 どのプロジェクトもスクラムでやればいいというわけでは決してありません。 従来のやり方の方が良い場合もあります。 1つのやり方しか知らないと選択肢がなくなってしまい合わないやり方をせざるを得ない、そういうのは勿体ないと考えています。
大学でアジャルな開発のやり方を教えているのもその一環です。
最後に
僕がウェイトを置いているのはチームや組織の改善ですが、一方で、どのようなプロダクトを作るのか、それはどうやって見つけて決めていくのか、というのもコーチがカバーすべき範囲のようにも見えます。 たとえばリーンキャンバスやユーザーストーリーマッピング、ペルソナといった手法、ユーザビリティの領域などなど。 このあたりは自分自身ではまだ答えは出ていません。 ただ最近アジャイルコーチに求められるものがどんどん増えているようにも思います(もやもや中)。 とはいえ一人のコーチとして全ての範囲をケアすることは現実的にはむずかしいのかなぁ考えています。 なのでコーチを探すときはどういう領域でコーチに手伝ってほしいのかは依頼側でよく考えたほうが良いのではないかと思います。
それでは。