フェンリルの開発手法はウォーターフォールが主流でしたが、最近はプロダクトのあるべき姿を仮説検証しながら漸進する、「アジャイル」も増えてきています。
今回話を聞いたのは、アジャイル開発モデルのフレームワーク「スクラム」を本格的に実践したプロジェクトメンバー6名。トヨタ自動車さまと進めたプロジェクトでのチームの挑戦を振り返りました。
<プロジェクト体制>(敬称略)
尾崎:ふりかえりが大好きなスクラムマスター
上野:常にポジティブにチームを牽引するプロダクトオーナー(以下「PO」)、トヨタ自動車所属
戸ノ崎:インフラやXP(Extreme Programming)の経験を有するデベロッパー、トヨタ自動車所属
三浦:開発経験豊富なデベロッパー
林(Lin):アジャイルマインドなデベロッパー
依田:幅広い知識と感度の高いアンテナを持つ若手デベロッパー
佐藤:フロントエンドが得意な若手デベロッパー
荒川:UX/UI領域の知見を有するデベロッパー兼、PO補佐
プロジェクトの成り立ちと目指したところ
⸻ 本日は、トヨタ自動車さまとの共創プロジェクトを推進したチーム「パイナップ(注)」の皆さんにお集まりいただきました。
まずは、どのようなプロジェクトだったのでしょうか?
注:風土文化を変える先駆者になるという思いを込めて、パイオニアとアップデートを組み合わせたチーム名とのこと
尾崎:このプロジェクトは、トヨタ自動車さまの風土・文化・組織をアジャイルに変えていく人材を育成するために、同社が我々のような開発ベンダーと一緒にスクラムチームを作って、プロダクトを開発するというものでした。
当初、トヨタ自動車さまへのヒアリングでは、このような大きなビジョンを共有することからスタートしました。その中で、プロダクトのテーマはあったものの必ずしもプロダクトの完成をゴールとしないという方針があり、我々がどうアプローチすれば良いのか悩みましたね。本当に手探り状態で始まったと思います。
そこで準備期間として「スプリント0」を定義して、チームメンバーの役割に対する期待値のすり合わせや、インセプションデッキを使ったチームの目的の言語化など、チームの相互理解を高めることに注力しました。
特に、インセプションデッキの質問項目にある「我々はなぜここにいるのか」や「エレベーターピッチ」を決めていく中で、トヨタ自動車さまの想いと、具体としてのプロダクトの方向性が明らかになり、私を含めたメンバー全員がプロジェクトの目的地とそこに向かうための役割をイメージできるようになったと思います。
アジャイル開発モデルの1つ、「スクラム」への挑戦
⸻ 風土・文化・組織をアジャイルに変えていける人材が求められており、そのためには「まずはPOの育成が必要」ということで、スクラム開発を採用してご支援するという背景があったと伺いました。尾崎さんは初めてスクラムマスターとしてプロジェクトに参加されて、意識したことを教えてください。
尾崎:スクラムイベントをお作法通りに実施するというのは大前提だと思うのですが、それ自体が目的ではないですよね。メンバーには、スクラムというフレームワークが持つ価値や強みといった本質を意識してチームの活動に参加してもらえるように気を付けていました。最初のうちは上手くいかないこともありましたが、こうしてみたら上手くいくんじゃない?といった感じでチーム全体で仮説検証を繰り返して、スクラムを整えていきました。ちょっと大袈裟ですかね(笑)。
全員:笑
⸻ 荒川さんはデザイナーとして他のアジャイル開発プロジェクトにも携わった経験があると思うのですが、これまでとの違いはありましたか?
荒川:私が過去に経験したアジャイル開発プロジェクトでは、ディレクターがクライアントと会話をして決めた要件に対して、デザインするという役割でした。今回はデザイン業務にとどまらず、PO支援を期待されているということで、自分に求められている役割に対する具体的な働き方がイメージしきれないままプロジェクトがスタートしたことに、少し不安を覚えた記憶があります。
でも、始まってみるとPOである上野さんがすごく前向きで、「ユーザーにとって何がベストか?」という視点でプロダクトを捉えていることが伝わってきました。その想いをどうしたら体現できるのか、というところを足がかりに自身の役割を模索することができました。トヨタ自動車さまと一緒になって考える関係が築けたことは、私にとって大きな学びでした。
チームで実践し、理解を深めた「本格的な」スクラム
⸻ エンジニアの皆さんも、プロジェクトに参加される際に感じた不安や、実際に挑戦してみて感じたことなどあれば教えてください。
三浦:私はアジャイル未経験でしたので、スクラムとはなんぞやというところからスタートしました。実際にやっていく中で、考え方や重要視するポイントを学んでいった気がします。価値観をガラッと変えざるを得ない部分もあって、戸惑ったこともありましたね。
ウォーターフォールだと、最初引いたスケジュールをどう守っていくのかということが大切にされていると思うのですが、今回のプロジェクトでは、限られたスプリントの期間内に何がどこまでできるかを自分たちで計画したり、ユーザーから直接フィードバックをいただいて実装の優先順位を調整したりと、チームの自主性が求められたのが印象的でした。
林:私は、前職ではアジャイルしか経験したことがありませんでした。でも、きちんとしたルールはなく、スピードを最優先した結果、それ以外の点が疎かになってしまい、プロジェクトの終盤にトラブルが発生したことが何度かありました。
このプロジェクトにはさまざまなルールがあり、プランニングでは毎回、どれだけ時間がかかるのかを試算した上で計画を立てました。そして、その目標に向けてみんな一緒に頑張り、最後にレトロスペクティブをして次のスプリントに向けて準備しました。私は「本格的な」アジャイルを経験したのは、今回が初めてかもしれないと感じました(笑)
⸻ 依田さんと佐藤さんは入社されて初めての開発プロジェクトだったと思いますが、初挑戦はいかがでしたか?
依田:上長から「チャレンジングな仕事だけど、きっと得るものは大きいと思うよ。頑張ってみない?」と提案されていたので、大変であることは覚悟して挑戦しました。
実際にプロジェクトが始まると、分からないことだらけで手探りでしたが、それは私だけでなく周りのメンバーも同様でしたので、気負うことなくプロジェクトに臨めたと思います。
佐藤:私はフロントエンド領域以外の開発経験が乏しかったので、アジャイルならではのフルスタックな働き方に関してすごく不安がありました。でも、業務を進める中で、チームの皆さんと一緒に試行錯誤したり、教えていただいたりするうちに、その不安は解消されていきました。
チーム内の取り組みについて
⸻ チームでさまざまな取り組みをされていたと思うのですが、LTやワークショップを毎週のように開催されていたと聞いています。何かきっかけがあったのでしょうか?
荒川:始まりは私が上野さんと、OOUI(オブジェクト指向UI)というテクニックを使いながら、ワークショップを開催して画面遷移や機能設計を進めたことだと思います。デイリーでワークショップをしたことを報告したら、エンジニアの方々も興味を示してくれたので、チーム全員でやってみようということになりました。それを皮切りに、チームのルールに「勉強会を定期的に開催しよう」を追加しました。
⸻ 開発プロセスについてはどんな取り組みをされましたか?
三浦:開発において品質とスピードを両立するために、テスト駆動開発、UIフレームワークの採用、ペアプロ(ペアプログラミング)などを採用しました。
林: 私が一番印象に残っているのは、最初のスプリントでテスト駆動開発に苦労したことですね。テストがうまくできてないから実装が進められなくて悔しい思いをしました。そんな中、戸ノ崎さんがテスト駆動開発のワークショップを開催してくれたので、やり方や考え方を吸収して理解し始めました。そこからはどんどん慣れていって、開発スピードも急に速くなりました。
⸻ ペアプロはあまり経験がなかったと思うのですがやってみてどうでしたか?
三浦:話し合いながらやるので、認識合わせや情報共有の時間を別で設ける必要がなく、それぞれの得意分野を教え合いながらどんどん高めていくことができたので、貴重な機会になったと思っています。
林: 私は他のエンジニアの考え方を知ることが、すごく面白かったです。例えば何かバグが出たときに、ペアプロをやっていると、その対応方法について私はこう考えているけど向こうは違う考え方をしているとか。そうした多様な見方や考え方を知ることは、自分にとって大変貴重な機会、経験となりました。
佐藤:片方がテストコードを書いてもう片方がプログラムを実装するという順序で、その役割をときどき交代しながら繰り返していました。これにより、コードの属人化を防げましたし、私があまり得意ではなかったバックエンド領域の実装も、見守られているような感覚があって不安が少なかったですね。
ステークホルダーにも伝播したプロダクトの価値向上への手応え
⸻ 通常のスプリントレビューとは別に、実際にトヨタ自動車さまの本社に伺ってオフラインでスプリントレビューを開催されたこともありましたね。そのとき林さんがすごく生き生きと発表されていたとお聞きしました。
林:はい、プッシュ通知を実装した時のスプリントです。誰も実装経験がなかったのですが、サンプルコードをみんなで共有して試してみたら、実際に通知が来た!とワクワクしたことをすごく覚えています。このうれしさをステークホルダーにも伝えたいという気持ちがありました。
尾崎:林さんの「すごいでしょ」という姿勢を受けて、チームだけでなくステークホルダーの皆さんとも、少しずつではありますが開発中のプロダクトの価値が高まっていく感触みたいなものが共有された気がしました。それまで控えめだったステークホルダーの皆さんが積極的に意見交換をしてくれるようになったきっかけの一つだと感じました。
佐藤:他にもステークホルダーの方には「最初はワイヤーフレームの状態からリリースして、そこにデザインが反映され、色鮮やかになってすごく感動した」とご意見をいただきました。他の開発プロジェクトでは、出来上がった状態でクライアントにお披露目することが多いと思うのですが、今回はプロダクトの成長を段階的にお届けしたことで、トヨタ自動車さまも機能やデザインが充実していくことの喜びを覚えてくださったというのがすごくうれしかったです。
⸻ そんな中で、当初想定していなかった利用者に向けた機能追加を実施したと聞きました。
尾崎:追加した機能は、当初は今回開発するプロダクトの対象外の業務に関するものでしたが、共通のユーザー体験で手間やストレスを取り除くことができました。実現には関連部署との調整やルール変更も必要でしたが、プロジェクトの目的や実績を共有し、賛同を得られたことで、スムーズに拡張していけたように思います。
プロジェクトの成果:チームとしての成長
⸻ トヨタ自動車さまからも「業務効率化のプロダクトを作ることにとどまらない活動となっている」と評価をいただいたそうですが、皆さんがチームとして成長されたからこそ、そういった評価につながったのかなと思います。皆さんが成長を感じた部分を教えてください。
佐藤:毎週スプリントレトロスペクティブ(ふりかえり)が開催されたので、その週で例えば「ちょっとつまずいた事象を、どうやって改善すればいいか」ということをチームのみんなで案出しをして、すぐに改善アクションを実行するというサイクルになっていました。いわば「失敗は学びだよね」と、チーム全体がポジティブに受け止める感じがありましたね。そうした成功だけを求められるわけではないという環境だったからこそ、安心してプロジェクトを進められたのだと思います。
林:チーム全体で、色んな話をしやすい環境ができていたと思います。何か分からないことがあればすぐ周りに助けを求められましたし、それこそチームで仕事をすることの本質だと思います。課題だけではなくて、ポジティブにできたことも含めて共有したことで、メンバーの距離が縮んだと思います。
三浦:私はこれまでずっとウォーターフォール開発の経験しかなかったので、「システム開発はこうだ」みたいな固定観念みたいなものがありましたが、今回はスクラムをやることで、本当に視野が広がっていくような感覚がありました。とはいえ、スクラムであってもウォーターフォールであっても押さえるべきポイントは同じだなっていうのも見えてきたので、すごくいい経験を得られたと思います。
荒川:「エンジニアとの密な連携」が、今後の開発業務にすごく生かせるなと感じています。メンバーそれぞれの得意不得意や人柄を知ることで気軽に相談できる関係を築けたので、今後の開発業務においても自分からチームメンバーをもっと深く知る取り組みをしていこうと思っています。
尾崎:心理的安全性と言えばいいですかね、上野さんを含めたチームメンバー全員が率直に言い合える関係を築けたのは、チームとして大きく成長した部分だと感じています。我々はこう考えます、上野さんはこう考えます、では落としどころここですね、といった形で決めていけた。それは上野さんの度量というか包容力だと思いますが、時には色んなことを咀嚼していただいたり、協議したりして、結果として良いものを届けられた。そういうことができたのは、やっぱり大きかったと思います。
依田:みんながちゃんと自分ごととしてプロジェクトに向き合っているというか、良いものを届けたいという気持ちを共有できていたから成果につなげられたのかなと思いますね。
林:これまでのお仕事では、上からの指示があって、担当した機能を設計書通りに作ることが最大の責任だと考えていましたが、今回はこのボタンをクリックしたらどういう動作にするべきなのか、それをどう表現するべきなのか、自ら考えて提案していました。
⸻ 単純に言われたことをやるのではなくて、最終的にプロダクトを触るユーザーをイメージしながら開発された点が、結果に結びついたのでしょうね。
ありがとうございます。今日お話を聞いてみて、皆さん一人一人が本格的なスクラムを体現したことによってチームとして成長されたことをすごく感じました。また、そうした成長がフェンリルが目指す「最高のプロダクト」を生み出すことにつながったのだと感じました。今日のインタビューはここまでにしたいと思います。皆さんありがとうございました。