技術的負債に向き合い続け、開発者体験の向上に取り組んだ3年間
組織改善プロダクト「モチベーションクラウドシリーズ」を開発・提供するリンクアンドモチベーションは、2016年に同製品をリリースして以降、3年で急成長を遂げ、現在も毎年110%の成長を続けている。社員へのアンケート調査から企業と組織の相互理解や相思相愛度合いを測るエンゲージメントスコアを算出し、組織の健康状態を診断。その診断結果から従業員エンゲージメントの向上を支援していく同製品は、現在、ベンチャー企業から大企業まで幅広く採用されている。
そんな同社も、従業員エンゲージメントの低下を経験したことがある。きっかけは、2018年にプロダクト開発の内製化に踏み切ったことだ。その時、エンジニア第1号として入社したのが、現在はモチベーションクラウドシリーズの開発責任者を務め、同社グループ全体のデジタルトランスフォーメーションを推進する柴戸純也氏だ。
入社して柴戸氏は驚いた。内製化前はプログラミングを理解する社員がゼロだったこともあり、さまざまな外注先が入れ替わり立ち替わり開発した結果、コードが荒廃しきっていた。デッドコードも膨大で、デバッグすれば次々と意味不明なコードが発掘されるような、非常にリスクが高い状態。毎朝9時にcronが自動実行されると聞いていたのに、実際は毎朝誰かが出社して起動していたことが発覚。300秒かかる重い処理も発生しており、ユーザー数が急増する中で「何で修正するのにそんなに時間がかかっているの?」と心ない言葉を投げつけられて、エンジニアは次第に疲弊していった。
「自社でエンゲージメントスコアを測定したところ、組織状態を示す偏差値は43.1だった。これは、『社内を歩けば退職希望者に当たる』レベル。のちに後輩から、居酒屋では全員がずっと私の悪口を言っていたと聞かされた」(柴戸氏)
当時のボロボロの状態から、同社はどう立ち直っていったのか。
「他の誰かが同じような状況に陥った時、立ち直るためのヒントになれば嬉しい」そう語る柴戸氏は、自分たちが乗り越えてきた壁を「偏見の壁」「不明の壁」「断絶の壁」の3つに分類した。
1つめの壁は、「偏見の壁」だ。負債のイメージは、発生してはならない「絶対悪」である。そうした思い込みは、手を着けるのも骨の折れるコードへの不満に変わり、コードを晒して嘲笑するような悪感情を生んでいた。
これに対して柴戸氏は、負債を絶対悪とすることは偏見だと断言する。そして、そのような状態を解消するために、柴戸氏はまず負債を「技術的負債」と「組織的負債」に定義し、感情と認識の整理を図った。
技術的負債は、エンジニア組織のスキル不足や改修されずに引き継がれた古いコードベースといった意図せず発生するもの以外に、たとえば期日やデプロイが最優先の中で特別な対応や妥協をせざるを得ず、結果的に負債と変わるケースもある。たとえば、事業立ち上げ時などは、こうした犠牲を払ったとしても事業的な見返りがあり、会社は十分価値を享受できる。実際、リンクアンドモチベーションも最速でサービスを立ち上げることができた結果、エンゲージメントサーベイの市場で一時、大きなシェアを確保することができたという。しかし、スタートダッシュの時期を過ぎたあとも、特別な対応や妥協を見直すことなく繰り返された結果、当時を知らないエンジニアにとってはプログラムや仕組みがただの負債に成り果てた。
一方の組織的負債は、技術的負債と相互影響関係にある。開発チームの能力不足や残されたレガシーコードのリファクタリングは、人材育成や開発工程の見直しである程度は解決できるだろう。しかし、それを指導できる責任者がおらず、上層部や他部門も技術的な話が分からないために状況を理解できない場合、そのまま放置される可能性は高い。こうして対立や不協和音が発生し、エンジニアの不満は蓄積の一途をたどることになる。
この最初の壁を乗り越えるため、柴戸氏は朝会や開発会議、納会、飲み会など、あらゆる場面で徹底して感謝と方針を語り続けた。
「負債は、今私たちが享受してきた価値を先人たちが築く過程で生じたもの。システムの歴史であり、ストーリーであり、絶対悪ではなく共通課題。私たちが今書いているコードも、OSやライブラリのバージョンアップなどで、数年後には負債になっている可能性だってある。最適解はその時々で変わる。負債は常に発生するものと理解し、返済し続けなければならない」(柴戸氏)
柴戸氏はそう述べ、それを開発チーム内のみではなく、会社全体で共有できる場面で声を上げた。そんな努力は功を奏し、今は会社全体が重要な共通課題として理解し、共に負債と向き合い、解決していくという土壌が育まれつつあるという。