Skip to content

Instantly share code, notes, and snippets.

@catatsuy
Last active August 23, 2023 08:23
Show Gist options
  • Save catatsuy/dc6762092ad662427982dbcce3f239a3 to your computer and use it in GitHub Desktop.
Save catatsuy/dc6762092ad662427982dbcce3f239a3 to your computer and use it in GitHub Desktop.

レガシーと戦う開発組織の作り方

レガシー業界・システムに奮闘!プロダクト改善事例LT【開発PM勉強会vol.9】 - connpass https://peer-quest.connpass.com/event/239171/

自己紹介

  • 株式会社PR TIMES執行役員CTO 金子達哉
  • @catatsuyというアカウントで各種SNS登録しています
  • ピクシブ・メルカリを経て2021/04にPR TIMESに入社しました

金子入社時(2021/04)の状況

  • 進行中のプロジェクトが何を作っているのか誰も把握していない
    • ほぼすべてのプロジェクトで求められている機能ではないものが作られていたり、技術的にやるべきでない方向に進んでいた(最終的にほぼすべて停止 or 方針変更)
    • 数年間PR TIMESにはほぼ新機能追加がされていなかった
  • PHPのバージョンが非常に古く、ソースコードにも問題があり機能追加が困難
    • PHPバージョンアップは不可能だと思われていた
    • ミドルウェアのバージョンアップもされていなかった
  • フロントエンドもほぼすべてjQueryで作られており、バグ修正すらできていない箇所もある
    • 最近追加されたところでは一部Vue.jsが使われていたが、大半はjQuery
  • レガシーがひどすぎて誰がやってもうまくいかないと思い込んでいた
    • 何を聞いても「無理です」と言われる状態に陥っていた
      • マインド面でも負けていた
      • 確認していったら技術的にできるものばかりでした
  • 開発者ブログもなく、開発本部の存在自体が社外に認知されていない
    • サービスの知名度は高いのに😭

現在(2022/03)の状況

今回の内容

  • 具体的にどういう技術や方法で新機能追加や改善を行っているかは開発者ブログをぜひ読んで欲しいです
  • 今回はどういう考えでどう組織を変えて進めてきたのかを説明します

マインドを変える

  • 開発者ブログ開始 (2021/04)
    • 取り組みを社内外に発信するために開始
  • CTO通信開始 (2021/04)
    • 社内のドキュメントツール整理を行った後、利用を再開したNotionで始めた
    • CTOの考えていることややっていることをオープンに発信していくことで自分たちのタスクが会社の成長にどう繋がるか感じてもらえるように
    • 一部公開済みです
  • PHPバージョンアップ勉強会開催 (2021/07)
    • PHPバージョンアップのために入社してもらったuzullaさんが入社後に社外公開も含めて開催
    • レガシーはどこにでもあるもので技術を使えば必ず解決できるというマインドに向かっていった

CTO通信

できない理由ではなく、解決する方法を探す

  • 「○○だからできない」ではなく、「××を遂行するには○○が必要だが、○○はどうすれば解決できるのか?」という発想をする組織にする
  • 以前は社内ITがほぼ未整備で、サービスのセキュリティを強化する以前の状態だった
  • 2021/06に開発本部コーポレートチーム発足

常に情報収集をする

  • 旧ストレージからファイルを移行することができず、数年以内にPR TIMESは画像をアップロードできなくなる状態に陥っていた
    • 1つのフォルダに大量のファイルが入っているせいでファイルのリストを取得できない
    • それ以外のフォルダは新ストレージに移行済み
  • 3300万ファイルのリストを出せる独自CLIを作成することで解決

開発生産性を可視化する

Findy Teamsグラフ

結果で示す

  • レガシーから脱却できたかどうかはエンジニア以外には分からない
  • 外から唯一分かるのは新機能追加などのサービス改善とその開発速度
    • 先程紹介した新機能は金子入社時にはすべて不可能もしくは1年以上かかると思われていたものばかりです
  • サービス改善をするため」にレガシーと戦う
    • 最終的にサービス改善に繋がらないシステム変更はむしろ害悪
    • 技術はサービスを良くするために利用する
      • 🙅‍♀️「レガシーがすごすぎるのでエンジニアが作りたい別システムを作る」
      • 🙆‍♀️「レガシー改善を進めつつ、この状況でもサービスのためにできることを考える」

自分たちの挑戦を客観視できる機会を作る

  • カヤック社さんとの合同勉強会開催
    • リアルの勉強会がコロナにより難しくなったことで新卒1,2年目くらいのメンバーが他社の人との横の繋がりが作れない→カヤック社と合同勉強会ができることに
    • 他社の人から見て自分たちの挑戦がどう見えるのかを知れて、かつ他社のメンバーの挑戦を見て刺激を受けるように
  • PHPerKaigi 2022への社員の登壇が決まるなど、対外発表も積極的に

注意

  • 精神論みたいな話が多くなりましたが、精神論は本質ではありません
  • 精神論ではレガシーは倒せず、技術によってのみレガシーは倒せます
  • 技術が分からない人が先導してもレガシーは倒せないので、精神論だけ切り抜いて学んだ気になったのなら誤りです
  • 少なくとも成果が出始めるのに1年、レガシーがある程度倒されるのに3年くらいはかかるので未来を信じて根気強くやりましょう
    • 1年かけても成果が見えなければおそらく方向性を間違えています
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment