はじめに
こんにちは。 ANDPAD 引合粗利管理の開発に従事しています小笠原と申します。
今年の夏は珍しく外に出ることが多く、自分としてはかなり活動的な夏になったと感じております。 その代償に体調を崩すことも多く、これが加齢か……と実感してしまいました。なんだか哀しいですね。 としみじみしていたらすっかり秋めいていて時間の早さに驚いております。これも、加齢……?
さて、前置きはほどほどにして。 私事ではありますがアンドパッドに入社してから半年以上が経ちました。 アンドパッドに興味を持ってくださる方の参考になればと思い、私がアンドパッドに転職して感じたことを徒然と書き留めてみたいと思います。
開発者のユーザ志向が強い
アンドパッドが掲げる Value のなかに「Technology First」と並んで、「Reality」や「Customer Success」があります。 これらのビジョンにも現れているとおり、開発者もユーザ志向を強く持っていることを強く感じています。
例えば、開発組織とプロダクト組織のメンバが集まってアンドパッドのプロダクトに関する現状とこれからの方向性と戦略を共有する「DevPro総会」を毎月開催しています。
ANDPADは多岐にわたるプロダクトを提供しており、それぞれに専属の開発チームがあります。そのため、普段の業務ではどうしても自分の担当プロダクトに集中しがちです。しかし、この会があることで、他のプロダクトがどのような課題意識を持ち、どのように解決しようとしているのかを知ることができます。これは、視野を広げ、全体像を把握する上で非常に貴重な機会だと捉えております。
さらに、ANDPADというプラットフォームにおいて、それぞれのプロダクトがどのような方向へ進み、どのように連携して相乗効果を生み出すことで、利用者の方々へ届ける価値を最大化していくのかを再認識する場でもあります。
エンジニアが個々のプロダクトの機能だけでなく、それらがANDPAD全体としてどのようにユーザー体験を向上させるのかを理解することで、より本質的な課題解決に繋がる開発を進めることができます。まさに、ユーザー志向を育み、プロダクト全体の品質向上に貢献する大切な取り組みだと感じております。
顧客の成功を支える仕組みがすごい
アンドパッドの Value の一つである「Customer Success」を体現するため、カスタマーエクスペリエンス(CX)部門の皆さんは、ユーザーがANDPADを単に操作できるだけでなく、真に活用できるようになるまで日々手厚いフォローを実施してくださっています。
しかし、その手厚いサポートの中で、開発チームが直接確認しなければ回答が難しい専門的なお問い合わせも日々発生しています。 直近では、バグ報告、詳細な仕様確認、およびデータ調査に関するお問い合わせが月に100件以上に上ります。
これらの問い合わせに開発チームが直接対応すると、日々の開発タスクの進捗に影響が出るほか、専門的な調査が必要なため回答速度が低下するという問題が生じがちかと思います。しかし、アンドパッドにはそれらを解決するためにCRE(Customer Reliability Engineer)という部門が存在します。 CREは、CXと開発チームの間に立ち、お問い合わせに対する迅速な一次対応を実施いただきつつ、再現手順の確認とログの事前収集や緊急度の判定と優先順位付け、類似事例の調査などがなされた状態でエスカレーションいただいております (詳細については 2024年アンドパッドのCREは何をしているのか など過去の記事をご参照ください)。
これらの組織のみなさまのご尽力ご協力があるからこそ、新しい価値提供に向けた開発業務とエスカレ対応とを両立できていると思うタイミングが多々あります。
なお引合粗利管理の開発チームではCX、CREのみなさまの迅速な回答に少しでも繋がるように輪番制で運用当番を設けて対応の速度感をより高めるようにしております。 当番になった人はお問い合わせへの回答に集中するというルール作りをしたことで、問い合わせがたまり続けることがないように心がけています。
複雑かつ巨大なコード群の大変さ
サービス理解が難しい
様々なプロダクトがありそれらを組み合わせて価値を提供していることからも察するところはありましたが、未だにサービス理解にあくせくしております。
例えば、私が担当している「引合粗利管理」の機能一つとっても、その理解は一筋縄ではいきませんでした。まずはコードを動かし、実際にアプリケーションを触りながら、データ項目やデータフローを一つ一つ追っていくことから始めました。しかし、建築業界特有の会計の仕組みが絡んでくると、頭を抱えることもしばしば。その都度、チームや知見の深いメンバーに質問し、背景にあるビジネスロジックや業界慣習を教えてもらいながら、理解を深めていきました。
また各種ドキュメントも理解を深めるのに大変助けられております。開発の合間を縫ってドキュメントを残してくださった先達には頭が下がる思いです。 自身のためにもなるので今後のために、自分の理解を深める過程で得た知識や、新たに発見したことを積極的にドキュメントに残していきたいと強く感じています。
加えて先述の運用当番として実際に引合粗利管理のシステムを利用してくださっている中で生じた問題の調査にあたることもサービス理解の一助になりました。ドキュメントや仕様書だけでは見えづらい、お客様がサービスを実際にどう使っているかを肌で感じて理解を深めることができました。
横軸でのサービス理解を深める上では、「自慢大会」という会が非常に役に立っております。 この「自慢大会」とは、開発本部に属する各チームがその月に取り組んだ開発内容や改善活動を発表し、互いに共有する場として、定期的に開催されております。 ANDPADの多機能さからもご理解いただける通り、アンドパッドでは多数のチームに分かれて開発を行っており、チームごとに独自の専門分野と特色を持っております。 そのため、この会を通じて、他チームの開発事例や、自分たちの業務にも応用できる改善事例などを知る貴重な機会となり、組織全体の知識共有に大きく貢献しております。
安全な開発への取り組み
私たちが開発を担う引合粗利管理機能は、巨大なモノレポの中に存在しています。事前にお聞きしてはいましたが、前職と比較しても文字通り桁違いのコード量には驚かされました。
このような大規模なコードベースで「速く」「安全」な開発を進めるのは非常に難しい課題です。しかし、アンドパッドでは、その課題を「過度に個人の力量に任せる」のではなく、「仕組みで解決しようとする」文化が深く根付いていると感じています。
この文化を体現する具体的な仕組みの一部をご紹介します。 例えば、プルリクエスト(PR)作成時には、静的コード解析が活用されています。これにより、過去の障害事例を踏まえて「注意すべき修正」に対して自動でコメントがつき、レビューの質を高めています。
また、リポジトリに触れる開発者が多岐にわたるため、チームを横断して気を付けるべき箇所については、ガイドライン化や自動チェックが行われています。これは、開発者が安心してコードを書けるよう、心理的安全性が担保されるような工夫に繋がっています。
そして万が一障害が発生した場合でも、それをポストモーテムとして記録し、「失敗から学ぶ」姿勢を全員が持つ文化が根付いています。これは、原因究明を責める行為ではなく、将来の改善に繋げるための前向きな学びの機会となっています。
こうした「安全」に対する徹底した仕組みづくりがされているからこそ、多人数・多チームで一つの大きなコード体系を扱いながらも、より良いサービスを提供し続けられるのだと日々実感しています。
最後に
アンドパッドに興味を持ってくださる方の参考になればと思い、私がアンドパッドに転職して感じたことを徒然と書き留めてみました。
改めて振り返るとあっという間ではありましたが、難しさはあれど働きやすい工夫が随所にあることからなんとか軌道に乗せることができたと感じております。
最近アウトプットがあまりできておらず拙い文章で大変恐縮ですが、本稿がアンドパッドに興味を持っていただいている方々の参考になれば幸いです。