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
2.7k
進化を止めない、"レガシー"との向き合い方 / 20220208-techcon2022-yanari
Rakus_Dev
February 08, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
ラクスCTOが語る顧客視点を重視したプロダクト開発 / RAKUSTechCon2024_Kude
rakus_dev
0
2.2k
マルチプロダクトでのプロダクトマネージャーのリアル / RAKUSTechCon2024_Inagaki
rakus_dev
4
3.9k
拡大するマルチプロダクトSaaSの顧客理解にデザイン組織はどう取り組んでいるか / RAKUSTechCon2024_Design
rakus_dev
0
2.1k
急成長する大規模プロダクト開発のマネジメント課題とアプローチ / RAKUSTechCon2024_Seisan
rakus_dev
0
2k
パフォーマンス向上とリソース管理のためのアプローチ / RAKUSTechCon2024_RLC
rakus_dev
0
2k
急成長するサービスを支えるためのインフラ戦略 / RAKUSTechCon2024_Fujii
rakus_dev
0
2k
楽楽精算のQA改革 / RAKUSTechCon2024_Kaneko
rakus_dev
1
2k
新たな顧客課題に挑む17年目の進化とモダナイゼーション / RAKUSTechCon2024_Haihaimail
rakus_dev
1
2k
クロージングトーク / RAKUSTechCon2024_Closingtalk
rakus_dev
0
1.9k
Other Decks in Technology
See All in Technology
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
140
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
330
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
150
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Facilitating Awesome Meetings
lara
50
6.1k
Designing for Performance
lara
604
68k
GitHub's CSS Performance
jonrohan
1030
460k
Automating Front-end Workflow
addyosmani
1366
200k
What's new in Ruby 2.0
geeforr
343
31k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Optimizing for Happiness
mojombo
376
70k
Raft: Consensus for Rubyists
vanstee
136
6.6k
How STYLIGHT went responsive
nonsquared
95
5.2k
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. ご清聴ありがとうございました