こんにちは,新卒2年目サーバーサイドエンジニアの福間(@r_fukuma)です。
技術的負債を返済する文化を作るため,技術的負債返済イベント「1UP DAY」を開催しました。
開催に至った経緯と学んだことについて書いていきたいと思います。
当日の様子についてはこちらのブログを参照!
→ クリエイターチームの「1UP DAY」(技術的負債返済DAY)を開催しました!
技術的負債返済イベント「1UP DAY」を開催したきっかけ
開発現場で”よく聞くフレーズ”が気になった
最初の1年間,僕は運用開発のチームでサイトのKPIに関わる案件を多くこなしてきました。
その過程の中で「本当はこれもっとこうしたいんだけど…」とか「ここ修正したいってのは前々から話があがってるんだけど…」みたいな話が浮かんでは消えていくのをよく見るようになりました。
「やりたいけど,優先度は低いので今はできそうにない…」といった状況です。
こういう状況をよく目にしていたので,なんとかできないもんかなーとフワフワ考えていました。
技術提案を行うHack Dayという社内イベントが始まった
そんなことを考えていたら,会社で新しい取り組みが始まりました。
Hack Day という,クリエイターが自ら技術提案を行い,採用されれば正式に工数をもらって取り組めるといったもの。
弊社は,普段から技術提案はできる環境ではあるのですが,それをもっと活性化することが狙いのイベントでした。
僕自身,この第1回Hack Dayに参加したのですが,技術的負債返済の提案はせずに,普通に技術提案をしました。
ウエディングパークマガジンをAMP化しましょう,みたいな提案です。
結果は惨敗でしたが (笑)
まずは今の課題を片付けないと…でも優先度は低い…じゃあイベントにしちゃえ!
「技術的負債をみんなで返済していきましょうよ!」という提案をしたのは2回目のHack Dayでした。
Hack Dayでは非常に多くの技術提案が行われるのですが,懸念として上がることが多いのが
現状のシステム課題 とのバッティング。
新しいことに取り組みたいのに既存の課題が邪魔をする。
そんな環境で本当にクリエイターがワクワクして働けるのかなと疑問に思いました。
「じゃあまず既存の負債を解決していかないと…。でも普段は優先度が低くて見送られる。
だったらいっそのこと課題解決をイベント化してしまって,短期間で取り組んでみたらどうだろうか?」と思い,1UP DAYの提案をしました。
結果として提案が通り,イベント開催のために半日の工数をもらうことができました。
1UP DAYについて
1UP DAYの定義
普段は優先度が低いタスクに全員で集中して取り組む日
ウエディングパークにおける技術的負債の定義
定義はいろいろあると思うのですが
- 中長期的に障害を起こす原因になりうる課題
- 開発の生産性を低下させるもの
を負債として定義しました。
自動化やツールの導入,ドキュメント化などにも取り組みます。
運用方法
- 技術的負債をGitLabのissueに書いてストックする
- スプレッドシートにリストアップし,優先度をつけて「やる・やらない」を判断する
- 金曜午後の時間を使ってISSUEに取り組み, 最後にチームごと成果発表を行う
やって良かったこと
1. 技術的負債の把握・管理ができるようになった
これは意外だったのですが,実際にISSUEを書いてもらうと「その負債,知らなかった〜!」というものがけっこうな数あがってきます。
逆に言うと,技術的負債の存在自体が属人化していたということですね。
クリエイター全員がシステム課題を俯瞰して把握できるようになり,普段の運用開発にISSUEを取り込んだ例もありました。
実際に取り組むかは別にして,今ある課題を全員が把握できるだけでも価値のあることだと思いました。
2.「これ1UP DAYでやろう」という会話が増えた
普段のコードレビューや開発中のディレクターとのやり取り等で「工数増えるけど,本当はこう実装してほしい」「この処理は共通化してほしい」といった会話があったりします。
これまでは,そうした要望も優先度の関係で流れがちでしたが,1UP DAYを開催してからは「これ次の1UP DAYでやろう」という会話が生まれるようになりました。
クリエイター的にはあとでやる!と決めておくことで,普段は業務に集中できるので精神的にも良いです。
1UP DAYを通して負債返済の意識がクリエイターにつくことで,負債を見つけたら早めに返済する という流れが生まれてきたなと感じました。
3. 生産性高く,負債を返済することができる
第1回目で取り組んだISSUEは20個になりますが,そのうちのほとんどを実際に完了まで持っていくことができました。
- 不要な画像やCSSの削除
- Jenkinsのジョブ作成による開発効率UP
- 情報が古くなっていた社内Wikiのアップデート
など,幅広いジャンルのISSUEに取り組めました。
当日の夕方には成果発表会が控えており,自然と短時間で集中して取り組む形になるので,
生産性も非常に高くなるという思わぬ発見もありました!
4. 全員で同じ時間で取り組むのは,楽しい・学びも多い!
負債返済というワード自体はネガティブなものですが,
同じ時間に全員で取り組むと,自然とワイワイとした空気が出て
予想以上に楽しい時間になりました。(チームを組み,優勝制度も設けたのも大きかったかも)
同じISSUEに複数人で取り組むことでお互いの知識を共有できたり,モブプロ的な要素での学びもあるので,個人・チームの技術力向上にも繋がります。
最後に
技術的負債イベント「1UP DAY」の開催した経緯と,良かったことについて書きました。
実はこの記事を執筆中に,第2回も開催されました!(前回以上に成果の出る会となりました)
技術的負債はどのチームにも存在するものだと思いますので,悩んでいる方がいらっしゃいましたら,ぜひ1UP DAYの取り組みを参考にしてみてください!
最後までお読みいただき,ありがとうございました!
エンジニア募集中
Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにいらして頂ければと思います。
株式会社ウエディングパークwantedly
参考
イベント開催のヒントとして,Wantedly様の負債返済日の取り組みのスライドを参考にさせていただきました。ありがとうございます。