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活用戦略 / AI Strategy for Accelerated Design
rakus_dev
2
510
10年以上続くWebサービスのAIファースト時代への向き合い方 / Navigating the AI-First Era: A Strategy for Established Web Services
rakus_dev
0
270
楽楽明細開発部 | 組織的なAI駆動開発の推進 / Promoting organizational AI-driven development
rakus_dev
0
280
AIエージェントを使った爆速デモアプリ作成 / Rapid demo app creation using AI agents
rakus_dev
0
270
Claude Codeによる自律的並列分析の実践 / Practicing Autonomous Parallel Analysis with Claude Code
rakus_dev
0
280
コードを書かないマネージャーがつくるコンテキストエンジニアリング / Context Engineering Created by a Non-Coding Manager
rakus_dev
0
310
AIへの再指示を抑える要件、設計、デザイン等のモバイル開発コンテキストの渡し方
rakus_dev
0
150
モバイルアプリ向けに開発したAPIをMCP化したら便利そうだった / mobiletechcafe20250902-2
rakus_dev
0
150
AIによるAndroidアプリのモダン化 / mobiletechcafe20250902-3
rakus_dev
0
140
Other Decks in Technology
See All in Technology
Observability — Extending Into Incident Response
nari_ex
1
610
.NET 10のBlazorの期待の新機能
htkym
0
160
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
680
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
180
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
380
様々なファイルシステム
sat
PRO
0
270
戦えるAIエージェントの作り方
iwiwi
15
6.7k
serverless team topology
_kensh
3
250
組織全員で向き合うAI Readyなデータ利活用
gappy50
5
1.9k
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
180
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.9k
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.5k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Language of Interfaces
destraynor
162
25k
A designer walks into a library…
pauljervisheath
209
24k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Pragmatic Product Professional
lauravandoore
36
7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Cult of Friendly URLs
andyhume
79
6.6k
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. ご清聴ありがとうございました