$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

株式会社アンドパッドに入社しました

2021/10/01から株式会社アンドパッドに入社しました。初めての転職なので緊張しているけれど、早めに馴染みたい。

andpad.co.jp

転職活動をしている中でいくつかオファーをもらっていたが、以下の理由で株式会社アンドパッドに入社を決めた。

  • 裏側よりの難しい課題をクラウドネイティブな設計で解決するタスクができそう
  • 組織規模が急拡大していて、組織マネジメントの経験が深まりそう
  • 採用フローがしっかりしていて、今後も良い人がどんどん入ってきそう

裏側よりの難しい課題をクラウドネイティブな設計で解決するタスクができそう

これまでのエンジニア経験の中ではインフラ〜フロントまで全体的に触ってきたが、自分の中ではインフラ領域〜バックエンド領域の中間くらいのエンジニアリングに最もモチベーションが湧いていた。またクラウドネイティブな設計をもっとできる機会があればなあと思っていた。

このように考えていたところ、株式会社アンドパッドの技術ブログで事業の急拡大に伴ってバックエンドのリアーキテクチャリングなど面白いことをやっていて、自分の興味にマッチしていると感じた。例えば次の記事に書かれている内容は自分もやってみたい。

他にもアンドパッドでは画像管理、チャット、プロジェクト管理、契約管理など、さまざまな特性の機能があるため、バックエンドよりでも多様な課題があるだろうというのも面白そうに思ったポイントだった。

組織規模が急拡大していて、組織マネジメントの経験が深まりそう

転職活動中に建設DX企業が語る「これまで」と「これから」の組織づくり|#1 アンドパッド CEO稲田武夫氏 | Wantedlyの記事の以下の内容を見ていて、すごい勢いで人が増えてるんだなという印象を持った。

稲田:アンドパッド社は2021年末に向けて600人規模まで増やす予定です。2020年初に100人規模で、2021年1月現在270名なので、毎年2倍強社員が増える。重要なのは、数百人をマネジメントした経験があるメンバーがどれだけいるか。弊社では執行役員レイヤーが10人ほど居るため、組織づくりに長けたメンバーがいる前提で採用ができています。

またその後の公開されている社員数もチェックしていたが、実際にそのペースで採用も出来ていた。最近は採用も難しいと聞いているが、このペースで人を増やせるのはすごい。

一方で人の数が一気に増えると組織マネジメントもいろんな課題が出てくるだろう。自分自身は組織マネジメントについて元々興味があり、特に組織の構造や仕組みを考えるのが好きなため、人が急増加するタイミングで構造や仕組みを考えるのは非常に面白そうだと感じ、さらに興味が湧いていた。

採用フローがしっかりしていて、今後も良い人がどんどん入ってきそう

自分が前の会社で採用を担当していて、かつ転職活動でいくつかの企業を受けた観点での感想だが、アンドパッドは採用フローが作り込まれていて見極めや魅力付けが非常に上手くできていると感じた。例えば選考フローの中で自分が印象に残っているのは

  • 書類を提出した段階で、今後のどんな選考フローがあり、どのような課題が出されるかを先に教えてもらえた
    • 思っても見なかった選考フローが急に出てくるとワタワタしながら準備することになるので、先に教えてもらえたのは非常に助かった
  • 毎回の面接の際に、今後会ってみたい人について必ず質問され、自分が知りたかった情報を集めやすかった
    • 例えば育児をしているエンジニア、エンジニアリングマネジャー、企画部門のトップ、社長など、基本希望通りの人と面接の機会をもらえた
    • 面接の際は、こちらの見極めの時間だけでなくて、質問の時間を長めに取ってくれたのも好印象だった
  • 選考から、人事/エンジニア/経営が連携して採用してそうだという雰囲気を感じた

採用フローが良く出来ていることは、今後良い人がどんどん入ってくることにも繋がると感じ、より志望度が高まった。

最後に

この辺りの3つの理由 + 面接の中で一緒に働きたいなと直感で思える人が何人もいたため、最終的にアンドパッドに決めた。前に働いていた株式会社はてなと比べると事業特性も技術スタックも相当違うので、早めにキャッチアップして活躍できたらなと思っている。また数ヶ月経ったら振り返りをしたい。

株式会社はてなを退職しました

2021年8月13日の本日が最終出社日でした。しばらく休暇を取り、10月から別の会社でエンジニアをする予定です。

はてなには2010年4月にアルバイトとして入社し、2012年4月からは社員として入社したので、アルバイト2年、社員9年4ヶ月と非常に長い間所属した。仕事の中で、周囲の人の優秀さに圧倒されながら学習とアウトプットをし続け、またいろんなチームや職種を経験させてもらえたおかげで、自分自身がかなり成長できた。はてなに入社できたことで、エンジニア経験がほぼないところから大きく成長できたため、誇張なく人生が変わったと思う。

はてなで経験できたこと

本当に色々経験できたのだが、自分の中で本当に良い仕事ができたなーと思ったことはこんな感じ。

  • 世界規模で動く通知システム
  • はてなブログMediaの立ち上げ
  • カクヨムの立ち上げ
  • 魔法のiらんどのリプレース
  • ブログチームでのチーム改善や、Mackerelチームでのデータ駆動のチーム改善
  • チーフエンジニアとしてメンター制度改善や採用改善など技術組織のマネジメント

この経験の中でバックエンドよりの開発を一から学んだり、開発チーム改善のやり方を学んだり、プロジェクトマネジメントの知識をつけたりと、今の自分の強みを作れた。

また、はてなに所属しながら、仕事に関係する学習や経験をコツコツとブログなどにアウトプットしたことも自分の財産となっている。はてなにアルバイトとして入社する直前に、エンジニアをやるなら学びをブログを書いていかないとなと思い開設し、10年以上書き続け、気づいたら今は1046記事。エンジニア・shiba_yu36さんが10年以上「やったこと」を記録している理由【エンジニアのブログ探訪】 - 週刊はてなブログのインタビューで回答した気持ちで書き続けていたが、このおかげで仕事の経験を自分の中に定着させられたと思っている。

転職を決めた理由

いろんな経験をさせてもらえていたが、今回転職することになった。理由は、新卒で入社してからずっと1つの文化や環境を経験していないというのは今後の仕事人生の中で弱みになるだろうと考えたからだ。1つの場所にずっといると、その場所だけの「当たり前」が世界にとっての「当たり前」と思い込みすぎてしまうだろうと思っていた。そこで環境を変えて仕事をし、はてなで良かったこと・悪かったこと + 別の会社で良いところ・悪いところを両方経験し、自分の視野を広げたいと考えた。

2年ほど前からどこかのタイミングで転職はしようと考えていたところ、コロナ禍の影響もあり、フルリモートを完全に認めてくれる会社が増えてきた。これまでは京都にいて仕事をしようとすると京都か大阪にある場所でなんとか探すしかなかったので、選択肢が一気に増えた今のタイミングで転職すべきだと考えた。

このように、他の文化・環境を経験したいという気持ちと、仕事の選択肢が増えたタイミングが合わさって、今回転職を決断した。

お世話になりました

はてなの皆様、11年間本当にお世話になりました。ほぼエンジニアの経験がないのに、はてなにバイトとして入社させてもらい、優秀な人に囲まれつつ様々な種類の仕事の機会をもらえたことで、エンジニアとして大きく成長できました。今後も京都に住み続けている予定なので、また情報交換してください。

ペア制度を導入して、開発チーム内の相談しやすさ向上・知見展開・透明性向上を狙う

最近プロジェクトマネジャーを担当していた仕事で、開発チーム内の相談しやすさ向上・知見展開・透明性向上・WIPタスク数減少を狙ってペア制度というのを導入した。今回は導入した背景、導入した仕組み、そしてその振り返りについてブログに書いておきたい。

導入した背景

最近はエンジニア6~7人程度のフロントエンドフレームワーク置き換えプロジェクトのプロジェクトマネジャーをやっていた。ペア制度を導入する前は、大体1~6ヶ月程度かかる粒度のタスクを1人にアサインし、人数と同じだけのタスクが進行しているという状態であった。

この1人1つのタスクを担当するやり方の時に、特にフルリモートでの働きという状況も相まって、次のような課題を感じ始めた。

  • ちょっとした相談のしづらさ
  • 知見展開のしづらさ
  • タスク状況の透明性の不足
  • WIPなタスクが多く、プロジェクトマネジメントが複雑

ちょっとした相談のしづらさ

元々チームとして、困ったらチャットやcallでチームの誰にでも相談しても良いとなっていた。しかし、フルリモートという状況によって、ちょっとした相談をすることに気後れしてしまう場合があった。これにより、Pull Requestになった段階で考慮漏れに気づき、大幅に手戻りするという場面が見られた。

知見展開のしづらさ

1人1タスクだと、担当している人だけがその部分に詳しくなり、属人性が高まりすぎる問題も起こった。もちろんコードレビューはしていたが、それだけだと「その部分を今後改修できるほどの知見」をレビュアが得ることは難しく、知見展開としては不足していると感じていた。

タスク状況の透明性の不足

1人1タスクで黙々と進めていると、今取り組んでいるタスクがどのような状況なのか、ブラックボックスになりがちだった。オフィスにいた頃も起こっていた問題ではあったものの、同じ場所にいた時は雰囲気で察することによって多少軽減できていた。しかしフルリモートになり、より見えづらくなり、さらに強い問題となっていた。

WIPなタスクが多く、プロジェクトマネジメントが複雑

6~7人が1タスクずつ持つと、Work In Progressなタスクが6~7つあり、並行してタスクが進むことになる。並列数が多いと、それだけ状況把握やタスクアサインなどのプロジェクトマネジメントコストも増大し、複雑であった。プロジェクトマネジメントの書籍にもWIP数は最小限にすべきと助言されていることが多い。

また、1人1タスクだと、そのタスクが完全終了するまでの時間(リードタイム)が長くなる問題もあった。例えば6人がそれぞれ3ヶ月のタスクを一斉に取り組むと、それぞれの機能がユーザーに提供できるのは6つの機能とも3ヶ月後になる。もしペアにして1ペアが低めに見積もって1.5人月出せるとすれば、3つの機能を2ヶ月後にだせ、全体効率は多少悪いが、一部機能をユーザーにより早く提供できる。

ペア制度を導入する

以上の課題の解決をするために、1人当たりの開発効率が多少落ちても、1~6ヶ月程度かかるタスクを2人組もしくは3人組で行ってみようとなった。導入した仕組みは単純で、

  • 1~6ヶ月程度かかるタスクを、最低二2以上にアサイ
  • アサインされたタスクの進め方は、ペアに完全にお任せする
    • 毎日1回くらいペアで相談や雑談の機会を用意してもらったり
    • ペアでやりやすいタスクの分解を考えてもらったり
  • 各タスクの状況共有は、用意しているスプリント会で報告してもらう

導入したのが大体2021/2あたりだったので、大体半年くらい運用してみている。

ペア制度の振り返り

最後に制度を導入運用してみてどうだったか振り返ってみる。方法としては、メンバーにアンケートを行いつつ、自分のプロジェクトマネジャーの視点でもどう変化があったかをまとめる。

ペア制度を振り返っての点数評価

5段階評価でペア制度が良かったか点数をつけてもらった結果がこちら。1が悪かった、5が良かったで点数をつけてもらった。 f:id:shiba_yu36:20210811150515p:plain

概ね好意的な印象であったが、1対1のペアを組むとストレスが多かったという意見もあり、重要な意見だなと感じている。

導入して良かったこと

まず相談のしやすさの観点ではアンケートからも好意的なコメントが多く、課題に対して効果的に機能したと考えている。いくつかピックアップすると

  • コロナでオフィス出社が無くなってから入社した身なので少人数で仕事と関係ない話とかをする場が本当になかったので良かった。とりあえず一日一回わからん!を気兼ねなく発言できる場があってよかった
  • わざわざ聞くのは気が引けるけど、曖昧にしておくと障害になりそうな微妙な立ち位置の話をしやすかった
  • ペア昼会が毎日発生したことで、強制的に会話の場ができた。自分で調べて全然分からなくても、少なくとも1日後には会が発生するので、難しくても「聞けばいい」に意識が変わったことがよかった
  • 困ったときに相談しやすいので一人で考え込んで詰まることが減る

また知見展開の観点でも、好意的なコメントが多かった。

  • 知見の伝達は行われやすかったように思う. 受信は自分の仕事に直接関連するので責任を持ってする必要があるし, 逆に発信に気を使いすぎなくても相方が受け取ってくれるはず
  • 他者の動き方・考え方を(少なくともレビューだけの状態よりは)知れたところは良いと思った。
  • 問題解決の一連の流れをペアの方からたくさん学ぶことができた。

タスク状況の透明性の観点や、プロジェクトマネジメントの煩雑さの観点はプロジェクトマネジメントの課題であったのでアンケートでは特に意見は現れてこなかった。プロジェクトマネジャーロールである自分の視点から振り返ると

  • タスク状況の透明性
    • ペアで進める以上、ペアで効率的に進めるためには自然とタスク分解や相談する必要があり、その相談内容のログなどで透明性がより増していた
  • WIPなタスクの多さによるプロジェクトマネジメントの問題
    • まず並列で動くタスクの数が半減したことにより、考えることは明らかに減った
    • ペアの中でタスクマネジメントの得意な方が引っ張ってくれるため、そもそもタスクの進め方で問題が起こりにくくなった。プロジェクトマネジャーがサポートに入る必要が少なくなった

他にもアンケートで、コンテキストが共有されることでコードレビューなどがスムーズに進んだという意見も集まった。

  • コードレビュー時に背景が共有されているのでコミュニケーションがスムーズに進む
  • ペア同士でレビューを積極的にすると背景を理解できているのでレビューが早く終わり,開発サイクルの速度が向上する
  • コンテキストを共有できるのはよかった。1人で scrapbox に書いてツッコミをもらって……とかでもできなくはないのだけど、そういうガッツに頼らずできる仕組みがあったのはよかった

導入して困ったことや、改善すべきポイント

困ったことや改善すべきポイントもアンケートでコメントをもらった。

  • 一つのタスクを共有するとタスクの並列化が難しい(まずは並列化できるまでの準備期間があった方がいいかも?)

複数人で進めると並列化が難しいという問題は起こると思っていた。どのタイミングからペアにするかを検討する、あまりに小さいタスクはペアでは取り組まないなどの改善が考えられる。

  • タスクの進め方にもよるかもしれないものの, 全体的な方針を揃えるのは意識してやらないと内的な品質が下がってしまうリスクはあると感じた。全編ペアプロで進めるとか, あるいは結合時など適当なタイミングで全体を整えるのをタスクとして考えておくとよさそう

これは一人でやると一貫性がある設計になりやすいが、複数人で行うとコミュニケーションミスで一貫性がなくなり、結果として品質が下がるということなのかなと思った。意識合わせのやり方を洗練させていきたい。

  • ペア相手が長期間いない場合に、上で書いた「良かったこと」の恩恵が受けられなくなるので、不在が多くなりそうなら3人にしておくと良いかもと思った。

確かに。出社日数などに応じて組み方を考えたい。

一人当たりの短期的な開発効率は下がったか?

ペア制度を導入したとき、短期的には一人当たりの開発効率は下がるかもしれないと懸念していた。これはタスクを2人で担当したとしても作業のコンフリクトが発生し、1人で担当するときの2倍速では進まないだろうと考えたからだ。この点についても、簡易的に振り返っておきたい。

今回のプロジェクトではストーリーポイントで見積もりしていたため、ベロシティの変化を振り返ることで短期的な開発効率の変化が推定できると考えた。ペア制度を導入する前の4ヶ月ほどと、ペア制度を導入した後の6ヶ月ほどで、1スプリントの1人当たり平均ベロシティを計算してみた。その結果

  • ペア制度導入前は1人あたり1スプリント3.2ポイントを消化していた
  • ペア制度導入後は1人あたり1スプリント3.3ポイントを消化していた

となった。

タスクへの慣れ・営業日数・割り込みなど他の変数でベロシティは変わるので断言はできないが、ペア制度を導入したことでベロシティが3分の2になるといった大幅な劣化はせず、今回に関しては懸念は良い意味で裏切られた。ペアのコンフリクトによる効率の悪化と、相談しやすさやコンテキスト共有による効率の向上が釣りあったのかなと思っている。

まとめ

今回は最近プロジェクトマネジャーを担当していた仕事で、1タスクに最低2人以上割り当てるという制度を導入したので、その背景や振り返りをブログに書いた。アンケートによると概ね好意的であったため、うまく活用していきたい。また改善ポイントはいくつか見つかったので、仕組み自体も改善できると良いだろう。