SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2016】セッションレポート(AD)

【デブサミ2016】18-A-2レポート
ヤフー流アジャイル開発の導入・改善ポイント ~ プロダクトオーナー視点のものづくりへの道

  • X ポスト
  • このエントリーをはてなブックマークに追加

 日本屈指のインターネットサービスとして知られるYahoo! JAPAN(ヤフー)。1996年創業以来、20年という変化の激しい時代に適応し、様々なサービスを提供し続けてきた。サービスの開発現場では、ユーザーに使ってもらうために様々な紆余曲折があり、工夫があったという。はたして、現場ではどのように“サービスの作り方”を変えてきたのか。同社 システム統括本部 技術支援本部の荒瀬中人氏が自らの体験に基づく事例を紹介した。

  • X ポスト
  • このエントリーをはてなブックマークに追加
ヤフー システム統括本部 技術支援本部 荒瀬中人氏
ヤフー システム統括本部 技術支援本部 荒瀬中人氏

「スモールチーム」による、ヤフーのアジャイル開発

 変化の激しい社会情勢に対応し、的確なサービスをスムーズに提供するための開発手法として「アジャイル開発」は広く普及しつつある。ヤフーでも、荒瀬氏をはじめとする導入リーダーが現場チームへの導入・改善サポートなどを行い、アジャイル開発の積極的な活用が進みつつあるという。

 ヤフーでは、アジャイル開発を実践中のチームの大多数が、手法としてスクラムを採用している。荒瀬氏はその理由として、まずフレームワークが明確で、未経験者でも導入しやすく成果を上げやすいこと、さらにヤフーの組織体制になじむことを挙げた。ヤフーでは、現在プロジェクト単位で少人数チームを構成、いわゆる「スモールチーム」でアイデアから運用まで一括して担当するスタイルをとっている。そうすることで、ものづくりに必要な権限をメンバーに委譲し、かなり自由度が高いジャッジが可能だという。そうした組織体制がスクラムに向いているというわけだ。

 現在、ヤフー社員の半数に当たるクリエイター、約2500名のうち48.3%がスクラムを用いたアジャイル開発を実践している。2010年に導入を開始し、いわゆるイノベーター理論でいけば、アーリーマジョリティからレイトマジョリティに差し掛かる時期、普及期に突入したタイミングだ。そのため、自然に普及が進んでおり、荒瀬氏ら推進チームの仕事は改善活動へとシフトしつつあるという。

アジャイル開発の普及活動とチームに訪れた4つの変化

 それでは、導入後、これまで約6年間のアジャイル開発普及活動はどのように行われたのか。また、アジャイル開発を導入したチームには、どのような変化が表れたのか。

 当初、アジャイル開発を導入する前は、プロダクトマネジャーとチームが分かれていた。プロジェクトマネジャーは「何をつくるのか」というプロダクトの定義を考え、チームは「どうつくるのか」と考えプロダクトを製品化する。つまり、プロジェクトマネジャーから依頼が来て、チームが製品化するという分担だった。それがアジャイル開発チームとして一つになったことで、ともに「何を作るか」「どう作るか」を考えるようになり、さらには、全員が「なぜ作るか?」を考えるようになったという。つまりはチーム全員でプロダクトマネージメントをするようになったわけだ

チームの変化とは?
チームの変化とは?

 荒瀬氏の体験によると、変化の傾向は4段階あったという。1つめは、チーム状態が可視化されたことが挙げられる。アジャイル開発前は職種やコンポーネントが分かれており、メンバーにとって必要な情報は、担当箇所に影響があるコンポーネントの作業進捗や作業結果のみ。つまりは、担当外の作業内容や全体の進捗は気にしない、気にならないのが普通だった。

 しかし、アジャイル開発導入後は、コンポーネントごとに担当者を固定せず、優先順位の高い要件にメンバー全員で取り組むようになる。つまり、第一の変化として、全員が全ての内容、進捗、結果を把握することになり、状況が可視化されたわけだ。

アジャイル開発実践前の状況と、可視化の実践
アジャイル開発実践前の状況と、可視化の実践

 次に現れた変化が「開発サイクルの安定化」だ。スクラムという開発手法においては開発サイクルが固定化される。いわゆるスプリントと呼ばれる期間だ。スプリント期間はプロダクトを取り巻く環境に依存する、例えばリモートワークで顔を合わせる機会が少ないチームはスプリントを1週間に設定しコミュニケーション頻度を増やし、同じロケーションで腰を据えて作業に取り組みたいチームは2週間を採用する。いずれの期間にせよ「作業のムダはどこ?」「もっと良い方法は?」などを繰り返し、自分ごととして捉えることにより自主的に開発プロセスを改善するようになったという。

 「たとえば、ものづくりには、広報や営業等いわゆる社内のステークホルダーと協力し合う取り組みが多いが、ワークスタイルが異なる彼らとの調整は困難だ。そこで、定例化したレビューミーティングを設け、確認の工程を効率化したり、さらにメンバー間の依存タスクによる待ち時間を極力減らしたりすることによって、 このようなムダの改善により開発サイクルが安定し、チームはリズムを掴み、開発サイクルが速くなっていく」(荒瀬氏)

 3つめの変化が「チームの自律」だ。サイクルが安定してくると、チームに少しずつ余裕が生まれ、個人に関連する改善からチーム全体の改善へと視野が広がる。結果、自分たちでチームを良くしようというマインドに大きく変化するという。チーム全体の課題、たとえば、スキル向上や生産性、プロダクト品質といったものに目が届くようになり、チームの成長にチームが責任を持つようになる。

 そして、最後の変化が「プロダクトマネージメント」だという。スプリントのプランニングにおいて、プロダクトオーナーは、「ターゲットユーザーについて」「ユーザーの抱える課題」「課題を解決することによりユーザーが得る価値」そして「価値の定義」を、計画時にメンバーに共有する。レビュー時、「ユーザーの課題を解決しているか」「ユーザーの価値を満たしているか」「開発チームとの認識の齟齬は起きていないか」の確認を行う。

 このように計画とレビューを繰り返すことにより、開発チームはプロダクトオーナーの描いているビジョンを共通理解するようになるという。そうなったとき、開発チームがビジョンに沿ったアイデアを提案するようになってくるだろう。つまり、全員がプロダクトオーナーの視点でものづくりをするようになるというわけだ。

スプリントの計画とレビュー
スプリントの計画とレビュー

アジャイル開発導入サポートは「ストレスを軽減する」ことがカギ

 こうした変化を促すために、アジャイル開発導入サポートとして、どのようなことを行っているのだろうか。荒瀬氏は、アジャイル開発の「導入サポート」と「改善サポート」の2面からサポートを行っているという。

 スクラムの実践前準備として、アジャイル開発を理解するためのセミナーや勉強会などを行う。そして「スクラムとは何か」「目的は何か」をまずは頭で理解し、「チーム設計」として役割やルール、進め方を決める。そして、荒瀬氏が最も重視するのが「目指すチーム像の設定」を行うことだ。「そもそもなぜスクラムを採用したのか?」その目的を共有し、目的を達成した時つまりは目指す理想のチーム像を思い描く。そして理想のチーム像へ向かうための明確なゴールが何であるか指標を決め、チームの現状を確認した上で、ゴールへの向かい方を協議するというわけだ。

 「必ず、目的と理想のチーム像、ゴールを明確化する。向かう方向が決まってないと、改善内容自体がぶれてしまい、チームの成長も感じられず、漫然とスプリントを回すことが目的になってしまい、結果としてチームの成長が停滞してしまう」(荒瀬氏)

 あとはゴールへの向かい方、向かうスピードをチームで決める。そこで荒瀬氏が行うのは、メンバー同士で各自に期待していることを伝え、メンバーの得意としていることやチームに貢献できること、大事にしていること成長したいことなどを共有し、メンバーのものづくりに対する姿勢を汲み取った進め方を擦り合せることだ。これを行わないと過度な期待や無理が生じ、チームの成長に悪影響が出るという。

 続いてアジャイル開発を実践するにあたり、未経験者がいきなり始めるのは厳しい。そこではじめは荒瀬氏がスクラムマスターを代行し、1~2ヶ月の間にチームがスクラムに慣れると代役を降り、オブザーバー役に切り替わる。定期的にスクラムマスターと1対1で「Impediments List(障害事項リスト)」を中心にチームビルティングを行う。その際、重要になってくるサポートポイントとして荒瀬氏が挙げるのが「ストレスを軽減すること」だという。

 アジャイル開発を導入すると開発プロセスが変わる。言い換えれば働き方が変わる。人によっては大変なストレスを抱える可能性がある。特に「変化を好まない人」のストレスは大きいもの。そこでスクラムの原則は守りつつも状況やチームの立場、メンバーの感情に配慮しながら進めていく。もちろん最初からスクラムのルールを全て守り進めるチームもある。

 「改善サポートはチームの成長を促すことがポイント」と荒瀬氏は言う。チームやプロダクトのビジョンを作るなど、チーム全員が議論に参加する会議のファシリテートを担当することはあるが、基本的にはチームの成長や課題をスクラムマスターと確認し、今後チームが自ら成長するためのサポートに切り替える。

マンネリやアンチに対する有効策は「成長しているか」の評価と実感

 アジャイル開発を実践し、スクラムに慣れてくるとマンネリ化が見られるようになり、「アジャイル開発の形骸化」が生じてくることがあるという。振り返りの場でも毎回同じ課題に対して根本的な解決にならない改善策を繰り返したり、課題を許容するルールを設けたりする。またスクラムルールを守ることにフォーカスするばかりで、目指すべき理想のチーム像に向かうことを忘れ、チームの成長が鈍化し、最悪、成長を放棄することにつながりかねない。

 このようなスクラム実践自体が目的となる「アジャイル開発の形骸化」を防ぐために、「チームの成長度合いやゴールの再認識合わせ」を第一義とし、必要に応じて改善のテクニックやナレッジのシェアなども行うという。

 「スクラムマスターは開発チームと兼任している場合が多く、チーム全体の課題や成長に目が届かず、目下の課題に捉われがち。私たちサポートメンバーは、スクラムマスターがチーム全体を俯瞰し、責任を果たせるようにサポートしている」(荒瀬氏)

 そして荒瀬氏が課題に感じていることは、「社内でアジャイル開発を正しく実践しているか否かわからない状況」に陥ることだという。このような状況では、本来サポートが必要なチームに対して何もサポートができなかったり、正しく実践しなかった故に効果を感じずアジャイル開発を止めてしまったり、アンチになってしまうなどの弊害が生じてくる。それはまさに「ダークサイド」に陥った状態であり、一度陥ると引き戻すにはアジャイル導入前以上に 労力が必要だという。

 そんな背景から 、社内のアジャイル開発が把握しづらい状況に対して「アジャイル開発コミュニティ」を設立。コミュニティメンバーと協力しながら社内の状況を可視化している。また、社内イベントや研修を一緒にオーガナイズしたり、スクラム実践チームの現場のサポートも行っている。さらに、アジャイル開発を通じて組織に影響力を持ち始めたメンバーに対してコミュニティメンバーとしてスカウティングも行っている。

 コミュニティ活動の具体例としては、スクラム導入検討者に対してスクラムの目的や役割、セレモニー等の基本的なルールの理解する説明会、アジャイル開発実践事例発表会やスクラムを体験できるレゴを用いたワークショップ、また、新卒向けの研修も行っているという。既にスクラム実践者に対しては、日々の課題や疑問について参加者同士でディスカッションしてもらい、改善のきっかけや気づきを得るイベント「スクラムマスターズナイト」を提供したり、さらに深くアジャイル開発に必要なスキルやマインドをエバンジェリストや有識者から学ぶアドバンス向け勉強会を行ったりするなど、チームの改善に活かすことができる機会を増やしている。

社内イベントや研修の一例(レゴを用いたワークショップ)
社内イベントや研修の一例(レゴを用いたワークショップ)

 これから実現したいこととして、荒瀬氏はチーム自らチームを評価する「チーム評価アセスメント」を挙げる。チームの現状を把握しやすくし改善に役立ててもらう狙いがあるわけだ。

 さらにもう一つ、アジャイル開発を実践中のチーム、導入検討中のチーム、といったターゲットに合わせたコンテンツ配信にもより取り組みたいと語る。それも、「アジャイル開発 TIPS」「マンガでわかるダメなスクラム」など、気楽に読むことができるコンテンツ配信を行っていきたいという。その意図として、荒瀬氏は「外から改善サポートが必要だと判断するのは難しい場合がある、チームも改善サポートが必要と思わない限り相談に来ない。チーム自身が気付かなければダークサイドに堕ち続けている。気軽に読んでくれそうなコンテンツによって気づきを与えたい」と語る。

 最後に荒瀬氏は「様々な開発手法があるなかで、アジャイル開発がハマるかどうかはわからない。しかし、チームが『やる』と判断した時にすぐ実践しやすい状態にしたい。今後はそのための体制・環境づくりにフォーカスしていきたい」と語った。

お問い合わせ

 ヤフー株式会社

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9305 2016/03/31 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング