ペアプログラミングが特徴的な開発手法「Lean XP」を取り入れた「820 Labs」オープン!
ヤフーの紀尾井町オフィスに「820Labs(ハチニーゼロラボズ)」がオープンしました。820Labs は2人1組になって開発するペアプログラミングが特徴的な「Lean XP」という開発手法を学び実践するための専用スペースです。
プログラミングの品質向上やスピードアップ、属人化の解消につながるというこの手法について、820Labsの発起人と参加メンバーに話を聞きました。
Lean XPを実践しながら、サービス開発を行うワークスペース
今年(2018年)5月、紀尾井町オフィスにオープンした「820Labs(ハチニーゼロラボズ)」。長デスクの上にiMacが数台、それぞれに2つのディスプレイ、キーボードが接続されています。
昇降可能なスタンディングデスクと椅子のセットが60台あり、同時に120人が仕事をできるスペースとなっています。肩こりや腰痛を防ぎ、集中力を高める効果もあるので、立ったままコードを書くことも多いとのこと。
ディスプレイはミラーリングモードに設定され、同じ画面を見ながら2人で同時にプログラムを書いたり、そのコードレビューや打ち合わせなどを行ったりできます。
「ここは、アジャイル開発手法の一つであるLean XPを実践しながらサービスやプロダクト開発を行う場です。Lean XPで最も特徴的なのがペアワーク。エンジニアが2人1組でペアプログラミングしながら、テストをしたり、コードレビューをしたりします。エンジニアだけでなく、デザイナーやプロジェクトマネージャーが共同作業を進めるのも、この手法で行います」 と話すのは、ヤフーのメディアカンパニーで、iPhone用のYahoo! JAPANアプリのプロダクトマネージャーである金田雅史です。
▲ メディア統括本部 スタートページ本部 PM 金田 雅史
820Labsでの本チームにはiOSエンジニア4名、デザイナー2名、PMが2名。あくまでもペアワークが基本で、ペアの組み合わせは毎日変えるようにしています。
「エンジニアはアプリの品質と開発スピードの向上のためテスト駆動開発を採り入れているのですが、そこではまず一人のエンジニアがテストコードを書くと、そのテストを通すためのコードをもう一人のエンジニアが隣で書くようにしています。
ナビゲーターとドライバーという役割分担ですが、それをたえず交代しながら、一つのタスクを完成させていきます。一方がテストコードを書いているときは、もう一人は客観的かつ全体的な視点からアドバイスし、設計方針をその都度すりあわせるようにします」
ペアプログラミングでその人の思考過程までわかる
ペアプラグラミングはベテランのエンジニアが新人をトレーニングする際のコードレビューでよく使われますが、このチームのように、エキスパート同士でやっても、知られざる知見の共有という意味で効果があります。しかし、エンジニアはコードを読むだけで相手の意図が理解できるものではないのかと思われる人もいるでしょう。
「そうはいっても、やはり隣同士で会話を交わしながらコーディングしたほうが、コードを書く過程でその人が何を考えたかがよくわかります。何をするにしても必ず口に出してやる。無言でやると意味がないんです」と、金田は言います。
日ごとにペアリングする相手を替えるのは、昨日のペアが共同作業で得た知見を、次のペアと共有するために重要。ペアを替えながら、知識をチーム全体で、ときにはチーム外のメンバーとも共有できるようになります。
ペアが覗き込んでいるのは、アジャイルプロジェクト管理ツール「Pivotal Tracker」。アジャイル開発マネジメントをウェブサービス化したもの。PMからリクエストされた開発すべき要件は「ストーリー」という単位に分解され、通常2週間程度先までの計画を立てることを繰り返します。
エンジニアが書き終わったコードはPMに即座にプッシュされ、条件を満たしているかどうかで「Accept」されたり、「Reject」されたりする。コードが実装されればストーリーは「Delivered」表示に変わり、開発の進捗(しんちょく)が一目でわかるようになっています。
エンジニアによる機能の実装が終わると、デザイナーのデザイン適用のフェーズに入ります。エンジニアとデザイナーがペアになって要素を一つひとつ確認したり、受け入れテストを行ったりする場合もPMとデザイナーがペアを組むことがほとんど。またプロダクト開発の初期段階でのペルソナ設計も、こうしたペアワークで行われるのです。
3カ月にわたるLean XP研修。その成果を現場で実践
Lean XPは、「ユーザーに価値のあるものを届ける、それ以外はすべてムダ」という考え方に基づいたリーンソフトウエア開発と、事前計画よりも柔軟性を重視するエクストリームプログラミングを組み合わせた開発手法。Facebook、Twitter、Uberなどの企業の技術支援を行ってきた米Pivotal社がこれを提唱し、世界的に注目されるようになりました。
ヤフーでもPivotal Cloud FoundryというSaaS環境を構築するにあたり、CTO室が主導してPivotal Labsの米国本社を見学。そこで実践されていたLean XPに驚き、2016年11月から、まずヤフオク!チームで導入。続いて、Yahoo!ショッピングチーム、そして今年4月からはメディアチームの一部が導入に踏み切りました。
実際の開発プロセスに導入する前に、メンバーは六本木ヒルズにあるPivotalジャパンに派遣され、3~4カ月にわたって、Lean XPのエバンジェリストとペアワークを行うことによって直接その手法を学びました。研修から戻ってからは、多くが従来のスタイルの開発を行うなか、各フロアの片隅で、Lean XPによる開発を実践していました。
「すると、Lean XPを実践しているチームメンバーだけがほとんど残業もせずに帰ったり、業務時間中に突然卓球を始めたりで、周囲から怪しがられることが相次ぎ、Lean XP手法を導入しているメンバーたちは、社内ちりぢりで仕事をするよりも一カ所に集まって仕事ができるようにしたほうがいいんじゃないかということになりました。
同じ開発を行うにあたって、手法が混在しているとやりにくいということもありましたしね。その流れで作ったのが820Labs。椅子もデスクもすべてPivotal社の仕様にならった、Lean XP専用の開発室です」と、経緯を語るのは Lean XP室長の西磨翁(にしまお)。
▲ヤフオク!開発本部 / Lean XP室長 西 磨翁(まお)
「卓球」は重要な開発プロセスの一つ。チームの残業時間も低減
「残業」と「卓球」は、実は Lean XPを語る上で欠かせない重要なキーワードです。先ほどまでのペアがタッグを組んで、今度は卓球のダブルス・ゲームに興じています。作業に疲れたから卓球でリフレッシュというのはその通りですが、実は卓球はLEAN XPが推奨するペアワークの重要な要素なのです。
「卓球は相手の表情が見える距離で球を打ち合うし、その球もダブルスでは必ず交互に打ち返さなければなりません。卓球はペアワークの延長。ゲームをしている間にペアの息が合うようになるので、チームのコミュニケーションを深めるには最適のリフレッシュ法なんです」と語るのは、エンジニアの小林由佳です。
▲ メディア統括本部 スタートページ本部 エンジニア 小林 由佳
ペアワークを進めていると、お互いの意見がぶつかることもあります。そういうときはすかさず卓球ブレイク。白球に向かい合っていると、ふとプログラムの新しいアイデアが生まれることもあるといいます。
「一日3回ぐらいはしていますね。卓球でひと汗かいたら、すぐに机に戻ってペアプロの続き。その切り替えの速さには、820Labsの見学に来た他のエンジニアも驚いています」
Lean XPで開発を進めるようになってから、従来手法のチームに比べると、目に見えるようにチームの残業時間が減っています。これはPivotal社の研修で徹底的に「残業は悪である」と仕込まれたからなのだとか。
▲ Lean XP導入後、チームの残業時間が削減されています
「向こうではサステナブル開発ともいうのですが、仕事は定時に帰ることが重要で、そうした安定したペースで開発を続けることが、結果的に高品質で高効率のプロダクト開発につながるという考え方です。開発は短距離走のスプリントではなく、マラソンのようなものだということも、口を酸っぱくしていわれました」(小林)
Lean XPの導入の効果は、Lean XP室がきちんと計測しています。テスト失敗数、つまり不具合の発生数は以前に比べて10分の1に激減し、メンバーにアンケートを採るとプロダクト仕様についての理解度が高まったとするエンジニアは8割以上に上ります。
従来は、PMが提案した機能を実装するにあたって、それがユーザー経験をどのように向上させるかを理解しないままに開発を進める傾向がありましたが、同職種や異職種間のペアワークが進むことで、その理解度が高まったといいます。こうしたスキルとパフォーマンスの向上とその共有が、結果的にチームの残業時間の減縮にもつながっているのです。
見積もりジャンケン、サムズアップ、一本締め
残業時間の低減など働き方改革が進むのは、先に述べた「Pivotal Tracker」によるプロジェクト管理がうまく機能しているからでもあります。定期的に行われる「IPM(イテレーション・プランニング・ミーティング)」では、チームのメンバー全員がPivotal Trackerの画面を囲んで、進捗(しんちょく)を話し合っています。
「この開発が遅れているのは、どこにボトルネックがあったから? その開発ってあとどのぐらいでできる?」
会議では自分の担当以外のプロセスについても全員が意見を出し合います。全体のストーリーがツールによって「見える化」される一方で、それぞれがすぐに取り組む必要のあるタスクへのスコープが容易になっており、かつ案件ごとのプライオリティが明確になっていることが前提です。
Lean XP手法ではよく行われるのですが、ストーリー一つひとつについて開発工数の見積もりを行うとき、メンバーが一斉に指で数字を出して、その適否を測るという作法があります。
グーは「0」を意味し、新たにコードを書かなくてもすでに実装できているという判断となります。指が1本なら「一定時間で開発するために、何をどうすればいいかが現時点で理解できている」。2本なら「今はわからないが、調べればわかる」。3本は「やり方がわからない」の意味。
これを見積もりジャンケンと呼んでいます。そこで「3」が多数を占めたら、PMはそもそものストーリーを分割したり、具体化したりして、ストーリーを作り直さなければなりません。
こうして見積もりがきちんとできているストーリーには時間を割かず、問題のありそうなストーリーにだけ集中して議論を行うことができるようになるのです。
エンジニアが、PMのストーリーの説明を理解し見積もりが可能だと思ったら親指を立てる(サムズアップ)。
ミーティングの終了時には全員で手拍子の一本締めを行います。Pivotalジャパンの研修で身につけた米日混淆のスタイルなのですが、意思表示がスピーディーになり、会議も短時間で終わります。何よりミーティングしているメンバーが、みんな楽しそうです。
ユーザーに価値のあるものを届ける、それ以外はすべてムダ
このチームが820LabsでLean XPスタイルを実践するようになってからまだ3カ月。
「プロダクトの品質とスピードという意味での改善効果を謳うためには、もう少し蓄積が必要ですが、日本のIT業界の旧習ともいえる“人月的な発想”からは脱皮できていると思います。一つのコードを2人で書くペアワークの実践で、レビュー時間が短縮され、コード数が少なくなる一方で、品質は確実に向上している」と、西は評価します。
▲ Lean XPスタイルの実践でテスト失敗数が100分の1以下に減少
▲ Lean XPスタイル導入で8割以上のエンジニアが仕様理解が進んだと回答
「何より、メンバー間のコミュニケーションが活発になり、その人のスキルやコーディングの癖までわかるようになった。卓球では意外な個性も垣間見える。技術と人柄の両方を深く知ることで、チームの仲は以前に比べてはるかに濃密になりました」と、エンジニアの小林は振り返ります 。
「ただ、二人三脚での開発だから、一人だけ勝手にサボれないということはある」と苦笑する。それでもお互いの表情の見える距離でペアプロするから、相手の体調やモチベーションの変化にもよく気づくようになったといいます。
こうした考え方はサービス開発者にとっては大きな意識変革を迫るもの。僕らもユーザーに価値のあるものとは何かを改めて真剣に考える、良い機会になっています」と、金田はメンバーの意識の変化を感じています。
「仮説検証にしてもペルソナ設計にしても、デザイナー同士がペアで開発するというのは、これまでほとんどノウハウがなかった。それを身につけて、今後は社内に広めていきたい」と抱負を語るのは、デザイナーの馬場敬寛です。
▲ メディア統括本部 スタートページ本部 デザイナー 馬場 敬寛
現在、Lean XPを実践に応用しているのはヤフー全体で約3,000人いるクリエイターのうち120人ほどで、わずか4%。しかし、820Labsでのノウハウを積み上げることで、それは徐々に拡大していきます。
「Lean XP専用開発室としての820Labsの機能はいずれ使命を終え、その機能が再び各チームに分散され、それぞれの部署で当たり前のように Lean XPで開発が行われる時期がいずれ来るかもしれません。現在はそのための試行錯誤を続けている段階です」(西)
各企業でもLean XPの導入が始まっていますが、研修実績や実際の開発プロセスへの適用状況を客観的に見れば、ヤフーの取り組みは国内では最も先端を走っているといっても過言ではないでしょう。その貴重な経験を、IT業界全体の貴重なユースケースにすべく、これからもこうしたケーススタディーを発信していきたいと思います。
※ 本記事は、エンジニアやデザイナー向けのイベント情報をはじめ、ヤフーで働く社員のワークスタイルやキャリアを幅広くご紹介する情報発信メディア【linotice(リノティス)】からご提供いただいた記事です。