プロジェクト化して技術的負債の返済を進めるカミナシ
最後に登壇したのは、株式会社カミナシ 執行役員CTOの原氏。セッションタイトルは「激撮!カミナシ技術的負債返済プロジェクト!~目撃者は語る~」。「ウケ狙いのタイトルをつけましたが、内容は真面目なものになりました」と語り、原氏のセッションは始まった。
カミナシの企業ミッションは「ノンデスクワーカーの才能を解き放つ」。日本の労働人口の半分以上はノンデスクワーカーが占めている。そのノンデスクワーカーの作業を効率にするためのサービスを2年前より提供している。社員は全員で60人ほど。そのうちエンジニアは10人を超える。そんなカミナシに原氏は2022年4月に入社。前職はAWSでコンテナサービスのチームに所属していた。
技術的負債について原氏は「実装当時に最適解と考えられたものが、時間の経過と共に最適とは評価され得なくなったものと捉えている」と説明する。ビジネスを取り巻く状況や、システムに関わる組織・チームの規模や役割、新たな技術的な選択肢が登場するなど、時間の経過と共に最適は変化していく。「この変化の結果と最適の差分が技術的負債になる」と原氏は言う。つまり、継続的改善を前提でシステムを作る限り、優秀な人材を集めても必ず技術的負債は発生するのだ。
また原氏は「技術的負債を生み出しているのはエンジニアリングだけではない」と語る。ビジネスモデルそのもの、プロダクトのバリュープロポジション、一つひとつの機能要件、仕様など、いたるところに不確実性が潜んでいるからだ。つまり技術的負債は手抜きの結果ではない。
技術的負債を返済するのは、最適を再評価しないシステムは継続的開発における生産性を低下させることになるからだ、また高い生産性を維持し続けるためにも技術的負債を返済する必要はある。技術的負債は本来、通常の開発プロセスの中で継続的に返済し続けなければならないものなので、「プロジェクト化が必要になるまで放置すること自体は誤り」と原氏は言う。
原氏が入社した4月下旬からプロジェクト化の検討を開始。全社説明をして、5月末より5週間、機能開発を止めてビジネスロジックを触らないリファクタリングを一気に行い、7月より第二弾が進行している。
検討時点で行ったのは、技術的負債と認識していることをアクションに繋げられる粒度でリスト化し、各アイテムを放置した際の技術・ビジネス両面での想定リスクや返済で期待される効果について言語化した。そして各アイテムのリスクや心のつらさ、対応コストなどを複合的な要素を基にざっくりと優先順位を決めていった。4月末からリストを基に本格的に技術的負債の返済プランを検討開始。「通常業務と並行して片付けられるのかを検討したが、難しいことがわかりプロジェクト化することにした」と原氏は言う。
経営メンバーには「過去数カ月間で純粋な機能開発に使った時間」というファクトに基づいて説明。エンジニアリングの多くの時間が顧客問い合わせに基づく調査や不具合修正などの対応に使われており、大きな新機能が出せていなかった。だが、意思決定できたのは「ビジネスそのものが伸びていたことも大きい」と言う。6月末までの5週間、機能開発と不具合修正をすべて止めて、負債返済プロジェクトにリソースを充てることで経営内で合意したという。
負債返済プロジェクト第1弾では、アプリケーションコードの必要以上の複雑さを取り除くためリファクタリングを実施。エンジニアリングメンバーの精神衛生が良くなり、「ビジネスロジックにも手を入れていこうという機運も生まれた」と言う。現在、進めている第2弾では機能開発と並行して負債返済を実施している。「通常業務と負債返済の時間の比率は5:5のルールを定めている」と原氏。優先度の高い重要な技術的負債群が片付き次第、通常業務の時間を増やしていくルールにしている。年末までに「中長期的な価値を犠牲にせずに、業務の6割の時間を純粋な機能開発に充てられるチームへ」を目指して鋭意、取り組んでいるという。
「技術的負債も機能開発などと同じリストのバックログアイテムとして管理し、着手の優先順位をつける。そして技術的負債の詳細と対応案をバックログアイテムに落とし込み、放置による影響や、対応で期待される効果、そして可能な限りその測定方法を言語化し切ることが、エンジニアリングの責任です。皆さんも技術的負債に悩んでるかと思いますが頑張って取り組んでいきましょう」(原氏)
参加者からの質問にも直接回答! 盛り上がったパネルディスカッション
3人のセッションが終わり、パネルディスカッションが始まった。モデレーターはゆめみ/SELECKの取締役の工藤氏。同氏は2011年にゆめみに入社。OMO/デジタル新規事業などのプロジェクト推進・ディレクターを経験後、デジタルサービスの立ち上げや運営の支援に従事。2019年にはマーケティング担当として取締役に就任。2022年にはSELECKの取締役にも就任した。ここからは、パネルディスカッションの様子をレポートする。
――最初のお題は「負債、もしくは将来的に負債になり得るリスクに対して、共通認識を取るためのコミュニケーション・指標はありますか」。深澤さんはこの課題に対してどのように解決しようとしていますか。
深澤:当社はビジネスと開発の距離が非常に近い文化が形成されているので、一体となって価値を提供していこうということが根付いています。その上で、お互い歩み寄りをしています。例えば、技術的バックグランドではない人たちが「Reactについて勉強したいがいい本がないか」「どんな可能性があるのか」などを聞いてくれるため、発展的な会話に繋がりやすいです。また同じミッションに向かって、時には技術的課題、時には新規開発に取り組むことについて密なコミュニケーションを取るようにしていますね。
また指標については、定性的・定量的の両面から検討したリストを整備しています。例えばメンテナンスコストの高さを大中小で分類し、この機能はメンテナンスコストが高いつけど、価値提供につながっているのでリファクタリングで改善しよう、という風に整備しています。