CodeZine(コードジン)

特集ページ一覧

技術的負債は絶対悪ではなく共通課題――開発者体験の向上に取り組んだ3年間に訪れた壁とは【デブサミ2021】

【19-B-8】ARR20億円を3年で達成したエンジニア組織が実現した3つのDeveloper eXperience~訪れる壁と突破方法~

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/04/07 12:00

 私たちの多くは、1日の大半を仕事に費やしている。だからこそ、気持ちよく労働できる職場環境を整えることが重要なのだが、これがなかなかの難題だ。組織改善プロダクトを開発・提供するリンクアンドモチベーションは、プロダクトの成長を見越してそれまで外注していたアプリケーション開発などを内製に切り替え、新たにエンジニアを雇用した。しかし、そこでエンジニアたちを待っていたのは技術的負債や組織的負債の数々。エンジニアたちは次々と疲弊し、気力を消失していった。どうすればエンジニアが再び顔を上げて楽しく開発できるようになるのだろうか。同社のエンジニア第1号として入社した開発責任者の柴戸純也氏が、自身の経験を振り返りながら開発者体験「Developers eXperience(DX)」の向上にどう取り組んできたかを紹介する。

目次
リンクアンドモチベーション ビジネスデザインユニット 開発責任者 柴戸純也氏
リンクアンドモチベーション ビジネスデザインユニット 開発責任者 柴戸純也氏

技術的負債に向き合い続け、開発者体験の向上に取り組んだ3年間

 組織改善プロダクト「モチベーションクラウドシリーズ」を開発・提供するリンクアンドモチベーションは、2016年に同製品をリリースして以降、3年で急成長を遂げ、現在も毎年110%の成長を続けている。社員へのアンケート調査から企業と組織の相互理解や相思相愛度合いを測るエンゲージメントスコアを算出し、組織の健康状態を診断。その診断結果から従業員エンゲージメントの向上を支援していく同製品は、現在、ベンチャー企業から大企業まで幅広く採用されている。

 そんな同社も、従業員エンゲージメントの低下を経験したことがある。きっかけは、2018年にプロダクト開発の内製化に踏み切ったことだ。その時、エンジニア第1号として入社したのが、現在はモチベーションクラウドシリーズの開発責任者を務め、同社グループ全体のデジタルトランスフォーメーションを推進する柴戸純也氏だ。

 入社して柴戸氏は驚いた。内製化前はプログラミングを理解する社員がゼロだったこともあり、さまざまな外注先が入れ替わり立ち替わり開発した結果、コードが荒廃しきっていた。デッドコードも膨大で、デバッグすれば次々と意味不明なコードが発掘されるような、非常にリスクが高い状態。毎朝9時にcronが自動実行されると聞いていたのに、実際は毎朝誰かが出社して起動していたことが発覚。300秒かかる重い処理も発生しており、ユーザー数が急増する中で「何で修正するのにそんなに時間がかかっているの?」と心ない言葉を投げつけられて、エンジニアは次第に疲弊していった。

 「自社でエンゲージメントスコアを測定したところ、組織状態を示す偏差値は43.1だった。これは、『社内を歩けば退職希望者に当たる』レベル。のちに後輩から、居酒屋では全員がずっと私の悪口を言っていたと聞かされた」(柴戸氏)

 当時のボロボロの状態から、同社はどう立ち直っていったのか。

 「他の誰かが同じような状況に陥った時、立ち直るためのヒントになれば嬉しい」そう語る柴戸氏は、自分たちが乗り越えてきた壁を「偏見の壁」「不明の壁」「断絶の壁」の3つに分類した。

 1つめの壁は、「偏見の壁」だ。負債のイメージは、発生してはならない「絶対悪」である。そうした思い込みは、手を着けるのも骨の折れるコードへの不満に変わり、コードを晒して嘲笑するような悪感情を生んでいた。

 これに対して柴戸氏は、負債を絶対悪とすることは偏見だと断言する。そして、そのような状態を解消するために、柴戸氏はまず負債を「技術的負債」と「組織的負債」に定義し、感情と認識の整理を図った。

 技術的負債は、エンジニア組織のスキル不足や改修されずに引き継がれた古いコードベースといった意図せず発生するもの以外に、たとえば期日やデプロイが最優先の中で特別な対応や妥協をせざるを得ず、結果的に負債と変わるケースもある。たとえば、事業立ち上げ時などは、こうした犠牲を払ったとしても事業的な見返りがあり、会社は十分価値を享受できる。実際、リンクアンドモチベーションも最速でサービスを立ち上げることができた結果、エンゲージメントサーベイの市場で一時、大きなシェアを確保することができたという。しかし、スタートダッシュの時期を過ぎたあとも、特別な対応や妥協を見直すことなく繰り返された結果、当時を知らないエンジニアにとってはプログラムや仕組みがただの負債に成り果てた。

 一方の組織的負債は、技術的負債と相互影響関係にある。開発チームの能力不足や残されたレガシーコードのリファクタリングは、人材育成や開発工程の見直しである程度は解決できるだろう。しかし、それを指導できる責任者がおらず、上層部や他部門も技術的な話が分からないために状況を理解できない場合、そのまま放置される可能性は高い。こうして対立や不協和音が発生し、エンジニアの不満は蓄積の一途をたどることになる。

技術的負債が発生する過程
技術的負債が発生する過程

 この最初の壁を乗り越えるため、柴戸氏は朝会や開発会議、納会、飲み会など、あらゆる場面で徹底して感謝と方針を語り続けた。

 「負債は、今私たちが享受してきた価値を先人たちが築く過程で生じたもの。システムの歴史であり、ストーリーであり、絶対悪ではなく共通課題。私たちが今書いているコードも、OSやライブラリのバージョンアップなどで、数年後には負債になっている可能性だってある。最適解はその時々で変わる。負債は常に発生するものと理解し、返済し続けなければならない」(柴戸氏)

 柴戸氏はそう述べ、それを開発チーム内のみではなく、会社全体で共有できる場面で声を上げた。そんな努力は功を奏し、今は会社全体が重要な共通課題として理解し、共に負債と向き合い、解決していくという土壌が育まれつつあるという。


関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブサミ2021】セッションレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5