Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
進化を止めない、"レガシー"との向き合い方 / 20220208-techcon2022-ya...
Search
Rakus_Dev
February 08, 2022
Technology
0
3k
進化を止めない、"レガシー"との向き合い方 / 20220208-techcon2022-yanari
Rakus_Dev
February 08, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
AIへの再指示を抑える要件、設計、デザイン等のモバイル開発コンテキストの渡し方
rakus_dev
0
120
モバイルアプリ向けに開発したAPIをMCP化したら便利そうだった / mobiletechcafe20250902-2
rakus_dev
0
110
AIによるAndroidアプリのモダン化 / mobiletechcafe20250902-3
rakus_dev
0
110
iOSアプリからMCPツールを使う / mobiletechcafe20250902-4
rakus_dev
0
110
Claude Code × FastAPI-MCP モバイル技術記事の自動作成 / mobiletechcafe20250902-5
rakus_dev
0
110
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
300
【TECH PLAY Product Management Conference】AI時代にどんなPdMが求められているのか? 〜私たちが見てきたリアルから考える〜 / techplay-pdmconf-ai
rakus_dev
0
300
『楽楽電子保存』開発チームが挑む「AI駆動開発」の全貌 / rakustechcon2025-rakurakudenshihozon
rakus_dev
2
800
数字と感情で語るスクラム導入効果。『楽楽勤怠』開発チームの変革の軌跡 / rakustechcon2025-rakurakukintai
rakus_dev
1
780
Other Decks in Technology
See All in Technology
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
エラーとアクセシビリティ
schktjm
1
1.3k
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
850
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
4
1.6k
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.2k
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
120
20250913_JAWS_sysad_kobe
takuyay0ne
2
220
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
290
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Context Engineering - Making Every Token Count
addyosmani
3
44
A better future with KSS
kneath
239
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
A Tale of Four Properties
chriscoyier
160
23k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Into the Great Unknown - MozCon
thekraken
40
2k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Transcript
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ©2022 RAKUS Co., Ltd. 進化を止めない、
"レガシー"との向き合い方 株式会社ラクス 開発本部 第四開発部 矢成 行雄
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 自己紹介 矢成 行雄(やなり ゆきお) ▪経歴 2011年 ラクス入社 2012年 「メールディーラー」の開発リーダ
2017年 「チャットディーラー」の新規立ち上げ 2020年 部長として4プロダクトを統括 ▪趣味 文学部東洋史学専攻の中国史オタク 犬二匹と戯れる 酒を飲む(ビール・ワイン・日本酒) Violinを弾く(butブランク◦年以上…)
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの手掛けているプロダクト① ❏ メールディーラー ❏ チャットディーラー
メールや電話、チャット、LINEからの問い合わせを一元管 理。チーム内の情報共有が簡単になることで、お客様を 待たせない対応を実現! Webページにチャットを設置して、問い合わせ対応を行う ことのできるチャットボット。チャットボットの自動回答で、 業務効率化とユーザー満足度の向上を実現!
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの手掛けているプロダクト② ❏ 配配メール ❏ クルメル
シンプルな操作と機能、手厚いサポートで、メールによる 集客・販促活動を「もっと効果的に。もっとラクに。」 システム連携に特化したメール配信サービス。基幹/CRM システムをはじめ、さまざまなシステムのメール配信を支 えています。
#RAKUSTechCon ©2022 RAKUS Co., Ltd. リリース時期 ❏ メールディーラー ❏ 配配メール
❏ クルメル ❏ チャットディーラー ⇒ 2001年 ⇒ 2007年 ⇒ 2011年 ⇒ 2017年
#RAKUSTechCon ©2022 RAKUS Co., Ltd. レガシーサービスとは? 最新の技術や製品を用いた情報システムと対比して、 相対的に時代遅れとなった古いシステムのこと。 IT用語辞典 e-words
"レガシーシステム"の項より https://e-words.jp/w/%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 一般的なイメージ > 相対的に時代遅れとなった古いシステムのこと。 ❏ 時代遅れで古い
❏ モダンじゃない ❏ 変化を嫌う ❏ モチベーションあがらない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 本当にそうか? ❏ 時代遅れで古い ❏ モダンじゃない
❏ 変化を嫌う ❏ モチベーションあがらない ⇒ 「古い=時代遅れ」ではない ⇒ 変化していかないから時代遅れになる ⇒ 進化していかないから"レガシー"になる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ラクスでも確かに問題はあった ❏ 時代遅れで古い ❏ モダンじゃない
❏ 変化を嫌う ❏ モチベーションあがらない ⇒ 利用技術が古い ⇒ 開発プロセスが古典的 ⇒ 技術的負債が多い ⇒ 情報発信しづらい
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちはどのように向き合ったか? ❏ 積み上げてきた「歴史」の中に価値を見出す ❏ これまでやってきたことを生かす
❏ 「刷新」ではなく「進化」を志向して動く
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちはどのように向き合ったか? 1. 利用技術が古い 2. 開発プロセスが古典的
3. 技術的負債が多い 4. 情報発信しづらい ⇒ 領域をしぼって取り組む ⇒ モダンな開発スタイルとのハイブリッド ⇒ 継続的リファクタリング ⇒ 中核技術に特化したブランディング戦略
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 領域をしぼって取り組む
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「利用技術が古い」問題 ❏ 主な利用技術 ❏ PHP
❏ ノンフレームワークなプロダクトも ❏ PostgreSQL ❏ jQuery
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 全部やろうとしない ❏ 新技術への全面刷新は確かに難しい ❏ 領域をしぼって導入する(Small
Start) ❏ サブシステム ❏ 新機能 ❏ 効果があれば拡大していく
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ ノンフレームワークPHPアプリケーション ❏ (新UI導入機能のみ)Laravelを導入
❏ (新UI導入機能のみ)blade+SassによるBE/FE分離 ❏ (新UI導入機能のみ)Vue.jsによるFEコンポーネント化 ❏ (チャット機能のみ)Node.js+Socket.ioによるリアルタイム通信 ❏ (単語チェック機能のみ)Mecab導入による自然言語処理 https://speakerdeck.com/kyoshimoto/phptechcafe-2022-01-26
#RAKUSTechCon ©2022 RAKUS Co., Ltd. EOLにはこだわる ❏ EOL対応は絶対に欠かさない ❏ 古いプロダクトだからこそ追随していくべき
❏ 中核技術の言語仕様を深く理解するチャンス
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 対応事例 ❏ PHP ❏ 4系
⇒ 5.2 ⇒ 5.3 ⇒ 5.4 ⇒ 5.6 ⇒ 7.1 ⇒ 7.3 ⇒ 8.0 ❏ PostgreSQL ❏ 8.2 ⇒ 8.4 ⇒ 9.3 ⇒ 9.6 ⇒ 13.3 ❏ jQuery ❏ 1.8 ⇒ 1.9 ⇒ 2.1 ⇒ 3.3 ⇒ 3.4 ⇒ 3.6
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「利用技術が古い」問題 ❏ 全面刷新は困難なので、できるところから領域をしぼって新技術を導
入して行き、次第に領域を広げていく ❏ EOL対応は欠かさず行い、中核技術への知見を深める
#RAKUSTechCon ©2022 RAKUS Co., Ltd. モダンな開発スタイルとの ハイブリッド
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「開発プロセスが古典的」問題 ❏ ウォーターフォール型 ❏ 要件定義⇒概要設計⇒実装⇒テスト⇒受入⇒結合テスト
❏ 手動テスト ❏ ビューとビジネスロジックが未分離のため自動テスト導入困難
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 古典的プロセスがレガシー化の要因? ❏ 古典的だから捨て去るべき?⇒No ❏ 単に「やり方」の話
❏ 「やり方」が非効率なら、より効率のよいやり方に変えればよい ❏ プロダクトが"レガシー"かどうかは関係ない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. アジャイル的要素を取り入れる ❏ マクロな開発プロセスはそのまま(ベースはウォーターフォール) ❏ ミクロで開発プロセスの「中身」を変える
❏ カンバン ❏ スプリント制(1週間のタイムボックス) ❏ 社内ユーザからのフィードバックループ ❏ ウォーターフォールとアジャイルのハイブリッド (=いいとこどり)
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ カンバン ❏ スプリント制
https://speakerdeck.com/kyoshimoto/rakus-meetup-osaka-2020-02-05
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 段階的にユニットテスト導入 ❏ ユニットテスト ❏ ビジネスロジックはまずリファクタリング(詳細後述)
❏ できるところからユニットテストを書く ❏ テストを書くルールを決める ❏ 完成したところからCIに組み込む
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 広く浅くE2Eテスト導入 ❏ E2Eテスト ❏ 目的を明確にする
❏ 「全然動かない」レベルの根本的デグレード検知用 ❏ 広く浅く導入する(Smoke E2E) ❏ 全機能を網羅 ❏ ノーマルケースのみ https://speakerdeck.com/kuwacchi/smokee2e
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「開発プロセスが古典的」問題 ❏ マクロな開発スタイルは維持したまま、部分的(ミクロに)にアジャイル
的要素を取り入れてハイブリッドなプロセスへ ❏ ユニットテストはできるところから段階的に ❏ E2Eテストは目的に沿って広く浅く
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 継続的リファクタリング
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「技術的負債が多い」問題 ❏ 同じようで少しずつ違うロジックの濫発 ❏ すでに使用されていない機能
❏ コメントもなく意図不明な謎のロジック ❏ ビューとビジネスロジックの密結合 ❏ クラス化・分割されず責務過多となったソースコード
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 継続的にリファクタリングする ❏ リファクタリングするための敷居を下げる ❏ 「するのが当たり前」にする
❏ ビジネス要求と両立させる https://speakerdeck.com/whitefox_73/14nian-mu-falsesabisutojin-hou-m obu-mutamefalserihuakutaringuzhan-lue
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 敷居を下げる ❏ 提案の敷居を下げる ❏ 誰でも思いついたら提案できる「目安箱」を作る
❏ 実施の敷居を下げる ❏ リファクタリングバージョン ❏ 手順のガイドライン化
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 導入事例 ❏ リファクタリング目安箱 ❏ リファクタリング手順
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「するのが当たり前」にする ❏ リファクタリングの提案・実施件数を目標に掲げる ❏ リファクタリング事例をチーム内で共有しあう
❏ オススメ書籍の紹介による文化醸成
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ビジネス要求と両立させる ❏ コストを見積もって伝える ❏ 効果を定量化して伝える
❏ 自動テスト導入障壁低下 ⇒ 品質維持効率アップ ❏ フロントエンドとバックエンド分離 ⇒ 分業による速度アップ ❏ 保守性向上 ⇒ 開発速度アップ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「技術的負債が多い」問題 ❏ リファクタリングしていくしかない
❏ リファクタリングするための敷居を下げ、ビジネス要求と両立させ、継 続的にリファクタリングする
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 中核技術に注力した ブランディング戦略
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 「情報発信しづらい」問題 ❏ エンジニアとして社外に技術情報発信したい ❏ でも扱っている技術が"レガシー”
❏ 新規技術に触れる機会が少なく、情報発信しづらい ❏ エンジニアのモチベーションもなんとなく上がらない
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信はできる ❏ 先入観(誤解)を解く ❏ “新しいこと"しか求められていない
❏ "新しいこと"でないと情報発信できない ❏ ここまで紹介したような取組自体がすでに財産 ❏ "レガシー"への向き合い方のヒントを求めている人は多い ❏ 情報発信を習慣化していく
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 過去の発表事例 ❏ 登壇発表事例 https://speakerdeck.com/rakusmatsumoto/meetup-20211006-md https://speakerdeck.com/radiocat/challenges-of-product-management
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 強みを生かしてブランディング形成 ❏ 一つの技術に特化している強みを生かす ❏ 中核技術=PHP
❏ 注力 ⇒ 情報発信文化の醸成 ⇒ 組織力アップ ❏ 技術力アップ ❏ モチベーションアップ ❏ 採用力アップ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信事例 ❏ 外部登壇 ❏ ブログ
https://tech-blog.rakus.co.jp/archive/category/PHP
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 情報発信事例 ❏ コミュニティ形成 (PHPTechCafe) ❏
コミュニティ支援 (PHPFoundation) https://tech-blog.rakus.co.jp/entry/20220128/php-foundation https://rakus.connpass.com/
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 実施したアクションまとめ ❏ 「情報発信しづらい」問題 ❏ 発信しづらいという先入観を解き、"レガシー"との向き合い方それ自
体を武器として発信し続ける ❏ "レガシー"であっても中核技術に特化して取組を続けることにより、ブ ランディング形成につながる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. まとめ
#RAKUSTechCon ©2022 RAKUS Co., Ltd. レガシーサービスとは?(再掲) 最新の技術や製品を用いた情報システムと対比して、 相対的に時代遅れとなった古いシステムのこと。 IT用語辞典 e-words
"レガシーシステム"の項より https://e-words.jp/w/%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0.html
#RAKUSTechCon ©2022 RAKUS Co., Ltd. それは"レガシー"なのか? ❏ 「古い=レガシー」ではない ❏ 変わらないから時代遅れになる
❏ 進化しないからレガシーになる
#RAKUSTechCon ©2022 RAKUS Co., Ltd. それは"レガシー"なのか? ❏ 扱っているサービスが「歴史ある」サービスなだけ ❏ わたしたちは変化、進化を続けていく
❏ わたしたちは価値あるチャレンジを続けていく ❏ 積み上げてきた「歴史」そのものの中にそのヒントがある
#RAKUSTechCon ©2022 RAKUS Co., Ltd. 私たちの"レガシー"との向き合い方 ❏ 積み上げてきた「歴史」の中に進化のタネ(=価値)を見出す ❏ 「刷新」ではなく「進化」させることで、その価値を育てていく
1. 新技術にも領域をしぼって取り組む 2. モダンな開発スタイルとハイブリッドさせる 3. 継続的にリファクタリングする 4. 中核技術に注力しブランディング形成する
#RAKUSTechCon ©2022 RAKUS Co., Ltd. ご清聴ありがとうございました