技術的負債に向き合う取り組み・DebtBashとは

はじめに

こんにちは!!! 最近ブッラータチーズにハマりすぎて誰かとこの美味しさを分かち合いたいぬまです!!buono!!

今日はエンジニアチームのチームワークの秘訣でもある「Debt Bash」についてまとめました。

エンジニアの方はもちろん、非エンジニアにとっても明日からのチームビルディングのヒントになる気づきがあったので、ぜひご一読いただきたいです。

──Debtとは?

技術における課題のことを指しています。 技術負債というとよく聞く単語です。

月に1回、半日かけて技術負債に向き合い前進させることを目的で始まったのがDebt Bashです。

──Bashとは?

Bash」は賑やかなパーティーというような意味らしいので、わいがやしながら、相談しながらやる祭、みたいなイメージです。

Debt Bashは、優先順位が低くていつまでも先延ばしになってしまうタスクを定期的に片付ける場として、1年前くらいにスタートしました。 初回はイベント中に何個やれるかを競い合ったりしました。

イベントの写真を撮り忘れてしまい、こちらの画像はハッカソンの様子の写真です🥹

負債解消がなぜ大切か

負債とは「機能開発」をすると溜まっていく、効率的なソフトウェア開発を妨げる要因のことを指しています。 非機能要件のうち、保守運用性やソフトウェア内部品質の向上など「ソフトウェアデベロッパー」が主語となる開発のしづらさを指します。

例 : 継続的な開発によって生まれた使われてないコード。理想的なアーキテクチャからかけ離れたコード、テストがないコード、遅いビルド、ドキュメントが整備されていなくてその場しのぎで開発されたコードetc

参考 技術的負債 - Wikipedia

Voicyの機能開発や施策で開発をはじめると既存の不具合や変更のしずらさが露呈し、まずは負債の解消が必要ということが多々あります。 先人のエンジニアが残した功績に最大限の敬意を示しつつもこういった負債に直面するとどうしても、開発者体験が下がってしまうと思います。

施策の手を止めて負債を解消していこうのはとても勇気がいることで、おかしな話ではありますが、施策の開発中に負債に向き合うことに罪悪感を感じてしまうような事態が生まれてしまいます。そこでこういったDebtBashという全エンジニアが時を同じくして負債解消に向き合う時間を作ることで、「開発者体験の向上」を目指しています。

イベントの写真を撮り忘れてしまい、こちらの画像はハッカソンの様子の写真です🥹🥹🥹

スケジュール

  • 15:00~15:10 イベント説明
  • 15:10~15:30 ゴール設定
  • 15:00~18:00 ワーク
  • 18:00~19:30 レビュー・アウトプット(リマインド)
  • 19:30~19:59 Win Session
  • 20:00~ Beer Bash(懇親会)

こんなスケジュールでやりました。

ゴール設定

手始めとしてAsanaの課題にゴールを設定してもらいます。これはイベントが終わった時に「何の成果もありませんでした 」 を報告することなく、進捗させることが必ず達成できる範囲を作業に入る前に十分考えて欲しかったからです。

ワーク

チームもしくは個人にわかれて負債に向き合います。

アウトプットはソースコードやPRに限らずドキュメントや課題を煮詰めてより具体化させたり方針決めでも良しとしました。

レビュー

レビューの時間を設けたのは前回せっかくDebt Bashで対応したPRやドキュメントが誰にも目を通されず放置となることが起こったからでした。 今回レビュアーを決めることとレビューの時間を作ったことで、やった感で終わらないことで放置を許さない仕組みにしました。

みんなからのよいFB

  • 期限があるけどメインプロジェクトとの兼ね合いで放置していて、頭の端にずっといたタスクをひとつクリアすることができて、実務上と精神衛生上
  • 前回はアウトプットが出せなかった(マージできたPRがなかった)が、今回はアウトプットがあって良かった。
  • 普段の業務では取り組むのは難しいけど、やるとよいものに取り組めて良かった。

Win Session

ウィンセッションと称してそれぞれ1日の成果を発表してもらいます。

なんとやまげんさん以外はみんな達成しました。(やまげんさんはそれだけ壁の高い負債に取り組んでいたことが発表内容を聞いて理解したところでした。)

ボケ要素

忘れてはならないのがこの「ボケ要素やまげんさんというエンジニア兼マネージャーがいまして、この方全社MTGで迫真の演技力を魅せてくるんです。 NijuプロジェクトのRYPさんに粉してボケつつみんなにこれやってこーよを推進してくのがうまいなーといつも感心します。再現性高くてマジですごいのでほんとは動画撮って拡散したいくらいなんですww

このやまげんさんを皮切りに、何かみんなに協力を得たいような共有の際に、結構ボケをかます風習が生まれましたw 全然マネージャー陣が他メンバーに強要しているわけではないですが、私も負債に向き合うという趣旨でも、ボケをスパイスとして入れてみたかったです。 そこでDebtBash運営メンバーではローラン◉様を起用し、エンジニアを鼓舞しました。

  • 負債の対義語はVoicy
  • 負債が溜まってるって?俺に解決してほしいんだね

など語録も拝借しながら、最大限エンジニアに「強い気持ちで負債に向き合ってほしい」メッセージを伝えたつもりです。

負債をうまないための行動を考えよう

DebtBashでは負債を解消していくイベントですが、当たり前に負債をうまないようにどうしていくかが大事ですね。

ごみとか悪いコードとか、無駄に乱暴な言葉で語られることも多い技術的負債ですが、 向き合う時間をチームで作ることによってより建設的でいて最適な言葉使いでコミュニケーションできると考えていて、その機会はやはり作るしかないなと思います。

おわりに

イベント後のフィードバックでは [スライドでボケてるところでは発表もボケきる? (笑)] という優しくも鋭いツッコミもらい、運営メンバー全員ボケスキルに磨きをかけて次回のイベントを企画します。